本教程适用于以下操作系统版本

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 18.04(Bionic Beaver)

本页内容

  • 前提条件
  • 安装 PostgreSQL 服务器
  • 创建 PostgreSQL 数据库和用户
  • 在 Ubuntu 上安装 Fathom:创建用户并下载 Fathom、配置 Fathom、将 Fathom 作为 Systemd 服务运行
  • 创建 Fathom 用户
  • 安装并配置 Nginx 作为反向代理
  • 使用 UFW 保护 Fathom
  • 通过 Certbot 启用 HTTPS
  • 访问 Fathom 安装
  • 结论
  • 创建用户并下载 Fathom
  • 配置 Fathom
  • 将 Fathom 作为 Systemd 服务运行

Fathom 是一款注重隐私的网站分析软件,符合 GDPR 规范,无需使用 Cookie 横幅。它是 Google Analytics 的替代品,但不会侵犯用户隐私,也不会泄露访客数据。

在本文中,我们将介绍如何在 Ubuntu 22.04 服务器上安装 Fathom 这款注重隐私的网站分析软件。你将使用 PostgreSQL 数据库和 Nginx 反向代理来安装 Fathom。

前提条件

要安装 Fathom,请确保你已具备以下条件:

  • 一台 Ubuntu 22.04 服务器。
  • 一个具有 root 权限的非 root 用户。
  • 一个已指向服务器 IP 地址的域名。

安装 PostgreSQL 服务器

Fathom 是一款使用 PostgreSQL 作为后端数据库的开源网站分析工具。要安装 Fathom,你必须先安装 PostgreSQL,然后创建一个新的 PostgreSQL 数据库和用户。

首先,运行以下命令更新你的 Ubuntu 软件包索引。

sudo apt update

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

然后,运行以下命令将 PostgreSQL 数据库服务器安装到你的 Ubuntu 系统。

sudo apt install postgresql

输入 Y 以确认操作。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

安装完成后,PostgreSQL 服务将自动运行并启用。运行以下 systemctl 命令来验证 PostgreSQL 是否已启动。

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

在下面的输出中,你可以看到 postgresql 服务已启用,并将在启动时自动运行。同时你可以看到 postgresql 服务的状态为 running(运行中)。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

创建 PostgreSQL 数据库和用户

PostgreSQL 已安装完成,接下来为 Fathom 安装创建一个新的数据库和用户。

使用以下命令以默认用户 postgres 登录 PostgreSQL。

sudo -u postgres psql

登录后,执行以下查询语句创建一个新的 PostgreSQL 数据库和用户。在本示例中,你将创建名为 fathomdb 的数据库和名为 fathom 的用户,用于你的 Fathom 安装。

CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

现在使用以下查询语句查看可用的数据库和用户列表,以确认你的数据库和用户已创建成功。

\du
\l

在以下输出中,你可以看到数据库 fathomdb 和用户 fathom 已创建。输入 q 或按 Ctrl+d 退出 PostgreSQL。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

接下来,执行以下命令以 fathom 用户身份连接到 PostgreSQL 数据库 fathomdb。系统提示时输入你的密码,然后按 ENTER 键确认。

sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb

登录后,使用以下查询语句验证你的连接。

\conninfo

以下截图显示用户 fathom 已连接到 PostgreSQL 数据库 fathomdb。确认无误后,即可继续进行 Fathom 安装。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

在 Ubuntu 上安装 Fathom

PostgreSQL 数据库已准备就绪,你将通过完成以下阶段来开始 Fathom 安装:

  • 创建用户并下载 Fathom
  • 配置 Fathom
  • 将 Fathom 作为 Systemd 服务运行

事不宜迟,我们开始吧。

创建用户并下载 Fathom

首先,你需要创建一个用于运行 Fathom 的新系统用户。然后,将 Fathom 二进制包下载到你的 Ubuntu 机器上。

要开始,请运行以下命令创建新的系统用户 fathom。

sudo useradd -r -d /opt/fathom fathom

创建新的主目录 /opt/fathom,并将所有者更改为用户和组 fathom。

sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom

接下来,使用以下 wget 命令下载 fathom 二进制包。

wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

下载完成后,将 fathom 二进制文件解压到 /usr/local/bin 目录,并赋予其可执行权限。

tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom

最后,执行以下命令验证 fathom 的安装路径和版本。

which fathom
fathom --version

Fathom 1.3.1 已安装到 /usr/local/bin/fathom。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

配置 Fathom

至此,你已经下载了 Fathom,并创建了所需的用户和安装目录。现在,我们深入配置 Fathom 安装。

运行以下命令生成一个随机密码密钥(secret)。将生成的密钥复制到你的记事本中。

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''

现在切换到 /opt/fathom 目录。

cd /opt/fathom

使用以下命令创建新的 data 目录和 .env 文件。

sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom touch /opt/fathom/data/.env

使用以下 nano 编辑器命令打开 .env 文件。

sudo -u fathom nano /opt/fathom/data/.env

插入以下配置,并务必将 PostgreSQL 数据库信息和 FATHOM_SECRET 替换为你自己的信息。

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"

完成后保存并退出文件。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

现在切换到 /opt/fathom/data 目录,并通过以下命令运行 Fathom。

cd /opt/fathom/data
sudo -u fathom fathom server

这将初始化并迁移 Fathom 数据库。如果成功,你将看到 Fathom 在默认端口 8080 运行的确认信息。现在可以按 Ctrl+c 终止 Fathom 进程。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

将 Fathom 作为 Systemd 服务运行

既然你已经配置好 Fathom 并通过命令行成功运行它,我们更进一步,将其作为 systemd 服务运行以便于管理。这样你就可以通过 systemctl 管理 Fathom。

运行以下 nano 编辑器命令,创建新的 systemd 服务文件 /etc/systemd/system/fathom.service。

sudo nano /etc/systemd/system/fathom.service

将以下配置插入到文件中。如下所示,fathom 服务将以用户 ` fathom ` 身份运行,默认工作目录为 /opt/fathom/data。

[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

完成后保存并退出编辑器。

现在运行以下命令重新加载 systemd 管理器。

sudo systemctl daemon-reload

重新加载后,使用以下命令启动并启用 fathom 服务。此后,Fathom 将在后台运行,并在系统启动时自动运行。

sudo systemctl start fathom
sudo systemctl enable fathom

执行以下命令验证 fathom 服务。

sudo systemctl status fathom

如果你的配置成功,你应该能看到 fathom 服务的状态为 running(运行中)。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

最后,运行以下命令通过开放端口检查 Fathom。Fathom 正在你的 Ubuntu 机器的默认端口 8080 上运行。

ss -tulpn | grep fathom

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

创建 Fathom 用户

现在 Fathom 已经启动并运行,你需要为你的 Fathom 安装创建第一个用户。

切换到 /opt/fathom/data 目录。

cd /opt/fathom/data

执行以下 fathom 命令创建 Fathom 用户。在本示例中,你将创建一个名为 bob、密码为 password 的新用户。

sudo -u fathom fathom user add --email="
[email protected]
" --password="password"

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

安装并配置 Nginx 作为反向代理

在本指南中,你将使用 Nginx 作为反向代理来运行 Fathom。我们来安装 Nginx,并为 Fathom 创建一个新的 server block(服务器块)配置。

执行以下 apt 命令在你的 Ubuntu 服务器上安装 Nginx。

sudo apt install nginx -y

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

安装完成后,使用 nano 编辑器创建新的服务器块配置 /etc/nginx/sites-available/fathom。

sudo nano /etc/nginx/sites-available/fathom

插入以下配置,并务必修改 server_name 行中的域名。

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; 
 }
}

完成后保存并退出文件。

现在运行以下命令启用服务器块配置 /etc/nginx/sites-available/fathom,并验证 Nginx 的整体语法。

sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t

如果没有错误,你将看到输出 'syntax is ok - test is successful'。

现在运行以下 systemctl 命令重启 Nginx 服务以应用更改。

sudo systemctl restart nginx

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

最后,使用以下命令验证 Nginx 服务状态。确保 Nginx 在你的 Ubuntu 服务器上处于 active(运行中)且已启用。

sudo systemctl is-enabled nginx
sudo systemctl status nginx

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

使用 UFW 保护 Fathom

配置完 Nginx 后,我们来配置 UFW,并开放 HTTP 和 HTTPS 端口,以允许访问 Fathom 安装。

执行以下命令将 OpenSSH 应用配置文件添加到 UFW。然后启动并启用 UFW。

sudo ufw allow OpenSSH
sudo ufw enable

输入 y 继续,UFW 将启动并在开机时自动运行。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

现在运行以下命令添加 'Nginx Full' 应用配置文件。这将在你的 Ubuntu 系统上开放 HTTP 和 HTTPS 两种协议。

sudo ufw allow 'Nginx Full'

使用以下命令验证 UFW 上的端口列表,确保 OpenSSH 和 'Nginx Full' 配置文件都已在 UFW 上启用。

sudo ufw status

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

通过 Certbot 启用 HTTPS

在此阶段,你的 Fathom 安装可以从外部网络访问,但仍然使用 HTTP 模式。为了保护你的安装,你必须在 Nginx 服务器块配置上启用 HTTPS。

在本示例中,你将通过 Certbot 和 Let's Encrypt 启用 HTTPS。因此,请确保你的域名已指向 Ubuntu 服务器的 IP 地址。

运行以下 apt 命令将 Certbot 和 python3-certbot-nginx 软件包安装到你的 Ubuntu 系统。输入 y 继续。

sudo apt install certbot python3-certbot-nginx -y

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

安装完成后,执行以下 certbot 命令生成新的 SSL/TLS 证书。请务必将域名和电子邮件地址替换为你的信息。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email 
[email protected]
 -d fathom.howtoforge.local

过程结束后,你的 SSL 证书将生成在 /etc/letsencrypt/live/domain.com 目录。同时,你的 Nginx 服务器块配置将由 Nginx Certbot 插件自动配置为 HTTPS。

访问 Fathom 安装

打开你的网页浏览器,访问你的 Fathom 安装域名(例如:https://fathom.howtoforge.local/)。如果安装成功,你将看到 Fathom 登录页面。

使用你创建的用户名和密码登录,然后点击 Sign In(登录)确认。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

首先,系统会要求你创建第一个跟踪器(tracker)。输入你的站点名称,然后点击 Create site(创建站点)。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

现在你将看到为你的站点生成的 JavaScript 跟踪代码。将代码复制到你的代码编辑器中,并粘贴到你的目标站点。

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

现在你可以点击 update site(更新站点)按钮继续,然后点击弹出窗口外部,进入如下所示的 Fathom 分析仪表盘:

在 Ubuntu 22.04 上安装注重隐私的 Fathom 网站分析

结论

恭喜!你已在 Ubuntu 服务器上成功安装 Fathom 网站分析工具。你使用 PostgreSQL 数据库服务器安装了 Fathom,并配置了 Nginx 作为反向代理。此外,你还通过 Let's Encrypt 使用 HTTPS 保护了 Fathom,并配置了 UFW 以开放 HTTP 和 HTTPS 端口。