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.
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
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
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
Đă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
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
\du
\l
Cuối cùng, hãy nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22424%22%3E%3C/svg%3E
Chạy lệnh bên dưới để cài đặt
npm install -g yarn
Tạo người dùng và nhóm hệ thống mới
sudo adduser --system --group --no-create-home --shell /sbin/nologin umami
Bây giờ hãy chạy lệnh
git clone https://github.com/umami-software/umami.git /var/www/umami
cd /var/www/umami
Tiếp theo, chạy lệnh
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
nano .env
Thêm nội dung sau để thiết lập PostgreSQL làm cơ sở dữ liệu Umami.
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
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
sudo chown -R umami:umami /var/www/umami
Tạo một tệp dịch vụ systemd mới
sudo nano /etc/systemd/system/umami.service
Chèn cấu hình bên dưới vào tệp.
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
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
sudo systemctl enable --now umami
sudo systemctl status umami
Như bạn có thể xem bên dưới,
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Đầ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
sudo nano /etc/apache2/sites-available/umami.conf
Thêm cấu hình bên dưới và đảm bảo thay đổi
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
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
Chạy lệnh bên dưới để mở các cổng HTTP và HTTPS thông qua cấu hình UFW
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à
sudo ufw status
Cài đặt
sudo apt install certbot python3-certbot-apache
Bây giờ hãy chạy lệnh
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
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.
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
enabled
và active(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ụngpsql
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óiyarn
, 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
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
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/
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ìnhApache 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
certbot
và python3-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 địnhadmin
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.