Plausible Analytics là một ứng dụng phân tích trang web mã nguồn mở, tự lưu trữ được viết bằng Elixir, tập trung vào tính đơn giản và quyền riêng tư. Nó lưu trữ dữ liệu về khách truy cập trang web của bạn trong cơ sở dữ liệu PostgreSQL và ClickHouse.
Trong hướng dẫn này, bạn sẽ cài đặt Plausible bằng Docker Compose, sau đó cài đặt Nginx để hoạt động như một proxy ngược cho ứng dụng Plausible. Cuối cùng, bạn sẽ kích hoạt các kết nối HTTPS an toàn bằng cách sử dụng Certbot để tải xuống và thiết lập cấu hình chứng chỉ SSL từ Tổ chức phát hành chứng chỉ Let's Encrypt.
Để hoàn thành hướng dẫn này, trước tiên bạn cần những thứ sau:
docker
mà không cần sử dụng sudo
Lưu ý: Có thể bỏ qua các bước tiên quyết này nếu bạn đang sử dụng One-Click Docker Image của CloudFly. Image này sẽ có Docker, Docker Compose và UFW đã được cài đặt và thiết lập cấu hình.
Khởi chạy một Docker image mới trong khu vực bạn chọn, sau đó đăng nhập với tư cách root user và tiếp tục với hướng dẫn. Theo tùy chọn, bạn có thể bỏ qua phần sudo
của tất cả các lệnh, nhưng điều đó là không cần thiết.
Cuối cùng, để kích hoạt SSL, bạn sẽ cần một tên miền trỏ tới địa chỉ IP công khai của máy chủ. Ví dụ, đây phải là một cái gì đó giống như example.com
hoặc plausible.example.com
.
Khi bạn đã đáp ứng tất cả các điều kiện tiên quyết, hãy chuyển sang Bước 1, nơi bạn sẽ tải xuống và khởi chạy phần mềm Plausible.
Plausible đã tạo một kho lưu trữ Git với tất cả các tệp 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 là sao chép kho lưu trữ này vào máy chủ của bạn, cập nhật hai tệp cấu hình, sau đó khởi động bộ chứa cơ sở dữ liệu và ứng dụng hợp lý.
Đăng nhập vào máy chủ của bạn bây giờ.
Đầu tiên, sử dụng lệnh cd
để điều hướng vào thư mục /opt
:
- cd /opt
Sau đó, sử dụng lệnh git
để sao chép repo từ GitHub vào một thư mục mới trong /opt
có tên là plausible
:
- sudo git clone https://github.com/plausible/hosting plausible
Thao tác này sẽ kéo tất cả các tệp cấu hình cần thiết vào /opt/plausible
. Di chuyển vào thư mục vừa tạo:
- cd plausible
Tệp đầu tiên chúng ta cần chỉnh sửa là plausible-conf.env
, một tệp có một vài biến cấu hình mà chúng ta cần đặt.
Trước khi bạn mở tệp để chỉnh sửa, hãy tạo một hash (hàm băm) ngẫu nhiên mới:
- openssl rand 64 | base64 -w 0 ; echo
Điều này sử dụng lệnh openssl
để tạo 64 ký tự ngẫu nhiên và lệnh base64
để mã hóa base64 cho chúng. Sao chép đầu ra vào khay nhớ tạm của bạn, sau đó mở tệp cấu hình:
- sudo nano plausible-conf.env
Tệp chứa năm biến mà bạn sẽ cần điền vào:
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here
Điền email, tên người dùng, mật khẩu và URL cơ sở, sau đó dán các ký tự ngẫu nhiên mà bạn đã tạo bằng openssl
.
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 trống chứ không phải tên miền, hãy đảm bảo đặt trước địa chỉ đó bằng http://
.
Lưu tệp (CTRL+O
rồi ENTER
bằng nano
) và đóng trình chỉnh sửa của bạn (CTRL+X
).
Có nhiều tùy chọn cấu hình hơn mà bạn có thể thêm vào tệp này, nhưng bộ tối thiểu này sẽ giúp bạn thiết lập và chạy. Bạn có thể tìm thêm thông tin về cách thiết lập cấu hình Plausible thông qua plausible-conf.env
trong tài liệu tự lưu trữ chính thức của Plausible Analytics.
Bây giờ bạn cần cập nhật tệp docker-compose.yml
. Tệp này là thứ mà lệnh docker-compose
sử dụng để thiết lập cấu hình và khởi chạy nhiều bộ chứa Docker. Chúng ta cần thay đổi một tùy chọn trong tệp này: IP mà Plausible liên kết đến.
- sudo nano docker-compose.yml
Tìm phần xác định vùng chứa Plausible. Nó sẽ bắt đầu với plausible:
. Trong phần đó tìm các ports:
định nghĩa và cập nhật nó như sau:
ports:
- 127.0.0.1:8000:8000
Điều này đảm bảo rằng Plausible chỉ lắng nghe trên giao diện localhost (máy chủ cục bộ) và không có sẵn công khai. Mặc dù bạn đã thiết lập tường lửa UFW, nhưng do một số vấn đề trong cách hoạt động của mạng Docker, nếu bạn không thực hiện bước này, bộ chứa Plausible của bạn sẽ có thể truy cập được công khai trên cổng 8000
và chúng ta chỉ muốn nó có thể truy cập được thông qua Nginx proxy bạn sẽ thiết lập trong bước tiếp theo.
Lưu và đóng tệp docker-compose.yml
, sau đó sử dụng docker-compose
để tải xuống, thiết lập cấu hình và khởi chạy các vùng chứa:
- sudo docker-compose up --detach
Cờ --detach
yêu cầu docker-compose
tạo các thùng chứa trong nền, tách ra khỏi phiên cuối của chúng ta:
Output. . .
Starting plausible_plausible_events_db_1 ... done
Starting plausible_plausible_db_1 ... done
Starting plausible_mail_1 ... done
Starting plausible_plausible_1 ... done
Bộ chứa ứng dụng và tất cả các bộ chứa cơ sở dữ liệu và thư hỗ trợ của nó hiện sẽ chạy. Bạn có thể xác minh điều này bằng cách sử dụng lệnh curl
để tìm nạp trang chủ của bộ chứa Plausible mới chạy trên máy chủ cục bộ:
- curl http://localhost:8000
Output<html><body>You are being <a href="/login">redirected</a>.</body></html>
Nếu một số HTML được xuất ra thiết bị đầu cuối của bạn, bạn biết rằng máy chủ đang hoạt động.
Tiếp theo, chúng ta sẽ thiết lập Nginx để đảo ngược proxy Plausible từ localhost:8000
thành công khai.
Đặt một máy chủ web chẳng hạn như Nginx trước máy chủ elixir của bạn có thể cải thiện hiệu suất bằng cách giảm tải bộ nhớ đệm, nén và phân phối tệp tĩnh cho một quy trình hiệu quả hơn. Chúng ta sẽ cài đặt Nginx và thiết lập cấu hình nó để đảo ngược các yêu cầu proxy thành Plausible, nghĩa là nó sẽ xử lý các yêu cầu từ user của bạn tới Plausible và ngược lại.
Trước tiên, hãy làm mới danh sách gói của bạn, sau đó cài đặt Nginx bằng apt
:
- sudo apt update
- sudo apt install nginx
Cho phép lưu lượng truy cập công khai đến các cổng 80
và 443
(HTTP và HTTPS) bằng cách sử dụng cấu hình ứng dụng UFW “Nginx Full”:
- sudo ufw allow "Nginx Full"
OutputRule added
Rule added (v6)
Tiếp theo, mở tệp cấu hình Nginx mới trong thư mục /etc/nginx/sites-available
. Chúng tôi sẽ gọi tên của chúng tôi là plausible.conf
nhưng bạn có thể sử dụng một tên khác:
- sudo nano /etc/nginx/sites-available/plausible.conf
Dán phần sau vào tệp cấu hình mới, đảm bảo thay thế your_domain_here
bằng tên miền mà bạn đã thiết lập cấu hình để trỏ đến máy chủ Plausible của mình. Ví dụ như plausible.example.com
:
server {
listen 80;
listen [::]:80;
server_name your_domain_here;
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, vì chúng ta sẽ để Certbot đảm nhiệm việc thiết lập cấu hình SSL trong bước tiếp theo. Phần còn lại của cấu hình thiết lập các vị trí ghi nhật ký và sau đó chuyển tất cả lưu lượng truy cập đến http://localhost:8000
, phiên bản Plausible mà chúng ta đã bắt đầu ở bước trước.
Lưu và đóng tệp, sau đó kích hoạt 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/
Sử dụng nginx -t
để xác minh rằng cú pháp tệp cấu hình là chính xác:
- sudo nginx -t
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Và cuối cùng, tải lại dịch vụ nginx
để nhận cấu hình mới:
- sudo systemctl reload nginx
Trang web Plausible của bạn bây giờ sẽ có sẵn trên HTTP đơn giản. Tải http://your_domain_here
và nó sẽ trông như thế này:
Bây giờ bạn đã thiết lập và chạy trang web của mình qua HTTP, đã đến lúc bảo mật kết nối với chứng chỉ Certbot và Let's Encrypt.
Nhờ có Certbot và cơ quan cấp chứng chỉ miễn phí Let's Encrypt, việc thêm mã hóa SSL vào ứng dụng Plausible của chúng ta sẽ chỉ mất hai lệnh.
Đầu tiên, cài đặt Certbot và plugin Nginx của nó:
- sudo apt install certbot python3-certbot-nginx
Tiếp theo, hãy chạy certbot
ở chế độ --nginx
và chỉ định cùng một miền mà bạn đã sử dụng trong cấu hình Nginx server_name
:
- sudo certbot --nginx -d your_domain_here
Bạn sẽ được nhắc đồng ý với các điều khoản dịch vụ của Let's Encrypt và nhập địa chỉ email.
Sau đó, bạn sẽ được hỏi có muốn chuyển hướng tất cả lưu lượng HTTP sang HTTPS hay không. Điều đó tùy thuộc vào bạn, nhưng điều này thường được khuyến nghị và an toàn để thực hiện.
Sau đó, Let's Encrypt sẽ xác nhận yêu cầu của bạn và Certbot sẽ tải xuống chứng chỉ của bạn:
OutputCongratulations! You have successfully enabled https://plausible.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/plausible.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/plausible.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à chứng chỉ mới. Tải lại trang web của bạn và nó sẽ tự động chuyển bạn sang HTTPS nếu bạn chọn tùy chọn chuyển hướng.
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 chi tiết user mặc định mà bạn đã thiết lập ở Bước 1. Sau đó, bạn sẽ được nhắc xác minh đăng ký của mình và mã xác minh sẽ được gửi qua email đến địa chỉ bạn đã thiết lập 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, điều này có thể tạo ra sự cố do các biện pháp ngăn chặn thư rác khác nhau. Nếu bạn không nhận được email, hãy kiểm tra thư mục thư rác. Nếu không có, bạn có thể cần thiết lập các chi tiết SMTP phù hợp hơn trong tệp plausible-conf.env
. Xem tài liệu Plausible self-hosting chính thức để biết chi tiết về cấu hình thư.
Khi đăng nhập thành công, bạn sẽ thấy lời nhắc thiết lập trang web đầu tiên của mình với Plausible:
Bạn đã cài đặt và bảo mật thành công phần mềm Plausible analytics của mình.
Trong hướng dẫn này, bạn đã khởi chạy ứng dụng Plausible Analytics và các bộ chứa trợ giúp được liên kết của nó bằng cách sử dụng Docker Compose, sau đó thiết lập proxy ngược Nginx và bảo mật ứng dụng đó bằng chứng chỉ SSL Let's Encrypt.
Bây giờ, bạn đã sẵn sàng để thiết lập trang web của mình và thêm tập lệnh theo dõi Plausible Analytics. Vui lòng xem tài liệu chính thức về Plausible Analytics để biết thêm thông tin về cách sử dụng phần mềm và thiết lập trang web của bạn.