Umami là một phần mềm phân tích web nhẹ, nhanh và dễ sử dụng, cung cấp cho bạn những thông tin chi tiết về khách truy cập website như nguồn truy cập, hành vi người dùng, và hiệu suất nội dung. Đặc biệt, Umami hoạt động độc lập trên máy chủ của bạn, đảm bảo dữ liệu không bị chia sẻ với bên thứ 3. Trong bài viết này, mình sẽ hướng dẫn bạn cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04.
Những điểm chính
- Giới thiệu về Umami: Một số thông tin về Umami và những tính năng của công cụ này.
- Yêu cầu cần đáp ứng: Để thực hiện cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04, bạn cần một máy chủ Ubuntu 20.04 cài đặt sẵn tường lửa UFW, Docker và Docker Compose cùng một tên miền trỏ tới máy chủ.
- Các bước thực hiện: Bắt đầu từ việc cài đặt Umami và PostgreSQL với Docker Compose, cài đặt và cấu hình Nginx, cuối cùng là cài đặt Certbot và thiết lập SSL Certificate.
- Biết đến dịch vụ VPS Vietnix giúp tăng tốc website, bứt phá doanh thu.
Umami là gì?
Umami là một ứng dụng phân tích website mã nguồn mở được phát triển bằng Node.js, cho phép người dùng tự lưu trữ dữ liệu. Ứng dụng này nổi bật với giao diện thân thiện, hiệu năng cao và đặc biệt chú trọng đến quyền riêng tư của người dùng. Dữ liệu thu thập được về lượng truy cập website có thể được lưu trữ trong cơ sở dữ liệu MySQL hoặc PostgreSQL.

Bài viết này, mình sẽ hướng dẫn bạn cách cài đặt ứng dụng Umami và cơ sở dữ liệu PostgreSQL bằng Docker Compose, sau đó cài đặt Nginx (Nginx hoạt động như reverse proxy cho Umami). Cuối cùng bạn sẽ kích hoạt kết nối HTTPS an toàn bằng cách sử dụng Certbot để tải xuống và cấu hình các SSL certificate từ Let’s Encrypt.
Yêu cầu để thực hiện cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04
Để làm theo hướng dẫn của bài viết này, trước tiên bạn cần có một máy chủ Ubuntu 20.04 đã bật tường lửa UFW, máy chủ này đã cài đặt Docker và Docker Compose. Ngoài ra còn cần thêm một tên miền trỏ tới địa chỉ IP công khai của máy chủ để kích hoạt SSL.
Nếu bạn đang tìm kiếm một giải pháp máy chủ mạnh mẽ, ổn định và dễ dàng quản lý để triển khai Umami và các ứng dụng web khác, hãy xem xét dịch vụ VPS AMD của Vietnix. Với cấu hình phần cứng mạnh mẽ dựa trên CPU AMD EPYC tốc độ cao, hệ thống bảo mật tiên tiến và hỗ trợ kỹ thuật 24/7, Vietnix sẽ giúp bạn tiết kiệm thời gian và công sức trong việc cài đặt, cấu hình môi trường.
Bước 1: Cài đặt Umami và PostgreSQL với Docker Compose
Đầu tiên, bạn sẽ sao chép kho lưu trữ Umami Git, cập nhật tệp cấu hình docker–compose.yml
, sau đó khởi động các container của Umami và PostgreSQL. Sử dụng lệnh cd
để chuyển repo vào thư mục /opt
:
$ cd /opt
Sau đó sử dụng lệnh git
để sao chép repo từ GitHub:
$ sudo git clone https://github.com/mikecao/umami.git
Thao tác trên sẽ đưa tất cả phần mềm và tệp cấu hình vào tệp /opt/umami
. Di chuyển vào thư mục umami
:
$ cd umami
Bây giờ bạn cần cập nhật tệp docker-compose.yml
cho project. Lệnh docker-compose
sử dụng tệp này để cấu hình và khởi chạy nhiều Docker container cùng một lúc. Bạn cần thay đổi 2 tùy chọn trong tệp này là IP mà Umami liên kết và một hàm hash ngẫu nhiên được thêm vào khi mã hóa các thành phần trong cơ sở dữ liệu.
Trước khi chỉnh sửa tệp cấu hình docker-compose.yml
, hãy tạo một hàm hash ngẫu nhiên để dán vào tệp. Sử dụng lệnh:
$ openssl rand -base64 32
Output
tCgKyCWc/3C9VH+Ex0TysXsGEKQklQXm0H3nSnlR48g=
Lệnh openssl
được sử dụng để tạo 32 kí tự ngẫu nhiên. Sao chép output vào khay nhớ tạm và mở tệp cấu hình:
$ sudo nano docker-compose.yml
Tìm tùy chọn HASH_SALT
, copy dòng replace_me_with_a_random_string
và dán vào hàm băm bạn vừa tạo.
docker-compose.yml
. . .
HASH_SALT: replace-me-with-a-random-string
. . .
Tiếp theo tìm phần cấu hình port:
docker-compose.yml
. . .
ports:
- "127.0.0.1:3000:3000"
. . .
Cập nhật giá trị 3000:3000
bằng cách thêm địa chỉ 127.0.0.1
vào trước 3000:3000
. Điều này đảm bảo Umami chỉ lắng nghe trên interface của localhost
và không công khai. Mặc dù bạn đã thiết lập firewall UFW, nhưng do cách hoạt động của mạng Docker, nếu bạn không cập nhật giá trị, Umami container của bạn sẽ được truy cập công khai trên port 3000
.
Khi hoàn tất thay đổi cấu hình, lưu tệp docker-compose.yml
bằng cách nhấn CRL+O
, tiếp đến ENTER
và nano
, sau đó thoát bằng CTRL + X
.
Để khởi động 2 container của bạn, sử dụng docker-compose
:
$ sudo docker-compose up --detach
Cờ –detach yêu cầu docker-compose tạo các container trong nền, được tách ra khỏi session cuối:
Output
. . .
Creating umami_db_1 ... done
Creating umami_umami_1 ... done
Umami và PostgreSQL hiện đang hoạt động. Bạn có thể xác minh bằng lệnh curl
để tìm trang chủ của Umami container chạy trên localhost
:
$ curl localhost:3000
Output
<!DOCTYPE html><html><head><meta charSet="utf-8"/> . . .
Nếu nhiều output của HTML hiện trên terminal của bạn, server Umami đã hoạt động. Bước tiếp theo là thiết lập Nginx để đảo ngược proxy Umami từ localhost :3000
về chế độ công khai.
Bước 2: Cài đặt và cấu hình Nginx
Đặt một web server (chẳng hạn như Nginx) trước server Node.js có thể cải thiện hiệu suất nhờ giảm tải bộ nhớ đệm, nén và phân phối tệp tĩnh, nhờ đó tạo ra một quy trình hiệu quả. Bạn sẽ cài đặt Nginx và cấu hình thành các yêu cầu proxy tới Umami, nghĩa là Nginx sẽ xử lý các yêu cầu từ người dùng đến Umami và ngược lại.
Trước tiên, refresh danh sách package của bạn, sau đó cài đặt Nginx bằng cách sử dụng apt
:
$ sudo apt update
$ sudo apt install nginx
Cho phép luồng lưu lượng truy cập cổng 80 và 443 (HTTP và HTTPS) bằng cách sử dụng cấu hình UFW “Nginx Full”:
$ sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)
Tiếp theo, mở tệp cấu hình Nginx mới trong thư mục /etc/nginx/sites-avaiable
. Bạn có thể sử dụng tên khác thay cho umami.conf
:
$ sudo nano /etc/nginx/sites-available/umami.conf
Dán phần sau vào tệp cấu hình mới, thay thế your_domain_here
bằng miền bạn đã cấu hình để trỏ đến máy chủ Umami. Ví dụ:
/etc/nginx/sites-available/umami.conf
server {
listen 80;
listen [::]:80;
server_name your_domain_here;
access_log /var/log/nginx/umami.access.log;
error_log /var/log/nginx/umami.error.log;
location / {
proxy_pass http://localhost:3000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Cấu hình này hiện tại chỉ dành cho HTTP, vì Certbot đang đảm nhận việc cấu hình SSL. Phần còn lại của cấu hình thiết lập các vị trí đăng nhập và chuyển tất cả lưu lượng truy cập sang miền http: //localhost : 3000
. Lưu và đóng tệp, sau đó kích hoạt cấu hình bằng cách liên kết với /etc/nginx/sites- enabled/
:
$ sudo ln -s /etc/nginx/sites-available/umami.conf /etc/nginx/sites-enabled/
Sử dụng lệnh nginx-t để kiểm tra cú pháp tệp cấu hình:
$ sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Cuối cùng, tải lại dịch vụ nginx
để nhận cấu hình mới:
$ sudo systemctl reload nginx
Hiện tại, trang web Umami của bạn có thể truy cập trên HTTP. Truy cập vào link http : // your_domain_here
, bạn sẽ nhận được kết quả sau:

Vậy là bạn đã thiết lập và chạy trang web Umami qua HTTP, bước tiếp theo chúng ta sẽ bảo mật kết nối bằng Certbot và Let’s Encrypt.
Bước 3: Cài đặt Certbot và thiết lập SSL Certificate
Nhờ có Certbot và Let’s Encrypt, việc thêm mã hóa SSL vào ứng dụng Umami chỉ cần hai lệnh. Đầu tiên là cài đặt Certbot và plugin Nginx :
$ sudo apt install certbot python3-certbot-nginx
Tiếp theo, chạy certbot
và trong chế độ --nginx
và chỉ định cùng miền bạn sử dụng trong server_name
cấu hình Nginx :
$ sudo certbot --nginx -d your_domain_here
Bạn sẽ nhận được thông báo đồng ý với các điều khoản dịch vụ của Let’s Encrypt và nhập địa chỉ email. Sau đó Let’s Encrypt sẽ khuyến nghị bạn chuyển hướng tất cả lưu lượng HTTP sang HTTPS nhằm đảm bảo an toàn khi truy cập. Khi hoàn tất các bước trên, Let’s Encrypt sẽ xác nhận yêu cầu của bạn và Certbot sẽ tải xuống certificate:
Output
Congratulations! You have successfully enabled https://umami.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=umami.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/umami.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/umami.example.com/privkey.pem
Your cert will expire on 2021-12-06. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Certbot sẽ tự động tải lại Nginx để nhận cấu hình và certificate mới. Tải lại trang web của bạn trang web sẽ tự động chuyển sang HTTPS nếu bạn đã thay đổi HTTP thành HTTPS. Trang web của bạn hiện đã được bảo mật và bạn có thể đăng nhập an toàn bằng user admin và mật khẩu mặc định umami
. Khi đăng nhập lần đầu, bạn sẽ thấy một bảng điều khiển như hình dưới:

Như vậy, bạn đã cài đặt và bảo mật thành công ứng dụng Umami.
Tăng tốc website, bứt phá doanh thu với VPS Vietnix
Với 12 năm kinh nghiệm dày dặn và hơn 100.000 dịch vụ đã triển khai thành công, Vietnix mang đến giải pháp VPS tối ưu, đáp ứng mọi nhu cầu của bạn. Vietnix cam kết cung cấp dịch vụ VPS với hiệu suất vượt trội, tính ổn định cao và khả năng bảo mật tuyệt đối. Hạ tầng máy chủ hiện đại, đội ngũ kỹ thuật chuyên nghiệp luôn sẵn sàng hỗ trợ 24/7, Vietnix đảm bảo website và ứng dụng của bạn hoạt động mượt mà, không gián đoạn.
Thông tin liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Hotline: 1800 1093.
- Email: sales@vietnix.com.vn.
- Website: https://vietnix.vn/.
Mong rằng với những hướng dẫn trên của mình, bạn đã có thể tự mình cài đặt, khởi chạy ứng dụng Umami và cơ sở dữ liệu PostgreSQL bằng Docker Compose thành công. Umami là một công cụ phân tích web mã nguồn mở tuyệt vời, giúp bạn theo dõi hiệu suất website một cách hiệu quả và bảo mật. Nếu muốn tìm hiểu thêm các thao tác khác với cơ sở dữ liệu trên Linux, bạn có thể xem các bài viết dưới đây của mình: