Cách cài đặt Umami Privacy Analytics trên Ubuntu 24.04

theanh

Administrator
Nhân viên
Umami là một nền tảng phân tích web miễn phí và mã nguồn mở được viết bằng Nodejs. Dễ sử dụng và cài đặt, đồng thời cung cấp giao diện người dùng thân thiện. Nền tảng này được xây dựng trên quyền riêng tư như một giải pháp thay thế cho các dịch vụ như Google Analytics. Cho phép bạn triển khai phân tích web trên máy chủ của mình với các lựa chọn cơ sở dữ liệu của riêng bạn, có thể là cơ sở dữ liệu PostgreSQL hoặc MySQL.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt phân tích tập trung vào quyền riêng tư của Umami trên máy chủ Ubuntu 24.04.

Điều kiện tiên quyết​

Để hoàn thành hướng dẫn này, hãy đảm bảo rằng bạn có:
  • Máy chủ Ubuntu 24.04.
  • Người dùng không phải root có quyền quản trị viên.
  • Tên miền được trỏ đến địa chỉ IP của máy chủ.

Cài đặt các phụ thuộc​

Umami là một phân tích web tập trung vào quyền riêng tư được viết bằng JavaScript và Node.js. Nó hỗ trợ MySQL/MariaDB và PostgreSQL làm cơ sở dữ liệu. Trong phần này, bạn sẽ cài đặt các phụ thuộc cho Umami, bao gồm Node.js, NPM, PostgreSQL, máy chủ web Apache và Git.

Trước tiên, hãy chạy lệnh bên dưới để cập nhật danh sách gói Ubuntu của bạn.

sudo apt update

Bây giờ hãy chạy lệnh sau để cài đặt các phụ thuộc như Node.js, NPM, Python, Git và PostgreSQL. Nhập Y để xác nhận cài đặt.

sudo apt install nodejs npm git apache2 postgresql


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22294%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy kiểm tra dịch vụ Apache bằng lệnh sau.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Sau đây, bạn có thể thấy Apache đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22214%22%3E%3C/svg%3E


Bây giờ hãy kiểm tra máy chủ PostgreSQL bằng lệnh sau.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Bạn sẽ thấy dịch vụ PostgreSQL enabledactive(exited).


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22165%22%3E%3C/svg%3E


Cuối cùng, hãy kiểm tra phiên bản Node.js và NPM bằng lệnh bên dưới:

nodejs --version
npm --version

Bạn có thể thấy Node.js 18.19 và NPM 9.2 đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22404%22%20height=%22136%22%3E%3C/svg%3E

Thiết lập cơ sở dữ liệu và người dùng PostgreSQL​

Sau khi bạn đã cài đặt các phụ thuộc, bạn sẽ tạo cơ sở dữ liệu PostgreSQL và người dùng mới cho Umami. Bạn sẽ sử dụng psql PostgreSQL shell để tạo cơ sở dữ liệu và người dùng mới.

Đăng nhập vào máy chủ PostgreSQL bằng lệnh sau:

sudo -u postgres psql

Bây giờ hãy chạy các truy vấn sau để tạo người dùng mới umami và cơ sở dữ liệu umamidb. Hãy đảm bảo thay đổi mật khẩu sau bằng thông tin của bạn.

CREATE ROLE umami LOGIN ENCRYPTED PASSWORD 'password';
CREATE DATABASE umamidb OWNER=umami;


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22694%22%20height=%22324%22%3E%3C/svg%3E


Tiếp theo, hãy kiểm tra danh sách cơ sở dữ liệu và người dùng khả dụng bằng các truy vấn bên dưới. Bạn sẽ thấy người dùng umami với cơ sở dữ liệu umamidb có sẵn trên máy chủ PostgreSQL của bạn.

\du
\l

Cuối cùng, hãy nhập q để thoát khỏi máy chủ PostgreSQL.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22424%22%3E%3C/svg%3E

Cài đặt umami​

Trong phần này, bạn sẽ cài đặt Trình quản lý gói yarn, tải xuống mã nguồn Umami và cài đặt các phụ thuộc JavaScript bằng yarn, sau đó xây dựng và khởi động Umami từ dòng lệnh.

Chạy lệnh bên dưới để cài đặt yarn trình quản lý gói.

npm install -g yarn

Tạo người dùng và nhóm hệ thống mới umami bằng lệnh bên dưới.

sudo adduser --system --group --no-create-home --shell /sbin/nologin umami

Bây giờ hãy chạy lệnh git bên dưới để tải mã nguồn Umami xuống thư mục /var/www/umami và vào đó.

git clone https://github.com/umami-software/umami.git /var/www/umami
cd /var/www/umami

Tiếp theo, chạy lệnh yarn bên dưới để cài đặt các phụ thuộc JavaScript cho Umami.

yarn install

Bên dưới, bạn có thể thấy quá trình cài đặt các phụ thuộc JavaScript cho Umami.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E


Bây giờ, hãy tạo một tệp .env mới với nội dung sau Trình soạn thảo nano.

nano .env

Thêm nội dung sau để thiết lập PostgreSQL làm cơ sở dữ liệu Umami.
Mã:
DATABASE_URL=postgresql://umami:StrongPasswordUmami@localhost:5432/umamidb
Lưu và thoát tệp khi hoàn tất.

Tiếp theo, chạy lệnh sau để xây dựng Umami.

xây dựng sợi


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22523%22%3E%3C/svg%3E


Sau khi hoàn tất, hãy khởi động Umami bằng lệnh sau - Lệnh này sẽ khởi động Umami trên cổng 3000:

bắt đầu sợi


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22158%22%3E%3C/svg%3E


Mở trình duyệt web của bạn và truy cập http://server-ip:3000/. Nếu cài đặt thành công, bạn sẽ thấy thông tin đăng nhập Umami như sau:

Quay lại máy chủ đầu cuối và nhấn Ctrl+c để kết thúc quá trình.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22503%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh bên dưới để thay đổi quyền sở hữu của /var/www/umami thư mục tới người dùng umami.

sudo chown -R umami:umami /var/www/umami

Chạy umami dưới dạng dịch vụ systemd​

Trong hướng dẫn này, bạn sẽ chạy Umami như một dịch vụ systemd ở chế độ nền. Bây giờ bạn sẽ tạo một tệp dịch vụ mới cho Umami.

Tạo một tệp dịch vụ systemd mới /etc/systemd/system/umami.service bằng lệnh biên tập nano sau.

sudo nano /etc/systemd/system/umami.service

Chèn cấu hình bên dưới vào tệp.
Mã:
[Unit]
Description=Umami Website Analytics
After=network.target postgresql.service
[Service]
Type=simple
ExecStart=/usr/bin/npm start
Restart=always
# Consider creating a dedicated user for umami here:
User=umami
Group=umami
#Environment=NODE_ENV=production
WorkingDirectory=/var/www/umami
[Install]
WantedBy=multi-user.target
Khi hoàn tất, hãy lưu tệp và thoát khỏi tệp.

Bây giờ hãy chạy lệnh bên dưới để tải lại trình quản lý systemd và áp dụng dịch vụ mới umami.service.

sudo systemctl daemon-reload


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22188%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh sau để bắt đầu, kích hoạt và xác minh trạng thái umami.service.

sudo systemctl enable --now umami
sudo systemctl status umami

Như bạn có thể xem bên dưới, umami.service đã được bật và đang chạy. Và theo mặc định, chạy trên cổng 3000.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E

Thiết lập Apache làm proxy ngược​

Bây giờ Umami đang chạy ở chế độ nền, bạn sẽ thiết lập Apache làm proxy ngược cho Umami.

Đầu tiên, hãy chạy lệnh bên dưới để kích hoạt các mô-đun Apache sẽ được sử dụng làm proxy ngược.

sudo a2enmod proxy proxy_http ssl rewrite headers


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22704%22%20height=%22393%22%3E%3C/svg%3E


Bây giờ, hãy tạo một tệp máy chủ ảo Apache mới /etc/apache2/sites-available/umami.conf bằng trình soạn thảo nano.

sudo nano /etc/apache2/sites-available/umami.conf

Thêm cấu hình bên dưới và đảm bảo thay đổi ServerName tùy chọn với tên miền của bạn.
Mã:
 ServerName analytics.howtoforge.local Options -Indexes ProxyRequests on ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/
Lưu và thoát tệp khi hoàn tất.

Tiếp theo, chạy lệnh bên dưới để kích hoạt tệp máy chủ ảo umami.conf và xác minh cú pháp Apache của bạn. Nếu bạn có cú pháp đúng, bạn sẽ thấy đầu ra Syntax is OK.

sudo a2ensite umami.conf
sudo apachectl configtest

Cuối cùng, hãy khởi động lại máy chủ web Apache để áp dụng các thay đổi của bạn bằng lệnh sau.

sudo systemctl restart apache2


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E

Thiết lập UFW​

Trước khi thiết lập UFW, hãy đảm bảo rằng nó đã được thiết lập và chạy. Trong phần này, bạn sẽ kích hoạt cấu hình Apache Full để cho phép truy cập HTTP và HTTPS.

Chạy lệnh bên dưới để mở các cổng HTTP và HTTPS thông qua cấu hình UFW Apache Full.

sudo ufw allow 'Apache Full'

Bây giờ hãy tải lại UFW và xác minh trạng thái của nó bằng lệnh bên dưới. Bạn sẽ thấy UFW là active với cấu hình Apache Full được bật.

sudo ufw status

Bảo mật Umami bằng HTTPS​

Để bảo mật Umami, bạn sẽ sử dụng HTTPS. Trong phần này, bạn sẽ tạo chứng chỉ SSL/TLS thông qua letsencrypt. Người dùng miền cục bộ có thể sử dụng chứng chỉ tự ký.

Cài đặt certbotpython3-certbot-apache bằng lệnh bên dưới. Nhập lệnh Y để xác nhận cài đặt.

sudo apt install certbot python3-certbot-apache

Bây giờ hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS cho Umami. Hãy đảm bảo thay đổi tên miền và địa chỉ email bằng thông tin của bạn.

sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [emailprotected] -d analytics.howtoforge.local

Sau khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ có trong thư mục /etc/letsencrypt/live/domain.com và cài đặt Umami của bạn sẽ được bảo mật bằng HTTPS.

Truy cập Umami​

Mở trình duyệt web của bạn và truy cập https://analytics.howtoforge.local/ để truy cập cài đặt Umami của bạn. Đăng nhập bằng người dùng mặc định admin và mật khẩu umami.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22499%22%20height=%22458%22%3E%3C/svg%3E


Nếu thành công, bạn sẽ thấy bảng điều khiển Umami như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22371%22%3E%3C/svg%3E


Để thêm phân tích mới cho trang web của bạn, hãy nhấp vào Trang web > Nút Thêm trang web. Để thay đổi mật khẩu mặc định, hãy nhấp vào Cài đặt > Người dùng > Chỉnh sửa.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt phân tích tập trung vào quyền riêng tư của Umami trên máy chủ Ubuntu 24.04. Umami đang chạy với máy chủ PostgreSQL và Apache làm proxy ngược. Ngoài ra, bạn đã bảo mật Umami bằng HTTPS thông qua certbot và letsencrypt.
 
Back
Bên trên