Cách cài đặt Fathom Privacy Focused Web Analytics trên Debian 12

theanh

Administrator
Nhân viên
Fathom là công cụ phân tích web tập trung vào quyền riêng tư, cung cấp dữ liệu rõ ràng và súc tích về các trang web của bạn. Đây là một chương trình phân tích trang web đơn giản cung cấp báo cáo và số liệu chuyên sâu về các trang web của bạn. Fathom được tạo ra như một giải pháp thay thế cho Google Analytics, nhưng không xâm phạm quyền riêng tư của người dùng và không làm tổn hại đến dữ liệu của khách truy cập. Fathom tuân thủ GDPR và không yêu cầu biểu ngữ cookie.

Fathom có hai phiên bản, phiên bản mã nguồn mở có thể cài đặt trên máy chủ của bạn và phiên bản chuyên nghiệp mà bạn có thể mua từ trang web chính thức của Fathom. Những người dùng phân tích trang web Fathom đáng chú ý là IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS và nhiều người khác nữa.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn từng bước cài đặt Fathom Privacy Focused Web Analytics trên máy chủ Debian 12. Chúng tôi sẽ hướng dẫn cài đặt Fathom với PostgreSQL làm cơ sở dữ liệu và Nginx làm proxy ngược. Hơn nữa, chúng tôi cũng sẽ bảo mật Fathom bằng chứng chỉ SSL/TLS từ Letsencrypt.

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

Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:
  • Máy chủ Debian 12.
  • Người dùng không phải root có quyền quản trị viên.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt Dependencies​

Fathom là công cụ phân tích web tập trung vào quyền riêng tư được xây dựng trên Golang và Preact. Công cụ này hỗ trợ các cơ sở dữ liệu như PostgreSQL, MySQL và SQLite, đồng thời có thể chạy với proxy ngược Nginx. Bây giờ bạn sẽ cài đặt các gói phụ thuộc cho Fathom, chẳng hạn như PostgreSQL, Nginx, Certbot và UFW (Uncomplicated Firewall).

Trước tiên, hãy thực thi lệnh apt bên dưới để cập nhật kho lưu trữ Debian của bạn.
Mã:
sudo apt update
Bây giờ hãy cài đặt các gói phụ thuộc bằng cách thực thi lệnh sau. Với điều này, bạn sẽ cài đặt máy chủ PostgreSQL, máy chủ web Nginx, Certbot, plugin Nginx Certbot và UFW (Uncomplicated Firewall).
Mã:
sudo apt install postgresql nginx certbot python3-certbot-nginx ufw
Nhập y để tiếp tục cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22460%22%3E%3C/svg%3E


Sau khi các phần phụ thuộc được cài đặt, bạn sẽ đảm bảo rằng mọi phụ thuộc đều khả dụng trên hệ thống của bạn.

Xác minh dịch vụ postgresql bằng lệnh bên dưới để đảm bảo rằng dịch vụ đang chạy và được bật.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Kết quả sau sẽ được hiển thị trên thiết bị đầu cuối của bạn, cho biết postgresql đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E


Tiếp theo, hãy xác minh dịch vụ nginx bằng cách thực hiện lệnh sau.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Một đầu ra tương tự sẽ được in trên thiết bị đầu cuối của bạn cho biết dịch vụ nginx đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E


Cuối cùng, hãy xác minh certbot bằng cách thực hiện lệnh sau. Thao tác này sẽ định vị tệp thực thi nhị phân của certbot và kiểm tra phiên bản certbot hiện tại được cài đặt trên hệ thống của bạn.
Mã:
which certbot
certbot --version
Đầu ra hiển thị sẽ cho bạn thấy Certbot 2.1 được cài đặt tại /usr/bin/certbot.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22351%22%20height=%22152%22%3E%3C/svg%3E

Cấu hình Tường lửa​

Sau khi cài đặt các phụ thuộc, bạn sẽ cấu hình UFW để bảo mật máy Debian của mình. Bạn sẽ mở các cổng cho SSH, HTTP và HTTPS trên hệ thống của mình.

Thực hiện lệnh sau để mở các cổng cho các giao thức SSH, HTTP và HTTPS. Hồ sơ OpenSSH sẽ mở cổng 22/tcp và hồ sơ WWW Full sẽ mở cả HTTP và HTTPS - cổng 80 và 443.
Mã:
sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"
Bây giờ hãy chạy lệnh bên dưới để khởi động và kích hoạt UFW trên hệ thống Debian của bạn.
Mã:
sudo ufw enable
Nhập y để tiếp tục xác nhận. Khi thành công, bạn sẽ nhận được thông báo "Tường lửa đang hoạt động và được bật khi khởi động hệ thống".


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22717%22%20height=%22228%22%3E%3C/svg%3E


Cuối cùng, hãy xác minh trạng thái UFW bằng lệnh bên dưới.
Mã:
sudo ufw status
Đầu ra active cho biết UFW đang chạy và được bật, bạn cũng sẽ thấy các cấu hình OpenSSHWWW Full được thêm vào UFW.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22490%22%20height=%22217%22%3E%3C/svg%3E

Tạo cơ sở dữ liệu PostgreSQL và người dùng​

Trong bước tiếp theo, bạn sẽ tạo cơ sở dữ liệu PostgreSQL và người dùng mới mà Fathom sẽ sử dụng. Để thực hiện điều đó, bạn phải đăng nhập vào máy chủ PostgreSQL thông qua dòng lệnh psql.

Thực hiện lệnh sau để đăng nhập vào máy chủ PostgreSQL.
Mã:
sudo -u postgres psql
Tạo cơ sở dữ liệu mới fathomdb và người dùng fathom bằng các truy vấn PostgreSQL sau. hãy chắc chắn thay đổi mật khẩu trong truy vấn sau.
Mã:
CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22695%22%20height=%22245%22%3E%3C/svg%3E


Bây giờ hãy thực hiện các truy vấn sau để xác minh danh sách các cơ sở dữ liệu và người dùng khả dụng trên PostgreSQL máy chủ.
Mã:
\du
\l
Nếu cơ sở dữ liệu và người dùng được tạo, đầu ra sau sẽ được hiển thị:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22347%22%3E%3C/svg%3E


Gõ quit để thoát khỏi máy chủ PostgreSQL.

Sau khi tạo cơ sở dữ liệu và người dùng, hãy thực hiện lệnh sau để đăng nhập vào PostgreSQL với người dùng fathom và cơ sở dữ liệu fathomdb. Nhập mật khẩu cho người dùng cơ sở dữ liệu của bạn khi được nhắc.
Mã:
sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb
Sau khi kết nối với máy chủ PostgreSQL, hãy thực hiện truy vấn sau để xác minh kết nối của bạn.
Mã:
\conninfo
Sau khi thực hiện lệnh, đầu ra sau sẽ được hiển thị, cho biết bạn đã kết nối với cơ sở dữ liệu fathomdb với người dùng fathom.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22252%22%3E%3C/svg%3E


Gõ quit lần nữa để thoát khỏi máy chủ PostgreSQL.

Tải xuống tệp nhị phân Fathom​

Fathom được viết bằng Golang và Preact, và có sẵn dưới dạng tệp nhị phân duy nhất mà bạn có thể dễ dàng tải xuống và cài đặt trên hệ thống của mình.

Truy cập trang GitHub của Fathom và lấy URL tải xuống cho gói nhị phân Fathom. Sau đó, tải xuống thông qua lệnh wget bên dưới. Trong ví dụ này, bạn sẽ tải Fathom 1.3.1.
Mã:
wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz
Sau khi tải xuống, hãy giải nén gói nhị phân Fathom vào /usr/local/bin/fathom và thực thi thông qua lệnh sau.
Mã:
tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom
Cuối cùng, hãy chạy lệnh sau để xác minh vị trí tệp nhị phân fathom và fathom hiện tại phiên bản bạn đã tải xuống.
Mã:
which fathom
fathom --version
Kết quả đầu ra sau đây cho thấy Fathom 1.3.1 đã được cài đặt trên /usr/local/bin/fathom.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22728%22%20height=%22245%22%3E%3C/svg%3E

Đang cấu hình Fathom​

Trong bước tiếp theo, bạn sẽ cấu hình Fathom bằng cách:
  • Tích hợp Fathom với cơ sở dữ liệu PostgreSQL.
  • Chạy Fathom ở chế độ nền như một dịch vụ systemd.
  • Thêm người dùng quản trị viên cho cài đặt Fathom của bạn.

Tích hợp với PostgreSQL dưới dạng Cơ sở dữ liệu​

Fathom hỗ trợ nhiều cơ sở dữ liệu, chẳng hạn như SQLite (mặc định), MySQL và MariaDB. Trong phần này, bạn sẽ thiết lập thư mục cài đặt Fathom và tích hợp Fathom với máy chủ cơ sở dữ liệu PostgreSQL.

Thực hiện lệnh sau để tạo người dùng hệ thống mới fathom sẽ được sử dụng để chạy cài đặt Fathom của bạn.
Mã:
sudo useradd -r -d /opt/fathom fathom
Bây giờ hãy tạo một thư mục home mới /opt/fathom và thay đổi quyền sở hữu thành người dùng fathom. Thư mục /opt/fathom sẽ được sử dụng để lưu trữ dữ liệu cài đặt Fathom.
Mã:
sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom
Sau đó, chạy lệnh bên dưới để tạo một bí mật ngẫu nhiên cho Fathom. Hãy đảm bảo sao chép đầu ra vì bạn sẽ cần nó để bảo mật fathom.
Mã:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22708%22%20height=%22183%22%3E%3C/svg%3E


Tiếp theo, di chuyển đến thư mục /opt/fathom.
Mã:
cd /opt/fathom
Sau đó, tạo một thư mục /opt/fathom/data mới và một tệp mới /opt/fathom/data/.env bằng lệnh sau.
Mã:
sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom nano /opt/fathom/data/.env
Chèn cấu hình sau và đảm bảo thay đổi thông tin chi tiết về tên cơ sở dữ liệu PostgreSQL, người dùng và mật khẩu.
Mã:
FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="password"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="BWTtur9A1qWtXG6656q4"
Lưu và thoát tệp khi hoàn tất.

Cuối cùng, hãy chạy lệnh sau để đảm bảo rằng cấu hình Fathom của bạn là thành công.
Mã:
cd /opt/fathom/data
sudo -u fathom fathom server
Sau khi thực hiện lệnh, Fathom sẽ chạy trên máy chủ cục bộ với cổng mặc định là 8080 và đầu ra sau sẽ được in ra thiết bị đầu cuối của bạn:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22743%22%20height=%22322%22%3E%3C/svg%3E


Nhấn Ctrl+c để kết thúc quá trình.

Chạy Fathom ở chế độ nền dưới dạng Dịch vụ Systemd​

Trong phần sau, bạn sẽ tạo một tệp dịch vụ systemd mới sẽ được sử dụng để chạy Fathom ở chế độ nền. Với điều này, bạn có thể dễ dàng quản lý Fathom thông qua tiện ích systemctl.

Tạo tệp dịch vụ systemd mới /etc/systemd/system/fathom.service bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/systemd/system/fathom.service
Chèn cấu hình sau vào tệp.
Mã:
[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/opt/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target
Lưu và đóng tệp khi bạn đã hoàn tất.

Tiếp theo, chạy lệnh systemctl sau để tải lại trình quản lý systemd và áp dụng các thay đổi bạn đã thực hiện.
Mã:
sudo systemctl daemon-reload
Sau khi trình quản lý systemd được tải lại, hãy thực thi lệnh systemctl bên dưới để khởi động và kích hoạt dịch vụ fathom. Lệnh này sẽ chạy Fathom ở chế độ nền trên máy chủ cục bộ với cổng mặc định là 8080.
Mã:
sudo systemctl start fathom
sudo systemctl enable fathom

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22205%22%3E%3C/svg%3E


Xác minh dịch vụ fathom bằng lệnh bên dưới để đảm bảo rằng dịch vụ đang chạy và đã bật.
Mã:
sudo systemctl is-enabled fathom
sudo systemctl status fathom
Đầu ra sau sẽ được hiển thị nếu fathom đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22264%22%3E%3C/svg%3E

Thêm Người dùng Quản trị Fathom​

Bây giờ Fathom đang chạy ở chế độ nền như một service, phần tiếp theo là tạo người dùng quản trị cho cài đặt Fathom của bạn. Điều này có thể được thực hiện thông qua dòng lệnh fathom.

Để tạo người dùng Fathom, bạn có thể chạy dòng lệnh fathom từ thư mục dữ liệu fathom.

Di chuyển thư mục làm việc hiện tại của bạn đến /opt/fathom/data.
Mã:
cd /opt/fathom/data
Thực hiện lệnh sau để tạo người dùng quản trị cho cài đặt Fathom của bạn. Hãy nhớ thay đổi địa chỉ email và mật khẩu bằng lệnh sau.
Mã:
sudo -u fathom fathom user add --email="[emailprotected]" --password="password"
Lệnh này sẽ sử dụng tệp .env để kết nối với máy chủ PostgreSQL. Sau khi người dùng được tạo, bạn sẽ nhận được xác nhận như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22175%22%3E%3C/svg%3E

Cấu hình Nginx làm Proxy ngược​

Tại thời điểm này, bạn đã hoàn tất cấu hình Fathom. Bạn sẽ cấu hình Nginx làm proxy ngược cho cài đặt Fathom của mình trong bước sau. Trước khi tiếp tục, hãy đảm bảo rằng bạn có tên miền được trỏ đến địa chỉ IP của máy chủ.

Tạo cấu hình khối máy chủ Nginx mới /etc/nginx/sites-available/fathom bằng lệnh trình chỉnh sửa nan bên dưới.
Mã:
sudo nano /etc/nginx/sites-available/fathom
Chèn cấu hình sau và đảm bảo thay đổi tên miền trong tùy chọn server_name.
Mã:
server {
 listen 80;
 server_name analytics.howtoforge.local;

 location / {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $remote_addr;
 proxy_set_header Host $host;
 proxy_pass http://127.0.0.1:8080; 
 }
}
Khi bạn hoàn tất, hãy lưu và thoát tệp.

Bây giờ hãy chạy lệnh sau để kích hoạt tệp khối máy chủ /etc/nginx/sites-available/fathom và xác minh cú pháp Nginx.
Mã:
sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t
Nếu bạn có cú pháp đúng, đầu ra "cú pháp ổn - thử nghiệm thành công" sẽ được in ra thiết bị đầu cuối của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22193%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh sau để khởi động lại dịch vụ Nginx và áp dụng các thay đổi bạn đã thực hiện. Sau khi thực hiện lệnh, cài đặt Fathom của bạn sẽ có thể truy cập được từ tên miền của bạn.
Mã:
sudo systemctl restart nginx
Cuối cùng, hãy chạy lệnh certbot sau để bảo mật cài đặt Fathom bằng chứng chỉ SSL/TLS từ Letsencrypt. Hãy đảm bảo thay đổi tên miền và thông tin địa chỉ email theo thông tin của bạn.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d analytics.howtoforge.local
Sau khi quá trình hoàn tất, chứng chỉ SSL/TLS của bạn sẽ có trong thư mục /etc/letsencrypt/live/domain.com. Ngoài ra, tệp khối máy chủ Nginx /etc/nginx/sites-available/fathom được cấu hình tự động bằng HTTPS thông qua plugin Certbot Nginx.

Truy cập Fathom​

Khởi chạy trình duyệt web ưa thích của bạn và truy cập tên miền cài đặt Fathom của bạn, chẳng hạn như http://analytics.howtoforge.local/. Bạn sẽ được tự động chuyển hướng đến kết nối HTTPS và bạn sẽ nhận được trang đăng nhập Fathom.

Nhập địa chỉ email quản trị và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22557%22%20height=%22312%22%3E%3C/svg%3E


Nhấp vào Tạo trang web để tạo trình theo dõi đầu tiên.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22569%22%20height=%22229%22%3E%3C/svg%3E


Bạn sẽ thấy mã theo dõi được Fathom tạo ra.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22558%22%20height=%22468%22%3E%3C/svg%3E


Dưới đây là thông tin chi tiết về phân tích trang web Fathom.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22497%22%3E%3C/svg%3E


Từ đây, bạn có thể thêm và thiết lập trình theo dõi mới cho các trang web của mình.

Kết luận​

Để kết luận, bạn đã hoàn tất cài đặt phân tích web tập trung vào quyền riêng tư Fathom trên máy chủ Debian 12 với máy chủ cơ sở dữ liệu PostgreSQL và Nginx làm proxy ngược. Bạn cũng đã bảo mật cài đặt của mình bằng chứng chỉ SSl/TLS từ Letsencrypt và cấu hình UFW (Uncomplicated Firewalld) trên máy chủ Debian của mình. Bạn có thể thêm trình theo dõi mới và triển khai nó trên các trang web của mình.
 
Back
Bên trên