如何在 Ubuntu 上安装 Fathom 专注于隐私的 Web 分析
本教程适用于这些操作系统版本
- Ubuntu 22.04(果酱水母)
- Ubuntu 18.04(仿生海狸)
在此页面上
- 先决条件
- 安装 PostgreSQL 服务器
- 创建 PostgreSQL 数据库和用户
在 Ubuntu 上安装 Fathom
- 设置用户并下载 Fathom
- 配置 Fathom
- 将 Fathom 作为 Systemd 服务运行
Fathom 是一款注重隐私的网络分析软件,符合 GDPR 规定,并且不需要 cookie 横幅。它是 Google Analytics 的替代方案,但不会侵犯用户的隐私,也不会泄露访问者数据。
在本文中,我们将向您展示如何在 Ubuntu 22.04 服务器上安装 Fathom Privacy Focused Web Analytics 软件。您将安装 Fathom 以及 PostgreSQL 和 Nginx 作为反向代理。
先决条件
要安装 Fathom,请确保您具备以下条件:
- Ubuntu 22.04 服务器。
- 具有 root 权限的非 root 用户。
- 域名指向服务器IP地址。
安装 PostgreSQL 服务器
Fathom 是一个开源 Web 分析工具,使用 PostgreSQL 作为后端数据库。要安装 Fathom,您必须安装 PostgreSQL,然后创建新的 PostgreSQL 数据库和用户。
首先,运行以下命令来更新您的 Ubuntu 软件包索引。
sudo apt update
然后,运行以下命令将 PostgreSQL 数据库服务器安装到您的 Ubuntu 系统。
sudo apt install postgresql
输入Y以确认该过程。
安装后,Postgresql服务将自动运行并启用。运行以下 systemctl 命令来验证 PostgreSQL 是否已启动。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
在下面的输出中,您可以看到 postgresql 服务已启用,并将在启动时自动启动。并且可以看到postgresql服务状态为running。
创建 PostgreSQL 数据库和用户
安装 PostgreSQL 后,让我们为 Fathom 安装创建一个新的数据库和用户。
使用以下命令以默认用户 postgres 登录 PostgreSQL。
sudo -u postgres psql
登录后,执行以下查询来创建新的 PostgreSQL 数据库和用户。在此示例中,您将为 Fathom 安装创建数据库 fathomdb 和用户 fathom。
CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;
现在使用下面的查询验证可用数据库和用户列表。这将确保您的数据库和用户已创建。
\du
\l
在以下输出中,您可以看到数据库 fathomdb 和用户 fathom 已创建。输入 q 或按 Ctrl+d 退出 PostgreSQL。
接下来,执行以下命令,通过fathom用户连接PostgreSQL数据库fathomdb。当询问时输入您的密码,然后按ENTER进行确认。
sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb
登录后,使用以下查询验证您的连接。
\conninfo
以下屏幕截图显示用户fathom已连接到PostgreSQL数据库fathomdb。这样,继续 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
下载后,将 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 位置和版本。
which fathom
fathom --version
Fathom 1.3.1 安装在/usr/local/bin/fathom。
配置 Fathom
此时,您已经下载了 Fathom 并创建了所需的用户和安装目录。现在,让我们深入了解 Fathom 安装的配置。
运行以下命令来生成随机密码。将生成的机密复制到您的笔记中。
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"
完成后保存并退出文件。
现在移动到 /opt/fathom/data 目录并通过以下命令运行 Fathom。
cd /opt/fathom/data
sudo -u fathom fathom server
这将初始化并迁移 Fathom 数据库。如果成功,您应该会收到 Fathom 在默认端口 8080 上运行的确认信息。您现在可以按 Ctrl+c 终止 Fathom 进程。
将 Fathom 作为 Systemd 服务运行
现在您已经配置了 Fathom,可以通过命令行成功运行它。让我们进一步将 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。
最后,运行以下命令通过开放端口检查 Fathom。 Fathom 正在 Ubuntu 计算机上的默认端口 8080 上运行。
ss -tulpn | grep fathom
创建 Fathom 用户
现在 Fathom 已启动并运行,您需要为 Fathom 安装创建第一个用户。
移动到/opt/fathom/data目录。
cd /opt/fathom/data
执行下面的 fathom 命令来创建 Fathom 用户。在此示例中,您将创建一个新用户 bob,密码为 password。
sudo -u fathom fathom user add --email="[email " --password="password"
安装 Nginx 并将其配置为反向代理
在本指南中,您将使用 Nginx 作为反向代理来运行 Fathom。让我们安装 Nginx 并为 Fathom 创建一个新的服务器块配置。
执行以下 apt 命令在 Ubuntu 服务器上安装 Nginx。
sudo apt install nginx -y
安装完成后,使用 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
如果没有错误,您应该得到一个输出“语法正确 - 测试成功”。
现在运行下面的 systemctl 命令来重新启动 Nginx 服务并应用更改。
sudo systemctl restart nginx
最后,使用以下命令验证 Nginx 服务状态。确保 Nginx 在您的 Ubuntu 服务器上处于活动状态(正在运行)并启用。
sudo systemctl is-enabled nginx
sudo systemctl status nginx
使用 UFW 保护 Fathom
配置 Nginx 后,让我们配置 UFW 并打开 HTTP 和 HTTPS 端口以允许访问 Fathom 安装。
执行以下命令将 OpenSSH 应用程序配置文件添加到 UFW。然后,启动并启用 UFW。
sudo ufw allow OpenSSH
sudo ufw enable
输入 y 继续,UFW 将在启动时自动启动并运行。
现在,运行以下命令来添加应用程序配置文件“Nginx Full”。这将在您的 Ubuntu 系统上打开 HTTP 和 HTTPS 协议。
sudo ufw allow 'Nginx Full'
使用以下命令验证 UFW 上的端口列表。确保在 UFW 上启用 OpenSSH 和“Nginx Full”配置文件。
sudo ufw status
通过 Certbot 启用 HTTPS
在此阶段,您的 Fathom 安装可从网络外部访问,但仍处于 HTTP 模式。为了保护您的安装,您必须在 Nginx 服务器块配置上启用 HTTPS。
在此示例中,您将通过 Certbot 和 Letsencrypt 启用 HTTPS。因此,请确保您的域名指向 Ubuntu 服务器 IP 地址。
运行以下 apt 命令将 Certbot 和 python3-certbot-nginx 软件包安装到您的 Ubuntu。输入 y 继续。
sudo apt install certbot python3-certbot-nginx -y
安装完成后,通过执行下面的 certbot 命令生成新的 SSL/TLS 证书。请务必使用您的信息更改域名和电子邮件地址的详细信息。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email -d fathom.howtoforge.local
该过程完成后,您的 SSL 证书将在 /etc/letsencrypt/live/domain.com 目录中生成。此外,您的 Nginx 服务器块配置将自动配置 HTTPS,这是由 Nginx Certbot 插件完成的。
访问 Fathom 安装
使用网络浏览器并访问 Fathom 安装的域名(即:https://fathom.howtoforge.local/)。如果安装成功,您将看到 Fathom 登录页面。
使用您创建的用户名和密码登录,然后按登录进行确认。
首先,系统会要求您创建第一个跟踪器。输入您的网站名称并点击创建网站。
现在您将看到为您的网站生成的 JavaScript 跟踪代码。将代码复制到代码编辑器并将其放入目标站点。
现在,您可以单击更新站点按钮继续,然后单击弹出窗口外部以访问 Fathom 分析仪表板,如下所示:
结论
恭喜!您现在已经在 Ubuntu 服务器上安装了 Fathom Web Analytics。您已经安装了 Fathom 和 PostgreSQL 数据库服务器,并将 Nginx 配置为反向代理。除此之外,您还通过 Letsencrypt 使用 HTTPS 保护 Fathom,并将 UFW 配置为打开 HTTP 和 HTTPS 端口。