什么是 Umami?
Umami 是一款开源的网站访问统计工具,可以收集页面浏览量、访客数、来源渠道、设备信息、地理位置等数据,帮助你了解站点的真实流量情况。
相比 Google Analytics,Umami 有以下几个优势:
隐私友好:不使用 Cookie,不收集个人身份信息,符合 GDPR 等隐私法规
轻量:追踪脚本体积极小,对页面加载速度几乎没有影响
开源可自托管:数据完全掌握在自己手中,不依赖第三方服务
界面简洁:数据展示直观,核心指标一目了然
部署 Umami
方式一:使用 Umami Cloud
如果不想自行维护服务器,可以直接使用 Umami Cloud。Umami Cloud 提供免费套餐,支持最多 3 个网站和每月 10 万次页面浏览,对于个人博客或小型站点通常已经足够。
注册账号后即可直接使用,无需任何部署操作。
方式二:使用 Docker Compose 自托管
如果希望将数据托管在自己的服务器上,可以使用 Docker Compose 部署 Umami。
前提条件:服务器已安装 Docker 和 Docker Compose。
创建工作目录
mkdir ~/umami && cd ~/umami创建
docker-compose.yaml# 来源于 https://github.com/umami-software/umami/blob/master/docker-compose.yml services: umami: image: ghcr.io/umami-software/umami:latest ports: - "3000:3000" environment: DATABASE_URL: postgresql://umami:umami@db:5432/umami APP_SECRET: replace-me-with-a-random-string depends_on: db: condition: service_healthy init: true restart: always healthcheck: test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"] interval: 5s timeout: 5s retries: 5 db: image: postgres:15-alpine environment: POSTGRES_DB: umami POSTGRES_USER: umami POSTGRES_PASSWORD: umami volumes: - umami-db-data:/var/lib/postgresql/data restart: always healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 volumes: umami-db-data:注意:请将
APP_SECRET替换为一个随机字符串,可以使用openssl rand -hex 32生成。启动服务
docker compose up -d启动后,Umami 默认运行在
http://服务器IP:3000。默认登录账号为admin,密码为umami,请登录后立即修改密码。配置 Nginx 反向代理
如果需要通过域名访问,可以配置 Nginx 反向代理:
配置好域名解析和 HTTPS 证书后,即可通过域名访问 Umami 控制台。
方式三:通过 1Panel 安装
如果你的服务器使用了 1Panel 面板,可以在 应用商店 中搜索 Umami 并按照引导一键安装,无需手动编写配置文件,1Panel 会自动完成数据库和容器的初始化。
在 Umami 中创建监控网站
登录 Umami 控制台,进入 设置 → 网站,点击 添加网站:

填写网站名称和域名,保存后点击页面右上角的 编辑 按钮,进入编辑页面之后可以看到一段 跟踪代码,复制这段代码,接下来将其配置到 Halo 中。

在 Halo 中配置追踪代码
登录 Halo 控制台,进入 设置 → 代码注入,将复制的追踪代码粘贴到 全局 head 标签 输入框中:

保存后,访问你的站点任意页面,回到 Umami 控制台即可看到实时数据。

配置完成后,Umami 会开始记录你的站点访问数据,包括页面浏览量、访客数、访问来源、设备类型等,你可以在 Umami 控制台的仪表盘中查看完整的统计报告。