如何在 Debian 12 上安装 Fathom 注重隐私的 Web 分析
Fathom 是一种注重隐私的网络分析工具,可提供有关您网站的干净、简洁的数据。这是一个简单的网站分析程序,可提供有关您网站的富有洞察力的报告和指标。 Fathom 是作为 Google Analytics 的替代品而创建的,但它不会侵犯用户的隐私,也不会泄露访问者的数据。它符合 GDPR,无需 cookie 横幅。
Fathom 有两个版本,可以安装在您的服务器上的开源版本,以及可以从 Fathom 官方网站购买的专业版本。著名的 Fathom 网站分析用户包括 IBM、Laravel、GitHub、Hoshicord、BOSCH、McLaren、VueJS 等。
在本指南中,我们将逐步介绍 Debian 12 服务器上的 Fathom Privacy Focused Web Analytics 安装。我们将使用 PostgreSQL 作为数据库、Nginx 作为反向代理来完成 Fathom 安装。此外,我们还将使用 Letsencrypt 的 SSL/TLS 证书来保护 Fathom。
先决条件
在继续之前,请确保您具备以下条件:
- Debian 12 服务器。
- 具有管理员权限的非 root 用户。
- 域名指向服务器IP地址。
安装依赖项
Fathom 是一款基于 Golang 和 Preact 构建的专注于隐私的 Web 分析工具。它支持PostgreSQL、MySQL、SQLite等数据库,并且可以与Nginx反向代理一起运行。现在您将安装 Fathom 的软件包依赖项,例如 PostgreSQL、Nginx、Certbot 和 UFW(简单防火墙)。
首先,执行下面的 apt 命令来更新您的 Debian 存储库。
sudo apt update
现在通过执行以下命令来安装依赖项。这样,您将安装 PostgreSQL 服务器、Nginx Web 服务器、Certbot、Nginx Certbot 插件和 UFW(简单防火墙)。
sudo apt install postgresql nginx certbot python3-certbot-nginx ufw
输入 y 继续安装。
安装依赖项后,您将确保每个依赖项在您的系统上可用。
使用以下命令验证 postgresql 服务,以确保该服务正在运行并启用。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
您的终端上将显示以下结果,这表明 postgresql 正在运行并启用。
接下来,通过执行以下命令验证 nginx 服务。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
类似的输出将打印在您的终端上,表明 nginx 服务正在运行并已启用。
最后,通过执行以下命令验证 certbot。这将找到 certbot 的二进制可执行文件并检查系统上安装的当前 certbot 版本。
which certbot
certbot --version
显示的输出将显示 Certbot 2.1 安装在 /usr/bin/certbot。
配置防火墙
安装依赖项后,您将配置 UFW 以保护您的 Debian 计算机。您将在系统上打开 SSH、HTTP 和 HTTPS 端口。
执行以下命令打开 SSH、HTTP 和 HTTPS 协议的端口。 OpenSSH 配置文件将打开端口 22/tcp,WWW Full 配置文件将打开 HTTP 和 HTTPS - 端口 80 和 443。
sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"
现在运行以下命令在 Debian 系统上启动并启用 UFW。
sudo ufw enable
输入 y 继续进行确认。成功后,您应该收到消息“防火墙处于活动状态并在系统启动时启用”。
最后,使用以下命令验证 UFW 状态。
sudo ufw status
输出 active 表明 UFW 正在运行并已启用,您还应该看到 OpenSSH 和 WWW Full 配置文件已添加到 UFW。
创建 PostgreSQL 数据库和用户
在接下来的步骤中,您将创建 Fathom 将使用的新 PostgreSQL 数据库和用户。为此,您必须通过psql命令行登录到 PostgreSQL 服务器。
执行以下命令登录PostgreSQL服务器。
sudo -u postgres psql
使用以下 PostgreSQL 查询创建新数据库 fathomdb 和用户 fathom。请务必在以下查询中更改密码。
CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;
现在执行以下查询来验证 PostgreSQL 服务器上可用数据库和用户的列表。
\du
\l
如果创建了数据库和用户,将显示以下输出:
键入 quit 以退出 PostgreSQL 服务器。
创建数据库和用户后,执行以下命令,以用户fathom和数据库fathomdb登录PostgreSQL。出现提示时输入数据库用户的密码。
sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb
连接到 PostgreSQL 服务器后,执行以下查询来验证您的连接。
\conninfo
执行命令后,将显示以下输出,这表明您已使用用户 fathom 连接到数据库 fathomdb。
再次键入 quit 以退出 PostgreSQL 服务器。
下载 Fathom 二进制文件
Fathom 是用 Golang 和 Preact 编写的,它作为单个二进制文件提供,您可以轻松下载并安装在您的系统上。
访问 Fathom GitHub 页面并获取 Fathom 二进制包的下载 URL。然后,通过下面的 wget 命令下载它。在此示例中,您将下载 Fathom 1.3.1。
wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz
下载后,将 Fathom 二进制包解压到 /usr/local/bin/fathom 并通过以下命令使其可执行。
tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom
最后,运行以下命令来验证 fathom 二进制文件位置以及您下载的当前 fathom 版本。
which fathom
fathom --version
以下输出显示 Fathom 1.3.1 安装在 /usr/local/bin/fathom 上。
配置 Fathom
在以下步骤中,您将通过以下方式配置 Fathom:
- 将 Fathom 与 PostgreSQL 数据库集成。
- 作为 systemd 服务在后台运行 Fathom。
- 为您的 Fathom 安装添加管理员用户。
与 PostgreSQL 作为数据库集成
Fathom 支持多种数据库,例如 SQLite(默认)、MySQL 和 MariaDB。在本节中,您将设置 Fathom 安装目录并将 Fathom 与 PostgreSQL 数据库服务器集成。
执行以下命令创建一个新的系统用户 fathom,该用户将用于运行 Fathom 安装。
sudo useradd -r -d /opt/fathom fathom
现在创建一个新的主目录/opt/fathom并将所有权更改为用户fathom。目录/opt/fathom将用于存储Fathom安装数据。
sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom
之后,运行以下命令为 Fathom 生成随机秘密。请务必复制输出,因为您将需要它来确保安全。
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''
接下来,移动到 /opt/fathom 目录。
cd /opt/fathom
然后,使用以下命令创建一个新的 /opt/fathom/data 目录和一个新文件 /opt/fathom/data/.env。
sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom nano /opt/fathom/data/.env
插入以下配置,并确保更改 PostgreSQL 数据库名称、用户和密码的详细信息。
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"
完成后保存并退出文件。
最后,运行以下命令以确保您的 Fathom 配置成功。
cd /opt/fathom/data
sudo -u fathom fathom server
执行命令后,Fathom 应该在本地主机上运行,默认端口为 8080,并且以下输出将打印到您的终端:
按 Ctrl+c 终止该进程。
在后台作为 Systemd 服务运行 Fathom
在下一节中,您将创建一个新的 systemd 服务文件,用于在后台运行 Fathom。这样,您就可以通过 systemctl 实用程序轻松管理 Fathom。
使用以下 nano 编辑器命令创建新的 systemd 服务文件 /etc/systemd/system/fathom.service。
sudo nano /etc/systemd/system/fathom.service
将以下配置插入到文件中。
[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
完成后保存并关闭文件。
接下来,运行以下 systemctl 命令来重新加载 systemd 管理器并应用您所做的更改。
sudo systemctl daemon-reload
重新加载 systemd 管理后,执行下面的 systemctl 命令来启动并启用 fathom 服务。这将在本地主机的后台使用默认端口 8080 运行 Fathom。
sudo systemctl start fathom
sudo systemctl enable fathom
使用以下命令验证 fathom 服务,以确保该服务正在运行并启用。
sudo systemctl is-enabled fathom
sudo systemctl status fathom
如果 fathom 正在运行并启用,将显示以下输出。
添加 Fathom 管理员用户
现在 Fathom 作为服务在后台运行,下一部分是为您的 Fathom 安装创建管理员用户。这可以通过 fathom 命令行来完成。
要创建 Fathom 用户,您可以从 fathom 数据目录运行 fathom 命令行。
将当前工作目录移至/opt/fathom/data。
cd /opt/fathom/data
执行以下命令为您的 Fathom 安装创建管理员用户。请务必使用以下命令更改电子邮件地址和密码。
sudo -u fathom fathom user add --email="[email " --password="password"
该命令将使用 .env 文件连接到 PostgreSQL 服务器。创建用户后,您应该得到如下确认:
将 Nginx 配置为反向代理
至此,Fathom的配置就完成了。您将在以下步骤中将 Nginx 配置为 Fathom 安装的反向代理。在继续之前,请确保您有一个指向服务器 IP 地址的域名。
使用下面的 nan 编辑器命令创建新的 Nginx 服务器块配置 /etc/nginx/sites-available/fathom。
sudo nano /etc/nginx/sites-available/fathom
插入以下配置,并确保更改 server_name 选项中的域名。
server {
listen 80;
server_name analytics.hwdomain.io;
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 success”打印到您的终端。
接下来,运行以下命令重新启动 Nginx 服务并应用您所做的更改。执行命令后,您的 Fathom 安装应该可以从您的域名访问。
sudo systemctl restart nginx
最后,运行以下 certbot 命令,使用 Letsencrypt 的 SSL/TLS 证书来保护 Fathom 安装。请务必使用您的信息更改域名和电子邮件地址详细信息。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d analytics.hwdomain.io
该过程完成后,您的 SSL/TLS 证书将在 /etc/letsencrypt/live/domain.com 目录中可用。此外,Nginx 服务器块文件 /etc/nginx/sites-available/fathom 通过 Certbot Nginx 插件自动配置 HTTPS。
访问英寻
启动您首选的 Web 浏览器并访问 Fathom 安装的域名,例如 http://analytics.hwdomain.io/。您应该会自动重定向到 HTTPS 连接,并且您应该会看到 Fathom 登录页面。
输入您的管理员电子邮件地址和密码,然后点击登录。
单击创建站点以创建第一个跟踪器。
您应该会看到 Fathom 生成的跟踪器代码。
下面详细介绍了 Fathom 网站分析。
从这里,您可以为您的网站添加和设置新的跟踪器。
结论
总而言之,您已经在 Debian 12 服务器上完成了 Fathom 注重隐私的 Web 分析的安装,并使用 PostgreSQL 数据库服务器和 Nginx 作为反向代理。您还使用 Letsencrypt 的 SSl/TLS 证书保护您的安装,并在您的 Debian 服务器上配置了 UFW(Uncomplicated Firewalld)。您可以添加新的跟踪器并在您的网站上实施它。