Umami 是一个开源的 Self-hosted 的轻量网站统计分析工具。可替代 Google Analytics、百度统计这些工具。适合个人博客、小型网站使用。
1、安装
参考官方提供的 docker-compose.yml 和 Environment variables,按需修改对应参数
services:
umami:
image: docker.umami.is/umami-software/umami:latest
ports:
- "8100:3000"
environment:
# 数据库连接地址,密码需和下方的 POSTGRES_PASSWORD 保持一致
DATABASE_URL: postgresql://umami:youpassword@db:5432/umami
DATABASE_TYPE: postgresql
# 用于加密数据的随机字符串
APP_SECRET: replace-me-with-a-random-string
# 跟踪代码文件名,默认跟踪代码会被大多数广告插件屏蔽,应修改
TRACKER_SCRIPT_NAME: custom-script-name.js
# 依赖数据库容器,确保数据库先启动
depends_on:
db:
condition: service_healthy
init: true
restart: always
container_name: umami
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: youpassword
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
container_name: umami-db
volumes:
umami-db-data:
networks:
default:
# 自定义网络名称
name: umami-network
# 启动容器
docker compose up -d
# 查看容器状态
docker ps
# 查看日志,看到 ✓ Ready in 0ms,说明正常启动
docker logs -f umami
# 登录网站修改账号和密码,默认账号密码:admin/umami
http://192.168.1.100:8100
2、Nginx 配置
server {
listen 8001;
server_name tj.youdomin.com;
location ^~ / {
proxy_pass http://192.168.1.100:8100;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
# 缓存
add_header Cache-Control no-cache;
expires 12h;
}
}
3、使用方法
添加被统计网站

获取跟踪代码,将跟踪代码添加到需要统计的网站中
<script defer src="https://tj.youdomin.com/statistics-nine.js" data-website-id="b80b1f5e-5c27-4869-8296-a6913e0f2ac2"></script>

4、优化代码加载
将跟踪代码 custom-script-name.js 下载下来,放在加载更快的 CDN 上,避免因跟踪代码的延迟加载影响到网站的加载速度
<script
async
defer
data-website-id="b80b1f5e-5c27-4869-8296-a6913e0f2ac2"
src="https://your.site.com/custom-script-name.js"
data-host-url="https://tj.youdomin.com"
data-domains="your.site.com">
</script>
async:异步加载脚本,不阻塞页面渲染
defer:延迟执行,页面解析完成后再运行
data-host-url:将统计数据发送到指定域名,官方说明
data-domains:只在特定的网站上运行跟踪代码,避免本地测试时纳入统计
- 本文作者:Nine
- 本文链接:https://blog.nine.gt.tc/2026/06/22/docker-install-umami/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)