Cách cài đặt Plausible Analytics trên Ubuntu 20.04

Ngày đăng: November 22, 2022

Ubuntu

Giới thiệu

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.

Điều kiện tiên quyết

Để hoàn thành hướng dẫn này, trước tiên bạn cần những thứ sau:

  • Máy chủ Ubuntu 20.04, có bật tường lửa UFW. Vui lòng đọc Thiết lập máy chủ ban đầu với Ubuntu 20.04 của chúng tôi để tìm hiểu thêm về cách thiết lập các yêu cầu này
  • Đã cài đặt Docker. Bạn có thể sử dụng Bước 1 của Cách cài đặt và sử dụng Docker trên Ubuntu 20.04 để hoàn thành việc này. Theo tùy chọn, bạn có thể làm theo Bước 2 của hướng dẫn đó nếu bạn muốn non-root user của mình có thể chạy các lệnh docker mà không cần sử dụng sudo
  • Docker Compose đã được cài đặt. Thực hiện theo Bước 1 của Cách cài đặt và sử dụng Docker Compose trên Ubuntu 20.04 để cài đặt phần mềm này

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.

Bước 1: Cài đặt Plausible Analytics với Docker Compose

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:

  1. 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:

  1. 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:

  1. 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:

  1. 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:

  1. sudo nano plausible-conf.env

Tệp chứa năm biến mà bạn sẽ cần điền vào:

plausible-conf.env
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.

  1. 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:

docker-compose.yml
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:

  1. 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ộ:

  1. 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.

Bước 2: Cài đặt và cấu hình Nginx

Đặ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:

  1. sudo apt update
  2. sudo apt install nginx

Cho phép lưu lượng truy cập công khai đến các cổng 80443 (HTTP và HTTPS) bằng cách sử dụng cấu hình ứng dụng UFW “Nginx Full”:

  1. 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-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:

  1. 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:

/etc/nginx/sites-available/plausible.conf
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/:

  1. 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:

  1. 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

Và cuối cùng, tải lại dịch vụ nginx để nhận cấu hình mới:

  1. 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:

description image

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.

Bước 3: Cài đặt Certbot và Thiết lập Chứng chỉ SSL

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ó:

  1. 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:

  1. 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:

Output
Congratulations! 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:

description image

Bạn đã cài đặt và bảo mật thành công phần mềm Plausible analytics của mình.

Kết luận

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.

Tham gia kênh Telegram của CloudFly để nhận thêm ưu đãi và không bỏ lỡ bất kỳ khuyến mãi nào từ CloudFly
Chia sẻ

0 câu trả lời