本页内容

  • 准备工作
  • 安装依赖项
  • 配置 PostgreSQL 数据库和用户
  • 安装 Umami
  • 以 systemd 服务方式运行 Umami
  • 配置 Apache 反向代理
  • 配置 UFW 防火墙
  • 使用 HTTPS 保护 Umami
  • 访问 Umami
  • 总结

Umami 是一个用 Node.js 编写的自由开源网站分析平台。它易于使用和安装,并提供了友好的用户界面。它以隐私保护为核心设计,可作为 Google Analytics 等服务的替代品。你可以将其部署在自己的服务器上,并自由选择数据库,支持 PostgreSQL 或 MySQL。

在本指南中,你将学习如何在 Ubuntu 24.04 服务器上安装以隐私为核心的 Umami 分析工具。

准备工作

完成本指南前,请确保你具备以下条件:

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

安装依赖项

Umami 是一个用 JavaScript 和 Node.js 编写的以隐私为核心的分析工具。它支持 MySQL/MariaDB 和 PostgreSQL 作为数据库。在本节中,你将安装 Umami 所需的依赖项,包括 Node.js、NPM、PostgreSQL、Apache Web 服务器以及 Git。

首先,运行以下命令更新 Ubuntu 软件包列表。

sudo apt update

现在运行以下命令安装 Node.js、NPM、Python、Git 和 PostgreSQL 等依赖项。输入 Y 确认安装。

sudo apt install nodejs npm git apache2 postgresql

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

安装完成后,使用以下命令检查 Apache 服务状态。

sudo systemctl is-enabled apache2 sudo systemctl status apache2

从下方输出可以看到,Apache 正在运行且已启用。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

现在使用以下命令检查 PostgreSQL 服务器状态。

sudo systemctl is-enabled postgresql sudo systemctl status postgresql

你将看到 PostgreSQL 服务已启用,状态为 active(exited)。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

最后,使用以下命令检查 Node.js 和 NPM 的版本:

nodejs --version npm --version

你可以看到已安装 Node.js 18.19 和 NPM 9.2。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

配置 PostgreSQL 数据库和用户

安装完依赖后,你需要为 Umami 创建一个新的 PostgreSQL 数据库和用户。你将使用 psql PostgreSQL 命令行工具来创建数据库和用户。

使用以下命令登录 PostgreSQL 服务器:

sudo -u postgres psql

现在运行以下 SQL 语句创建一个名为 umami 的新用户以及 umamidb 数据库。请务必将密码替换为你自己的信息。

CREATE ROLE umami LOGIN ENCRYPTED PASSWORD 'password'; CREATE DATABASE umamidb OWNER=umami;

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

接下来,使用以下查询查看可用的数据库和用户列表。你将看到 PostgreSQL 服务器上已经存在 umami 用户及其对应的 umamidb 数据库。

\du \l

最后,输入 q 退出 PostgreSQL 命令行。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

安装 Umami

在本节中,你将安装 yarn 包管理器,下载 Umami 源代码,并使用 yarn 安装 JavaScript 依赖,然后通过命令行构建并启动 Umami。

运行以下命令安装 yarn 包管理器。

npm install -g yarn

使用以下命令创建一个名为 umami 的系统用户和用户组。

sudo adduser --system --group --no-create-home --shell /sbin/nologin umami

现在运行以下 git 命令,将 Umami 源代码下载到 /var/www/umami 目录并进入该目录。

git clone https://github.com/umami-software/umami.git /var/www/umami cd /var/www/umami

接下来,运行以下 yarn 命令安装 Umami 的 JavaScript 依赖。

yarn install

下方显示了 Umami JavaScript 依赖的安装过程。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

现在,使用 nano 编辑器创建一个新的 .env 文件。

nano .env

添加以下内容,将 PostgreSQL 配置为 Umami 的数据库。

DATABASE_URL=postgresql://umami:StrongPasswordUmami@localhost:5432/umamidb

完成后保存并退出文件。

接下来,运行以下命令构建 Umami。

yarn build

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

构建完成后,使用以下命令启动 Umami —— 它将在 3000 端口上运行:

yarn start

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

打开浏览器并访问 http://服务器IP:3000/。如果安装成功,你将看到如下的 Umami 登录页面:

回到终端服务器,按下 Ctrl+c 终止该进程。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

最后,运行以下命令将 /var/www/umami 目录的所有权更改为 umami 用户。

sudo chown -R umami:umami /var/www/umami

以 systemd 服务方式运行 Umami

在本指南中,你将让 Umami 以后台 systemd 服务的方式运行。因此,现在你需要为 Umami 创建一个新的服务文件。

使用以下 nano 编辑器命令创建新的 systemd 服务文件 /etc/systemd/system/umami.service。

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

将以下配置内容插入到该文件中。

[Unit]
Description=Umami Website Analytics
After=network.target postgresql.service

[Service]
Type=simple
ExecStart=/usr/bin/npm start
Restart=always
# Consider creating a dedicated user for umami here:
User=umami
Group=umami
#Environment=NODE_ENV=production
WorkingDirectory=/var/www/umami

[Install]
WantedBy=multi-user.target

完成后保存并退出文件。

现在运行以下命令重新加载 systemd 管理器并应用新的 umami.service 服务。

sudo systemctl daemon-reload

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

最后,运行以下命令启动、启用并查看 umami.service 的状态。

sudo systemctl enable --now umami sudo systemctl status umami

如下图所示,umami.service 已启用并正在运行,默认使用 3000 端口。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

配置 Apache 反向代理

既然 Umami 已在后台运行,你现在需要将 Apache 配置为 Umami 的反向代理。

首先,运行以下命令启用将用作反向代理的 Apache 模块。

sudo a2enmod proxy proxy_http ssl rewrite headers

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

现在,使用 nano 编辑器创建一个新的 Apache 虚拟主机文件 /etc/apache2/sites-available/umami.conf。

sudo nano /etc/apache2/sites-available/umami.conf

添加以下配置,并务必将 ServerName 选项替换为你自己的域名。

<VirtualHost *:80>
  ServerName analytics.howtoforge.local

  Options -Indexes
  ProxyRequests on

  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/
</VirtualHost>

完成后保存并退出文件。

接下来,运行以下命令启用虚拟主机文件 umami.conf 并验证 Apache 配置语法。如果语法正确,你将看到 Syntax is OK 的输出。

sudo a2ensite umami.conf sudo apachectl configtest

最后,使用以下命令重启 Apache Web 服务器以应用更改。

sudo systemctl restart apache2

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

配置 UFW 防火墙

在配置 UFW 之前,请确保它已启用并正在运行。在本节中,你将启用 Apache Full 配置文件以允许 HTTP 和 HTTPS 访问。

运行以下命令通过 UFW 的 Apache Full 配置文件开放 HTTP 和 HTTPS 端口。

sudo ufw allow 'Apache Full'

现在使用以下命令重新加载 UFW 并查看其状态。你将看到 UFW 已激活,并且 Apache Full 配置文件已启用。

sudo ufw status

使用 HTTPS 保护 Umami

为了保护 Umami,你将使用 HTTPS。在本节中,你将通过 Let's Encrypt 生成 SSL/TLS 证书。本地域名用户也可以使用自签名证书。

使用以下命令安装 certbot 和 python3-certbot-apache。输入 Y 确认安装。

sudo apt install certbot python3-certbot-apache

现在运行以下 certbot 命令为 Umami 生成 SSL/TLS 证书。请务必将域名和邮箱地址替换为你自己的信息。

sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email admin@howtoforge.local -d analytics.howtoforge.local

流程完成后,你的 SSL 证书将保存在 /etc/letsencrypt/live/domain.com 目录中,你的 Umami 安装也就通过 HTTPS 得到了保护。

访问 Umami

打开浏览器并访问 https://analytics.howtoforge.local/ 即可进入你的 Umami 安装。使用默认用户 admin 和密码 umami 登录。

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

如果登录成功,你将看到如下的 Umami 仪表盘:

在 Ubuntu 24.04 上安装 Umami 隐私网站分析完整教程

要为你的网站添加新的分析数据,点击 Websites > Add Websites 按钮。要修改默认密码,点击 Settings > Users > Edit。

总结

恭喜!你已成功在 Ubuntu 24.04 服务器上安装了以隐私为核心的 Umami 分析工具。Umami 现已配合 PostgreSQL 数据库运行,并以 Apache 作为反向代理。同时,你还通过 certbot 和 Let's Encrypt 为 Umami 启用了 HTTPS 保护。