1. 前言:为什么要自建统计工具?
在网站运营过程中,流量分析是核心环节。虽然 Google Analytics 功能强大,但其隐私政策(GDPR)问题以及庞大的体积往往让追求轻量化的站长感到困扰。此外,随着 AdBlock 等广告拦截插件的普及,公共统计域名的拦截率极高,导致数据严重失真。
Umami 是一款开源、注重隐私且极其轻量的 Google Analytics 替代方案。它不收集用户 Cookie,界面清爽,且支持自定义脚本名称,能有效绕过广告拦截,还原最真实的流量数据。

Umami 的后台界面简洁直观,能够实时展示访问量、来源、设备等核心数据:


2. 搭建环境准备
在开始操作前,请确保你的服务器满足以下条件:
面板要求:已安装宝塔面板(或 AAPanel)。
软件依赖:在宝塔软件商店中,安装 Docker管理器 和 Nginx。
数据库:Umami 需要 PostgreSQL 数据库。
方案 A(国内服务器):建议直接在宝塔安装 PostgreSQL 插件。
方案 B(海外服务器):可以使用 Supabase 提供的免费云数据库(本文以 Supabase 为演示,因为免费额度 500MB 对个人站长绰绰有余)。
3. 配置云数据库 (以 Supabase 为例)
Supabase 是一个开源的 Firebase 替代品,提供优秀的 PostgreSQL 托管服务。
注册与创建:前往 Supabase 官网 注册,新建一个组织(Organization)和项目(Project)。
设置密码:创建项目时,务必记住你设置的 Database Password(数据库密码),稍后会用到。
选择节点:根据你 VPS 的位置选择最近的节点。

获取连接信息:项目创建完成后(需等待几分钟),点击左侧菜单的 Database,查看 Connection String。

复制 URI:点击 URI 选项卡,复制连接字符串。格式通常为 postgresql://postgres:[YOUR-PASSWORD]@...。
注意:请手动将字符串中的
[YOUR-PASSWORD]替换为你步骤2中设置的真实密码。

4. 宝塔 Docker 部署实战
步骤一:拉取镜像
进入宝塔面板 -> Docker管理器 -> 镜像管理 -> 获取镜像。输入以下官方镜像地址并拉取:
ghcr.io/umami-software/umami:postgresql-latest
步骤二:创建并配置容器
在“容器列表”中点击“创建容器”,进行如下配置:
端口映射:将容器端口
3000映射到服务器的自定义端口(例如1577)。环境变量(核心步骤):点击“环境变量”加号,逐行添加以下内容:
配置完成后点击提交。

5. 配置 Nginx 反向代理
为了通过域名访问并开启 HTTPS,我们需要配置反代。
在宝塔“网站”中添加一个新站点(如
tongji.example.com)。进入网站设置 -> 反向代理,添加新代理。
或者直接在配置文件中加入以下代码(注意修改
1577为你映射的端口):
location / {
proxy_pass http://127.0.0.1:1577;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
# 缓存相关设置,避免页面不更新
proxy_cache_bypass $http_cache_control;
proxy_no_cache $http_cache_control;
expires off;
}建议同时为该站点申请 Let's Encrypt SSL 证书,确保数据传输安全。
6. 结尾与注意事项
初始登录:访问你的统计域名,默认账号
admin,默认密码umami。登录后请第一时间修改密码!添加代码:在后台添加网站后,获取统计代码(
<script>标签),将其放入你网站的<head>部分即可开始统计。网络问题:如果你的 VPS 位于中国大陆,直接连接 Supabase 云数据库可能会有较高的延迟甚至丢包,导致统计服务不稳定。这种情况下,强烈建议在宝塔本地安装 PostgreSQL 数据库进行连接。
CDN设置:如果统计域名使用了 CDN(如 Cloudflare),Umami 可能会记录为 CDN 节点的 IP。此时需要在 Nginx 配置中增加获取真实 IP 的参数,或在 Umami 环境变量中配置受信任的代理头。
