Plausible Analytics là một ứng dụng phân tích trang web mã nguồn mở được viết bằng Elixir, tập trung vào tính đơn giản và quyền riêng tư. Trong bài viết này bạn sẽ được hướng dẫn cách cài đặt Plausible Analytics trên Ubuntu 20.04 bằng Docker Compose. Sau đó, bạn sẽ kích hoạt kết nối HTTPS bằng cách sử dụng Certbot để tải xuống và cấu hình chứng chỉ SSL từ Let’s Encrypt Certificate Authority.
Điều kiện tiên quyết để cài đặt Plausible Analytics trên Ubuntu 20.04
Để có thể thực hiện theo hướng dẫn này, trước tiên hệ thống của bạn cần phải thỏa các điều kiện dưới đây:
- Một máy chủ Ubuntu 20.04, với tường lửa UFW đã được kích hoạt.
- Đã cài đặt Docker và Docker Compose.
- Và cuối cùng là kích hoạt SSL.
Để bật SSL
, bạn cần phải có một tên miền trỏ đến địa chỉ IP công khai của máy chủ. Ví dụ: vietnix.com
hoặc plausible.vietnix.com
. Nếu đã thỏa mãn các điều kiện tiên quyết thì cùng xem các bước hướng dẫn bên dưới nhé.
Bước 1 – Cài đặt Plausible Analytics với Docker Compose
Plausible đã có sẵn repository Git với tất cả các file cấu hình cần thiết để tự lưu trữ phần mềm. Bước đầu tiên của bạn sẽ là sao chép repository này về máy chủ của mình, cập nhật lại hai file cấu hình, sau đó khởi động ứng dụng Plausible và database cointainer.
Đầu tiên hãy khởi động máy chủ Ubuntu và đăng nhập, sau đó di chuyển đường dẫn hiện hành tới thư mục opt
bằng lệnh:
cd /opt
Tiếp theo, sử dụng lệnh git để sao chép repository từ GitHub vào một thư mục mới trong /opt
tạm gọi là plausible
bằng lệnh:
sudo git clone https://github.com/plausible/hosting plausible
Lệnh này sẽ tải tất cả các file cấu hình cần thiết vào thư mục ở /opt/plausible
. Khi lệnh chạy hoàn tất, tiến hành di chuyển đến thư mục vừa tạo:
cd plausible
Tại đây, file đầu tiên bạn cần chỉnh sửa là plausible-conf.env
, nơi chứa một số biến cấu hình cần thiết lập lại. Trước khi bạn mở file để chỉnh sửa, hãy tạo một hash ngẫu nhiên bằng lệnh:
openssl rand 64 | base64 -w 0 ; echo
Mục đích của lệnh này là sử dụng openssl
để tạo ra 64 ký tự ngẫu nhiên và base64
để mã hóa chúng.
Tiến hành sao chép kết quả output vào bộ nhớ tạm (clipboard), sau đó mở file cấu hình bằng nano
để chỉnh sửa:
sudo nano plausible-conf.env
Ở đây có 5 thông số mà bạn cần phải điều chỉnh lại cho đúng với máy chủ của mình là:
ADMIN_USER_EMAIL=user_email
ADMIN_USER_NAME=admin_name
ADMIN_USER_PWD=admin_pass
BASE_URL=https://vietnix.com
SECRET_KEY_BASE=paste_random_character_here
Bạn cần điền đầy đủ thông tin ở 5 mục này, ở mục thứ 5 thì bạn dán các ký tự ngẫu nhiên đã tạo với openssl
ở trên.
Lưu ý: Mật khẩu bạn chỉ định ở đây phải dài ít nhất sáu ký tự. Nếu bạn đang sử dụng địa chỉ IP thay cho tên miền thì cần phải đặt http://
ở trước.
Sau khi chỉnh sửa xong dùng tổ hợp phím Ctrl + X
, Y
rồi Enter
để lưu lại file. Bạn cũng có thể thêm nhiều tùy chọn cấu hình khác, nhưng những mục trên là tối thiểu để chương trình có thể chạy.
Bây giờ bạn cần cập nhật file docker-compose.yml
. File này được docker-compose
sử dụng để cấu hình và khởi chạy nhiều container Docker. Bạn cần thay đổi một tùy chọn trong file này, ví dụ như IP mà Plausible được liên kết:
sudo nano docker-compose.yml
Tìm container Plausible, mục này sẽ bắt đầu ở phần plausible:
. Tìm mục ports
và thay đổi địa chỉ bên trong thành:
ports:
- 127.0.0.1:8000:8000
Điều này sẽ đảm bảo rằng Plausible chỉ nghe trên interface của localhost và không công khai. Dù bạn đã thiết lập tường lửa UFW, nhưng do một số lỗi trong quá trình Docker networking hoạt động nên nếu bạn không thực hiện bước này thì container Plausible sẽ có thể được truy cập công khai trên cổng 8000
.
Lưu và đóng file docker-compose.yml
bằng tổ hợp Ctrl + X
, Y
và Ente
r. Sau đó sử dụng docker-compose
để tải xuống, cấu hình và khởi chạy các container bằng lệnh:
sudo docker-compose up --detach
Cờ --detach
dùng để tạo các container trong nền, tách biệt khỏi phiên làm việc hiện tại của bạn. Output sẽ nhận được như hình:
Output
. . .
Starting plausible_plausible_events_db_1 ... done
Starting plausible_plausible_db_1 ... done
Starting plausible_mail_1 ... done
Starting plausible_plausible_1 ... done
Kết quả output cho thấy bộ các container ứng dụng và toàn bộ email hỗ trợ cùng container database đang chạy. Bạn có thể xác minh điều này bằng cách sử dụng lệnh curl
như bên dưới:
curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>
Nếu có một số mã HTML được đưa ra trên terminal của bạn, điều đó có nghĩa là máy chủ đang hoạt động. Tiếp theo, bạn sẽ cần thiết lập Nginx để reverse proxy Plausible từ localhost:8000
thành công khai.
Để cài đặt Plausible Analytics với Docker Compose một cách suôn sẻ, bạn cần sử dụng một máy chủ có khả năng mở rộng linh hoạt và cung cấp toàn quyền quản trị. Và giải pháp đáp ứng toàn bộ những yêu cầu này chính là VPS Vietnix là với những ưu điểm sau:
- Dễ dàng cấu hình và quản lý máy chủ từ bảng điều khiển. Bạn có thể tự do cài đặt hệ điều hành, ứng dụng, phần mềm mà không gặp trở ngại nào.
- Hỗ trợ nhiều hệ điều hành như Ubuntu, CentOS, Debian, và Windows Server.
- Có nhiều gói dịch vụ và tính năng linh hoạt để đáp ứng nhu cầu thuê server ảo của từng khách hàng, có thể kể đến như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS NVMe, VPS GPU.
- Hỗ trợ 24/7 giúp khách hàng giải quyết mọi vấn đề trong quá trình vận hành.
Với những ưu điểm trên, VPS Vietnix sẽ giúp bạn cài đặt và sử dụng Plausible Analytics một cách hiệu quả và bảo mật. Tham khảo thêm thông tin về dịch vụ VPS Vietnix để tìm ra gói dịch vụ phù hợp nhất với nhu cầu của bạn nhé.
Bước 2 – Cài đặt và cấu hình Nginx
Mặc dù Plausible đang chạy, nhưng hiện chỉ có thể truy cập từ localhost:8000
. Để cho phép người dùng truy cập vào Plausible thông qua một tên miền công khai, bạn cần cấu hình Nginx để đảm bảo rằng Plausible hoạt động như một reverse proxy. Có nghĩa là lúc này Plausible sẽ cho phép bạn chuyển tiếp các yêu cầu từ một máy chủ này đến một máy chủ khác.
Đầu tiên, hãy cần đảm bảo rằng bạn đã cài đặt Nginx bằng lệnh sau:
sudo apt update
sudo apt install nginx
Sau đó, cho phép lưu lượng truy cập công khai vào các cổng 80
và 443
(HTTP và HTTPS) bằng cách sử dụng application profile "Nginx Full"
của UFW:
sudo ufw allow "Nginx Full"
Kế tiếp, mở một file config Nginx mới trong thư mục /etc/nginx/sites-available
. Bạn có thể đặt tên file cấu hình của mình là plausible.conf
hoặc tên khác mà bạn muốn:
sudo nano /etc/nginx/sites-available/plausible.conf
Sau đó, thêm đoạn mã sau vào file config và thay thế vietnix.com
bằng tên miền mà bạn đã cấu hình để trỏ đến máy chủ Plausible:
server {
listen 80;
listen [::]:80;
server_name vietnix.com;
access_log /var/log/nginx/plausible.access.log;
error_log /var/log/nginx/plausible.error.log;
location / {
proxy_pass http://localhost:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Cấu hình này hiện chỉ dành cho HTTP do Certbot đảm nhiệm việc định cấu hình SSL
trong bước tiếp theo. Phần còn lại của cấu hình là thiết lập các vị trí ghi log và sau đó chuyển tất cả lưu lượng truy cập đến http://localhost:8000
. Đây cũng là phiên bản Plausible mà bạn đã khởi động ở bước trước.
Lưu và đóng file, sau đó kích hoạt file cấu hình bằng cách liên kết nó vào /etc/nginx/sites-enabled/
:
sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/
Dùng lệnh nginx -t
để xác minh cú pháp file cấu hình xem có đúng hay không:
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
Nếu bạn thấy như ouput bên trên thì đã cấu hình thành công. Cuối cùng, tái kích hoạt dịch vụ nginx
để áp dụng cấu hình mới bằng lệnh:
sudo systemctl reload nginx
Trang web Plausible của bạn giờ đây đã có sẵn trên giao thức HTTP. Truy cập http://vietnix.com
và bạn sẽ thấy giao diện như bên dưới:
Ở bước tiếp theo, bạn sẽ thực hiện bảo vệ kết nối với chứng chỉ Certbot và Let’s Encrypt.
Xem thêm: Cách cài đặt Nginx trên Ubuntu 20.04
Bước 3 – Cài đặt Certbot và cấu hình chứng chỉ SSL
Đầu tiên, cài đặt Certbot và plugin Nginx bằng lệnh:
sudo apt install certbot python3-certbot-nginx
Tiếp theo, chạy certbot
ở chế độ --nginx
và chỉ định tên miền giống như trong file config server_name
của Nginx:
sudo certbot --nginx -d vietnix.com
Thay thế phần vietnix.com
bằng tên miền đã cấu hình trước đó. Sau đó, bạn sẽ được yêu cầu đồng ý với các điều khoản của Let’s Encrypt và nhập địa chỉ email.
Sau khi hoàn thành bước trên, bạn sẽ được hỏi liệu có muốn chuyển hướng tất cả lưu lượng HTTP sang HTTPS hay không. Điều này phụ thuộc vào nhu cầu của bạn, nhưng thông thường việc chuyển hướng sẽ giúp bảo vệ dữ liệu an toàn hơn.
Tiếp theo, Let’s Encrypt sẽ xác nhận yêu cầu và Certbot sẽ tải xuống chứng chỉ cho bạn như bên dưới:
Output
Congratulations! You have successfully enabled https://plausible.vietnix.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=plausible.vietnix.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/plausible.vietnix.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/plausible.vietnix.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 để lấy cấu hình và chứng chỉ mới. Bạn chỉ cần tải lại trang web và nó sẽ tự động chuyển sang HTTPS nếu đã chọn chuyển hướng ở bước trên.
Trang web của bạn hiện đã được bảo mật và an toàn để đăng nhập với thông tin người dùng mặc định đã thiết lập ở Bước 1. Sau đó, bạn sẽ được nhắc nhập mã xác minh để xác nhận đăng ký và mã này sẽ được gửi qua email đến địa chỉ bạn đã cấu hình.
Theo mặc định, email này được gửi trực tiếp từ máy chủ của bạn và có thể rơi vào hòm thư spam. Do đó nếu bạn không nhận được email, hãy thử kiểm tra mục thư spam. Nếu không tìm thấy ở đó, bạn có thể cần thiết lập thêm chi tiết cho hơn trong file plausible-conf.env
.
Khi đã đăng nhập thành công, bạn sẽ thấy một lời nhắc để thiết lập trang web đầu tiên của bạn với Plausible như bên dưới:
Với hơn 10 năm kinh nghiệm hoạt động trong lĩnh vực hosting, VPS, tên miền,… Vietnix đã cung cấp dịch vụ cho hơn 50.000 khách hàng cá nhân và doanh nghiệp như GTV, UB Group, iVIVU, Vietnamworks, SEOSONA, SAGO Media,… Hiện nay, Vietnix đã kích hoạt hơn 100.000 dịch vụ và đạt tỉ lệ giới thiệu dịch vụ sau khi sử dụng của khách hàng lên tới 97%.
Chính bởi những thành tự này mà Vietnix tự hào là một trong những nhà nhà cung cấp giải pháp VPS hàng đầu tại Việt Nam. Chúng tôi cam kết mang đến cho khách hàng những giải pháp tối ưu, hiệu quả và tin cậy nhất. Ngoài ra, Vietnix cũng luôn nỗ lực để cải thiện và mở rộng dịch vụ của mình để đáp ứng tốt hơn nhu cầu của khách hàng.
Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng 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 – 07 088 44444
- Email: sales@vietnix.com.vn
Lời kết
Trong hướng dẫn cài đặt Plausible Analytics trên máy chủ Ubuntu 20.04 này, bạn đã khởi chạy ứng dụng Plausible Analytics và các container hỗ trợ liên quan bằng cách sử dụng Docker Compose, sau đó thiết lập reverse proxy Nginx và bảo mật nó bằng chứng chỉ SSL
Let’s Encrypt. Chúc bạn thực hiện thành công trên hệ thống của mình và nếu gặp vấn đề khó khăn trong quá trình này, hãy để lại bình luận bên dưới để được Vietnix hỗ trợ nhanh chóng nhé.