Docker实战(9):自建网站访问数据统计工具 Umami
前言
如果你跟我一样,既想清楚知道自己的网站有多少人看、从哪来,又不想把用户数据拱手交给第三方,更受不了那些动辄弹出 “同意追踪” 的繁琐流程 —— 那 Umami 这工具,你大概率会喜欢。
它不搞花里胡哨,只把访问量、来源渠道、设备类型这些核心数据摆得明明白白,一个页面全看清。关键是能自己部署,数据握在手里,开源免费还不折腾。
如果你想直观感受它的界面,可以访问官方 Demo:Umami Demo,核心数据看板如下:

实时流量监控更是精准到秒,能清晰看到当前访客的浏览行为:

接下来,我们就用 Docker 快速部署一套属于自己的 Umami。
准备工作
在开始部署前,先确认你的服务器满足以下条件:
- 已安装 Docker 和 Docker Compose(如果未安装,可参考文末的补充命令)
- 有公网 IP(或本地服务器用于测试)
- 开放目标端口(默认 3000,可自定义)
为了方便管理 Umami 的配置和数据,我们先创建一个独立的工作目录:
cd ~ |
如果需要通过服务器 IP 直接访问(非反向代理场景),需开放端口(以 3000 为例):
sudo ufw allow 3000/tcp comment 'umami' && sudo ufw reload |
配置yml文件
Umami 需要依赖数据库存储数据(支持 PostgreSQL 或 MySQL,这里以 PostgreSQL 为例),我们用 docker-compose 统一管理应用和数据库容器。
在~/opt/umami目录下,新建docker-compose.yml文件,将以下内容复制到文件中:
|
所有配置完成后,启动容器:
docker-compose up -d |
启动成功后,可检查容器状态:
如果输出中app和db的状态都是Up,说明部署成功!

反向代理
直接通过IP:端口访问不够美观,且缺乏 HTTPS 安全层。我们可以用 Nginx(或 Caddy、Apache)做反向代理,绑定域名并配置 SSL。
步骤 1:解析域名
先在域名解析平台(如阿里云、Cloudflare)将域名(如umami.example.com)解析到服务器 IP。
步骤 2:Nginx 反向代理配置
在 Nginx 配置文件中添加以下内容。反代配置如下图所示:
server |
如果用宝塔面板,操作更简单:在 “网站” 中添加站点,绑定域名后,在 “反向代理” 中设置目标 URL 为http://127.0.0.1:3000即可:

步骤 3:首次登录:初始化设置
访问你的域名(如https://umami.example.com),使用默认账号登录:
- 用户名:
admin - 密码:
umami
重要! 登录后第一件事:修改默认密码!进入 “设置”→“个人资料”,更新密码为强密码,避免被他人登录。

使用方法
步骤 1:添加被统计网站
进入后台,修改成简体中文后,添加一个网站:

步骤 2:获取跟踪代码
添加网站后,点击网站右侧的 “编辑”→“跟踪代码”,复制生成的脚本:
<script defer src="http://umami.leiting2020.top/script.js" data-website-id="4c3c5b19-7a47-4dd6-ab0f-2542f91fa56a"></script> |

步骤 3:安装跟踪代码到网站
将跟踪代码添加到需要统计的网站中,具体位置因平台而异:
- WordPress:在 “外观”→“主题文件编辑器”→“header.php”,粘贴到
<head>标签内 - Hexo:在主题的
_config.yml中找到 “自定义脚本” 配置项进行配置即可 - 静态 HTML:直接粘贴到
<head>标签内
以 WordPress 为例,添加位置如下:

对于本博客使用的Argon主题来说,在页头或者页尾脚本中,添加这一段跟踪代码即可, 添加后保存Argon设置即可生效。

为什么放<head>里? 因为<head>是网页加载时优先解析的部分,能确保跟踪代码尽早执行,避免遗漏短时间访问(如用户刚打开页面就关闭)。
Umami 核心功能:能统计哪些数据?
部署完成后,等待 10-30 分钟(数据有延迟),就能在后台看到详细统计了,核心数据包括:
- 访问概览:访问量( visitors )、浏览量( pageviews )、平均访问时长、跳出率
- 实时数据:当前在线人数、正在浏览的页面、访客 IP(匿名化)、设备信息
- 页面分析:各页面的访问次数、停留时间、入口 / 出口页面
- 访客分析:设备类型(手机 / 电脑 / 平板)、操作系统、浏览器
- 来源分析:访客从哪个网站 / 搜索引擎跳转而来(支持识别 Google、百度、必应等)
- 地理位置:访客所在国家 / 地区(基于 IP,非精确定位)

小结
Umami 作为一款轻量、隐私友好的自建统计工具,完美平衡了功能与简洁性。通过本文的 Docker 部署教程,你可以在 10 分钟内搭建一套属于自己的网站分析系统,摆脱对第三方工具的依赖。
