使用 Docker 快速搭建 umami 网站统计工具
umami 是一个开源、简单、快速和注重隐私的 Google Analytics 替代品,可以自行部署到服务器上并支持无限数量的网站统计,支持 Docker 快速部署。
官网:https://umami.is/
Github:https://github.com/umami-software/umami
在线预览:https://analytics.umami.is/share/LGazGOecbDtaIwDr/umami.is
umami 特征
- 轻量级:跟踪脚本仅 2kb,快如闪电。
- 简单分析:统计数据在一个页面上,易于使用。
- 访客信息:可以获取并展示访客的浏览器、操作系统和设备信息。
- 自定义事件:不仅仅可以跟踪页面浏览量,还可以捕获网站上的任何事件。
- 强大的过滤器:使用易用的过滤器深入了解访客数据。
- 实时数据:实时查看当前网站流量和数据。
- 多语言支持:支持简体和繁体中文。
- 无限网站:自行部署后可以支持无限数量的网站。
- 多用户:可以为朋友或客户托管数据。
- 适用于移动设备:针对移动设备优化。
- 共享数据:可以一键开启共享 URL,分享网站统计数据。
- 深色模式:网页支持深色模式。
使用 Docker 安装
克隆仓库:
1 |
|
在根目录执行命令,此命令默认使用 PostgreSQL 数据库。
1 |
|
之后会占用本机的 3000 端口启动 umami,使用 IP 地址加端口可以直接访问。
配置 Nginx 反向代理
实际部署时我们不应该直接使用 IP + 端口访问,通常需要配置反向代理并启用 SSL。
1 |
|
以上配置中将 ssl_certificate
和 ssl_certificate_key
替换为你的 SSL 证书路径,域名改为你已经解析好的域名。之后就可以通过域名访问刚刚部署的 umami,默认的用户名密码是 admin/umami
,登录之后要立即修改为复杂密码。
umami 优化配置
反屏蔽广告插件
umami 跟踪代码可能会被广告拦截器拦截,拦截之后就获取不到访问数据了。可以在 docker-compose.yml
配置文件中增加 TRACKER_SCRIPT_NAME
环境变量,指定跟踪代码的名称,可以指定一个随机字符串,可以不使用 .js
结尾。
1 |
|
使用 docker compose up --force-recreate -d
命令重建容器。跟踪代码名称从默认的 script.js
就变成了指定的名称。
1 |
|
升级
1 |
|
每次升级之前的旧版本镜像是无用的,留着会占用磁盘空间。可以使用 docker image prune -a
命令删除之前的旧版本镜像。
部署到 Hexo Fluid
Fluid 主题貌似没有集成 umami 功能,需要我们手动集成。为了避免修改主题,我们可以使用 Hexo 5 的注入器将统计脚本插入到 head
标签中。
首先需要在博客根目录下建立 scripts
文件夹,然后在里面创建一个 umami.js
文件,写入以下注入代码,将第二个参数替换为你的跟踪代码。
1 |
|
解决 Hexo 本地预览时统计数据的问题
默认生成的跟踪代码部署到 Hexo 中后,如果使用 hexo server
命令启动本地服务预览时也会统计数据。要解决这个问题可以改下跟踪代码增加 data-domains
属性。填写你的网站域名,可使用英文逗号分隔多个域名。
1 |
|
部署到 WordPress 中
如果你的主题支持插入代码或安装了支持插入代码的插件,可以直接插入跟踪代码。但是这样会导致不管是不是登录用户都统计访问数据,所以最好是对访客进行统计,已经登录的用户就不用再统计了。在子主题中的 footer.php
中插入以下代码并将跟踪代码替换为你的。
1 |
|
这样就实现了只针对访客做统计,已登录用户不统计。