Umami là một ứng dụng phân tích trang web mã nguồn mở, tự lưu trữ và được viết bằng Node.js. Ứng dụng này tập trung vào sự đơn giản, nhanh chóng và bảo mật. Bài viết sẽ hướng dẫn cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04.
Giới thiệu về Umami
Umami có thể lưu trữ dữ liệu về lượt truy cập trang web của bạn trong cơ sở dữ liệu MySQL hoặc PostgreSQL.
![Cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04 4 Logo Umami](https://static-xf1.vietnix.vn/wp-content/uploads/2023/11/logo-umami.png)
Bài viết này 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
Để 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.
Sau khi đã cài đặt đầy đủ các phần mềm cần thiết, bạn có thể cài đặt phần mềm Umami theo các bước sau:
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 cổng 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.
Nếu bạn đang quan tâm đến việc sử dụng phần mềm phân tích trang web Umami trên Ubuntu 20.04 và muốn chia sẻ dữ liệu phân tích của mình với nhiều người dùng hoặc truy cập từ xa, thuê VPS có thể là một lựa chọn tuyệt vời. Vietnix cung cấp một loạt các gói VPS phù hợp với mọi nhu cầu và ngân sách như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe.
Khi sử dụng VPS của Vietnix, bạn sẽ có toàn quyền cài đặt và truy cập Umami từ bất kỳ đâu mà không phụ thuộc vào máy tính cá nhân. Điều này mang lại sự thuận tiện và linh hoạt cho việc quản lý và sử dụng Umami trên Ubuntu 20.04.
Liên hệ trực tiếp với Vietnix để tìm hiểu chi tiết và chọn gói VPS phù hợp với bạn.
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:
![Cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04 5 Trang web Umami](https://static-xf1.vietnix.vn/wp-content/uploads/2023/06/trang-web-umami.webp)
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:
![Cách cài đặt phần mềm phân tích web Umami trên Ubuntu 20.04 6 Bảng điều khiển Umami](https://static-xf1.vietnix.vn/wp-content/uploads/2023/06/bang-dieu-khien-umami.webp)
Như vậy, bạn đã cài đặt và bảo mật thành công ứng dụng Umami.
Vietnix là nhà cung cấp dịch vụ hosting, VPS tốc độ cao nổi bật với công nghệ chống DDoS độc quyền tại Việt Nam. Với phương châm lấy sự thành công của khách hàng làm mục tiêu phục vụ, Vietnix tập trung vào phát triển hạ tầng, công nghệ nhằm mang đến tốc độ nhanh, tính ổn định cho sản phẩm. Đồng thời nâng cao chất lượng hỗ trợ để mang đến sự hài lòng cho khách hàng.
Những thế mạnh của Vietnix phải kể đến đó là:
- Vietnix có hơn 11 năm kinh nghiệm trong lĩnh vực cung cấp hosting, VPS.
- Đồng hành cùng hơn 50.000 khách hàng.
- Hơn 100.000 dịch vụ đã được kích hoạt.
- 97% khách hàng sau khi sử dụng dịch vụ đánh giá 5 sao.
- 89% khách hàng duy trì sử dụng dịch vụ đến thời điểm hiện tại.
- Đạt giải thưởng Thương hiệu Việt Nam xuất sắc 2022.
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
Lời kết
Trong hướng dẫn này bạn biết cách khởi chạy ứng dụng Umami và cơ sở dữ liệu PostgreSQL bằng Docker Compose. Chúc các bạn cài đặt thành công và đừng quên theo dõi các bài viết tiếp theo của Vietnix.