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

theanh

Administrator
Nhân viên
Fathom là phần mềm phân tích web tập trung vào quyền riêng tư, tuân thủ GDPR và không yêu cầu biểu ngữ cookie. Đây là 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 ảnh hưởng đến dữ liệu của khách truy cập.

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách cài đặt phần mềm Fathom Privacy Focused Web Analytics trên máy chủ Ubuntu 22.04. Bạn sẽ cài đặt Fathom với PostgreSQL và Nginx làm proxy ngược.

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

Để cài đặt Fathom, hãy đảm bảo bạn có những điều sau:
  • Máy chủ Ubuntu 22.04.
  • Người dùng không phải root có quyền root.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt PostgreSQL Server​

Fathom là phần mềm phân tích web nguồn mở sử dụng PostgreSQL làm cơ sở dữ liệu phụ trợ. Để cài đặt Fathom, bạn phải cài đặt PostgreSQL rồi tạo một cơ sở dữ liệu PostgreSQL và người dùng mới.

Trước tiên, hãy chạy lệnh sau để cập nhật chỉ mục gói Ubuntu của bạn.
Mã:
sudo apt update

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


Sau đó, hãy chạy lệnh bên dưới để cài đặt máy chủ cơ sở dữ liệu PostgreSQL vào Ubuntu của bạn hệ thống.
Mã:
sudo apt install postgresql
Nhập Y để xác nhận quá trình.


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


Sau khi cài đặt, dịch vụ Postgresql sẽ tự động chạy và được bật. Chạy lệnh systemctl sau để xác minh PostgreSQL đã được khởi động.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
Trong đầu ra bên dưới, bạn có thể thấy dịch vụ postgresql đã được bật và sẽ tự động khởi động khi khởi động. Và bạn có thể thấy trạng thái dịch vụ postgresql đang chạy.


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

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

Sau khi cài đặt PostgreSQL, hãy tạo cơ sở dữ liệu và người dùng mới để cài đặt Fathom.

Đăng nhập vào PostgreSQL với tư cách là người dùng mặc định postgres bằng lệnh bên dưới.
Mã:
sudo -u postgres psql
Sau khi đăng nhập, hãy thực hiện các truy vấn sau để tạo cơ sở dữ liệu PostgreSQL và người dùng mới. Trong ví dụ này, bạn sẽ tạo cơ sở dữ liệu fathomdb và người dùng fathom cho cài đặt Fathom của bạn.
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=%22706%22%20height=%22227%22%3E%3C/svg%3E


Bây giờ hãy xác minh danh sách cơ sở dữ liệu và người dùng khả dụng bằng truy vấn bên dưới. Thao tác này sẽ đảm bảo rằng cơ sở dữ liệu và người dùng của bạn đã được tạo.
Mã:
\du
\l
Trong kết quả đầu ra sau, bạn có thể thấy cơ sở dữ liệu fathomdb và người dùng fathom đã được tạo. Gõ q hoặc nhấn Ctrl+d để thoát khỏi PostgreSQL.


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


Tiếp theo, thực hiện lệnh sau để kết nối với cơ sở dữ liệu PostgreSQL fathomdb thông qua người dùng fathom. Nhập mật khẩu khi được yêu cầu, sau đó nhấn ENTER để xác nhận.
Mã:
sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb
Sau khi đăng nhập, hãy xác minh kết nối của bạn bằng truy vấn sau.
Mã:
\conninfo
Ảnh chụp màn hình sau đây cho thấy người dùng fathom được kết nối với cơ sở dữ liệu PostgreSQL fathomdb. Với điều này, hãy tiến hành cài đặt Fathom.


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

Cài đặt Fathom trên Ubuntu​

Bây giờ cơ sở dữ liệu PostgreSQL đã sẵn sàng, bạn sẽ bắt đầu cài đặt Fathom bằng cách hoàn tất giai đoạn sau:
  • Thiết lập Người dùng và Tải xuống Fathom
  • Cấu hình Fathom
  • Chạy Fathom dưới dạng Dịch vụ Systemd
Không cần phải nói thêm nữa, chúng ta hãy bắt đầu.

Thiết lập Người dùng và Tải xuống Fathom​

Trước tiên, bạn sẽ cần tạo một người dùng hệ thống mới sẽ được sử dụng để chạy Fathom. Sau đó, bạn sẽ tải xuống gói nhị phân Fathom vào máy Ubuntu của mình.

Để bắt đầu, hãy chạy lệnh bên dưới để tạo một người dùng hệ thống mới fathom.
Mã:
sudo useradd -r -d /opt/fathom fathom
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 và nhóm fathom.
Mã:
sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom
Tiếp theo, tải xuống gói nhị phân fathom bằng lệnh wget bên dưới.
Mã:
wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz

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


Sau khi tải xuống, hãy giải nén tệp nhị phân fathom vào thư mục /usr/local/bin và tạo tệp nhị phân fathom có thể thực thi.
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 xác minh vị trí và phiên bản fathom bằng cách thực hiện lệnh sau.
Mã:
which fathom
fathom --version
Fathom 1.3.1 được cài đặt tại /usr/local/bin/fathom.


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

Cấu hình Fathom​

Lúc này, bạn đã tải Fathom xuống và tạo người dùng và thư mục cài đặt cần thiết. Bây giờ, chúng ta hãy bắt đầu cấu hình cài đặt Fathom.

Chạy lệnh bên dưới để tạo bí mật mật khẩu ngẫu nhiên. Sao chép bí mật đã tạo vào ghi chú của bạn.
Mã:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''
Bây giờ hãy chuyển đến thư mục /opt/fathom.
Mã:
cd /opt/fathom
Tạo thư mục data mới và tệp .env bằng lệnh bên dưới.
Mã:
sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom touch /opt/fathom/data/.env
Sử dụng lệnh nano editor sau để mở tệp .env.
Mã:
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ề cơ sở dữ liệu PostgreSQL và FATHOM_SECRET bằng thông tin.
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="qDQ4fawzKOfBAtJ3O4ID"
Lưu và thoát khỏi tệp khi hoàn tất.


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


Bây giờ hãy di chuyển đến thư mục /opt/fathom/data và chạy Fathom thông qua lệnh bên dưới.
Mã:
cd /opt/fathom/data
sudo -u fathom fathom server
Điều này sẽ khởi tạo và di chuyển cơ sở dữ liệu Fathom. Nếu thành công, bạn sẽ nhận được xác nhận Fathom đang chạy trên cổng mặc định 8080. Bây giờ bạn có thể nhấn Ctrl+c để kết thúc tiến trình Fathom.


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

Chạy Fathom dưới dạng Dịch vụ Systemd​

Bây giờ bạn đã cấu hình Fathom, hãy chạy thành công thông qua dòng lệnh. Hãy tiến xa hơn nữa để chạy Fathom dưới dạng dịch vụ systemd để dễ quản lý. Điều này cho phép bạn quản lý Fathom thông qua systemctl.

Chạy lệnh nano editor sau để tạo tệp dịch vụ systemd mới /etc/systemd/system/fathom.service.
Mã:
sudo nano /etc/systemd/system/fathom.service
Chèn cấu hình sau vào tệp. Như được thấy bên dưới, dịch vụ fathom sẽ chạy dưới người dùng `fathom` với thư mục làm việc mặc định /opt/fathom/data.
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à thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Bây giờ hãy chạy lệnh bên dưới để tải lại trình quản lý systemd.
Mã:
sudo systemctl daemon-reload
Một lần đã tải lại, khởi động và bật dịch vụ fathom bằng lệnh sau. Với lệnh này, Fathom sẽ chạy ở chế độ nền và sẽ tự động chạy khi khởi động.
Mã:
sudo systemctl start fathom
sudo systemctl enable fathom
Thực hiện lệnh bên dưới để xác minh dịch vụ fathom.
Mã:
sudo systemctl status fathom
Nếu cấu hình thành công, bạn sẽ thấy dịch vụ fathom với trạng thái đang chạy.


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


Cuối cùng, hãy chạy lệnh bên dưới để kiểm tra Fathom qua các cổng mở. Fathom đang chạy trên cổng mặc định 8080 trên máy Ubuntu của bạn.
Mã:
ss -tulpn | grep fathom

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

Tạo Người dùng Fathom​

Bây giờ Fathom đã hoạt động, bạn cần tạo người dùng đầu tiên cho cài đặt Fathom của bạn.

Di chuyển đến thư mục /opt/fathom/data.
Mã:
cd /opt/fathom/data
Thực hiện lệnh fathom bên dưới để tạo người dùng Fathom. Trong ví dụ này, bạn sẽ tạo một người dùng mới bob với mật khẩu password.
Mã:
sudo -u fathom fathom user add --email="[emailprotected]" --password="password"

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

Cài đặt và Cấu hình Nginx làm Proxy ngược Hãy cài đặt Nginx và tạo cấu hình khối máy chủ mới cho Fathom.​

Thực hiện lệnh apt sau để cài đặt Nginx trên máy chủ Ubuntu của bạn.
Mã:
sudo apt install nginx -y

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


Sau khi cài đặt hoàn tất, hãy tạo cấu hình khối máy chủ mới /etc/nginx/sites-available/fathom sử dụng trình soạn thảo nano.
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 dòng server_name.
Mã:
server {
 listen 80;
 server_name fathom.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; 
 }
}
Lưu và thoát tệp khi bạn hoàn tất.

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

Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ Nginx và áp dụng các thay đổi.
Mã:
sudo systemctl restart nginx

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


Cuối cùng, hãy xác minh trạng thái dịch vụ Nginx bằng lệnh bên dưới. Đảm bảo Nginx đang hoạt động (đang chạy) và được bật trên máy chủ Ubuntu của bạn.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx

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

Bảo mật Fathom bằng UFW​

Sau khi cấu hình Nginx, hãy cấu hình UFW và mở cả cổng HTTP và HTTPS để cho phép truy cập vào cài đặt Fathom.

Thực hiện lệnh sau để thêm cấu hình ứng dụng OpenSSH vào UFW. Sau đó, khởi động và bật UFW.
Mã:
sudo ufw allow OpenSSH
sudo ufw enable
Nhập y để tiếp tục và UFW sẽ tự động khởi động và chạy khi khởi động.


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


Bây giờ, hãy chạy lệnh bên dưới để thêm hồ sơ ứng dụng 'Nginx Full'. Lệnh này sẽ mở cả giao thức HTTP và HTTPS trên hệ thống Ubuntu của bạn.
Mã:
sudo ufw allow 'Nginx Full'
Kiểm tra danh sách các cổng trên UFW bằng lệnh bên dưới. đảm bảo cả hai cấu hình OpenSSH và 'Nginx Full' đều được bật trên UFW.
Mã:
sudo ufw status

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

Bật HTTPS qua Certbot​

Ở giai đoạn này, Fathom của bạn cài đặt được truy cập từ bên ngoài mạng, nhưng vẫn ở chế độ HTTP. Để bảo mật cài đặt của bạn, bạn phải bật HTTPS trên cấu hình khối máy chủ Nginx.

Trong ví dụ này, bạn sẽ bật HTTPS thông qua Certbot và Letsencrypt. Vì vậy, hãy đảm bảo rằng tên miền của bạn đã trỏ đến địa chỉ IP của máy chủ Ubuntu.

Chạy lệnh apt sau để cài đặt các gói Certbot và python3-certbot-nginx vào Ubuntu của bạn. Nhập y để tiếp tục và tiếp tục.
Mã:
sudo apt install certbot python3-certbot-nginx -y

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


Sau khi cài đặt hoàn tất, hãy tạo chứng chỉ SSL/TLS mới bằng cách thực thi lệnh certbot bên dưới. Hãy đảm bảo thay đổi thông tin chi tiết của tên miền và địa chỉ email bằng thông tin của bạn.
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d fathom.howtoforge.local
Sau khi quá trình hoàn tất, chứng chỉ SSL của bạn sẽ được tạo tại thư mục /etc/letsencrypt/live/domain.com. Ngoài ra, cấu hình khối máy chủ Nginx của bạn sẽ tự động được định cấu hình bằng HTTPS, được thực hiện bởi plugin Nginx Certbot.

Truy cập Cài đặt Fathom​

Mở trình duyệt web của bạn và truy cập tên miền cài đặt Fathom của bạn (ví dụ: https://fathom.howtoforge.local/). Nếu cài đặt thành công, bạn sẽ nhận được trang đăng nhập Fathom.

Đăng nhập bằng tên người dùng và mật khẩu mà bạn đã tạo, sau đó nhấn Đăng nhập để xác nhận.


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


Đầu tiên, bạn sẽ được yêu cầu tạo trình theo dõi đầu tiên. Nhập tên trang web của bạn và nhấp vào Tạo trang web.


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


Bây giờ bạn sẽ thấy mã theo dõi JavaScript được tạo cho trang web của mình. Sao chép mã vào trình soạn thảo mã của bạn và đặt nó vào trang web mục tiêu của bạn.


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


Bây giờ bạn có thể nhấp vào nút cập nhật trang web để tiếp tục và nhấp ra bên ngoài cửa sổ bật lên để đến bảng điều khiển phân tích Fathom như sau:


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

Kết luận​

Xin chúc mừng! Bây giờ bạn đã cài đặt Fathom web analytics trên máy chủ Ubuntu. Bạn đã cài đặt Fathom với máy chủ cơ sở dữ liệu PostgreSQL và cấu hình Nginx làm proxy ngược. Ngoài ra, bạn cũng đã bảo mật Fathom bằng HTTPS thông qua Letsencrypt và cấu hình UFW để mở cả cổng HTTP và HTTPS.
 
Back
Bên trên