雨云搭建 Umami 隐私统计

用雨云 KVM 云服务器 Docker 自建 Umami,隐私友好看清网站访客
发布于 更新于
9

网站上线后想知道「谁来了、从哪来、看哪页」,挂个统计最直观。但主流统计要么要备案域名、要么动不动就加载慢、还要用户同意 Cookie。Umami 是一个开源网站统计,Next.js 写的,轻量、隐私友好、不跨站追踪,数据全在自己服务器。本文用一台雨云 KVM 云服务器,Docker 一把拉起 Umami + 数据库,配 HTTPS 反代,把统计收归自己掌控。

一、先准备一台雨云 KVM 云服务器

Umami 很轻,1 核 1G 足够,需要 7×24 在线、有公网 IP、绑域名走 HTTPS(跟踪脚本与后台都要 https)。想低成本起一台可以看国产高性价比云服务器,比如雨云:KVM 虚拟化、Debian/Ubuntu 镜像任选,新用户用优惠码 admin01 享五折,入门版折后约 9 元/月,支持 7 天无理由退款。挑机器可参考 VPS 怎么选不踩坑

我选 Debian 12。基础安全按 VPS 到手第一件事做什么 走一遍,本文默认你已建好普通用户、开了 ufw。后台走 3000,放行即可。

二、用 Docker 拉起 Umami + 数据库

Umami 支持 MySQL 或 PostgreSQL,这里用 MySQL。装 Docker:

curl -fsSL https://get.docker.com | sh
systemctl enable --now docker

建目录并写 docker-compose.yml

mkdir -p /opt/umami && cd /opt/umami
version: "3"
services:
  db:
    image: mariadb:11
    container_name: umami-db
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=改成强密码
      - MYSQL_DATABASE=umami
      - MYSQL_USER=umami
      - MYSQL_PASSWORD=改成另一个强密码
    volumes:
      - ./db:/var/lib/mysql
  umami:
    image: umamioss/umami:postgresql-latest
    container_name: umami
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "3000:3000"
    environment:
      - DATABASE_TYPE=mysql
      - DATABASE_HOST=db
      - DATABASE_NAME=umami
      - DATABASE_USER=umami
      - DATABASE_PASSWORD=改成另一个强密码
      - APP_SECRET=随机长字符串
    extra_hosts:
      - "host.docker.internal:host-gateway"

注:镜像 tag 以官方发布为准,拉取时按 umamioss/umami 最新稳定版。若用 PostgreSQL 版把 DATABASE_TYPE 与 db 服务换成 postgres 即可。APP_SECRETopenssl rand -hex 32 生成。启动:

docker compose up -d

浏览器先开 http://服务器IP:3000,默认管理员 admin / umami第一次登录务必改密码

三、配 HTTPS 反代

统计后台和跟踪脚本都要 https。用 Nginx 反代 3000:

server {
    listen 80;
    server_name umami.example.com;
    location / { return 301 https://$host$request_uri; }
}
server {
    listen 443 ssl;
    server_name umami.example.com;
    ssl_certificate /etc/letsencrypt/live/umami.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/umami.example.com/privkey.pem;
    client_max_body_size 10m;
    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

申请证书:certbot --nginx -d umami.example.com。放行端口:

ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

四、接上你的网站

  1. 后台「Settings → Websites → Add website」,填网站域名,保存后得到跟踪代码(一段 <script>)。
  2. 把脚本粘到你网站的 </body> 前(博客/静态站直接改模板;雨云手动搭建 LNMP 的站点在 Nginx 或页面里加即可)。
  3. 刷新网站,几秒后 Umami 后台「Dashboard」就能看到访客、页面、来源、设备。

五、踩过的坑与经验

  • 默认密码必须改admin/umami 是公开默认值,公网不改成送门。登录第一件事改密码、关匿名分享。
  • 脚本域名要 https:跟踪脚本用 http 会被浏览器拦截、统计为零。网站和 Umami 都走 https 才正常。
  • 数据库类型别混:compose 里 DATABASE_TYPE 要和实际 db 服务一致(本文用 mysql),否则启动连不上。
  • 和 GA 的区别:Umami 不跨站追踪、不卖数据、符合隐私诉求;缺点是没有行业基准对比。小站、个人站足够用。
  • 数据备份:核心是 ./db(MySQL)。定期 mysqldump 打包;异地思路见 雨云快照备份与对象存储
  • 容器时区:统计按服务器时间,加 TZ=Asia/Shanghai 让报表时间和本地一致。

小结

统计的本质是「看清访客、指导内容」。Umami 把这件事做得很轻:Docker 一把起、隐私友好、脚本即贴即用,数据在自家服务器。常驻轻量服务很适合雨云这类低价稳定 KVM——优惠码 admin01 五折、7 天无理由退款,跑统计很合适。

合规提醒:使用雨云及本文所述方案时,请遵守《网络安全法》《个人信息保护法》《数据安全法》等相关法律法规,仅用于合法合规的网站访问统计,不采集违法违规数据、履行个人信息保护义务,涉及个人信息处理须依法告知并取得同意。

常见问题(FAQ)

Umami 和 Google Analytics 有什么不同?
Umami 开源、自托管、不跨站追踪、不出售数据,更隐私友好,适合小站与个人站;GA 功能全但有 Cookie 同意与合规负担。两者可并存,Umami 主打轻量与可控。
统计一直为零、收不到数据?
最常见是跟踪脚本用了 http(被浏览器拦截)或没粘到页面 前。确认 Umami 与你的网站都走 https,脚本已正确嵌入并发布,刷新页面后看 Dashboard。
数据库能用 PostgreSQL 吗?
可以。compose 把 DATABASE_TYPE 设为 postgresql 并把 db 服务换成 postgres 镜像即可。注意 DATABASE_TYPE 必须和真实 db 一致,否则启动连不上。
雨云优惠码 admin01 怎么用?
下单页优惠码/推广码输入框填 admin01 即享五折,以结算页显示为准。Umami 是常驻轻量服务,建议先开最低配月付验证,雨云支持 7 天无理由退款。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600

用雨云 KVM 云服务器 Docker 自建 Plausible 隐私统计,Postgres+事件处理+HTTPS 反代,跟踪代码嵌入网站。含 SECRET_KEY_BASE 坑与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Memos 轻量记录工具,配 Nginx 反代 HTTPS、标签与双向链接。含时区坑、数据备份与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Cusdis 开源评论系统,Cusdis+SQLite 部署、Nginx 反代 HTTPS、脚本嵌入网站与审核。含 SALT 坑、page-id 唯一性与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 BookStack 团队文档/wiki,BookStack+MySQL 部署、Nginx 反代 HTTPS、书架层级与权限。含默认密码坑、413 上传限制与优惠码 admin01 五折。

用雨云 KVM 云服务器 Docker 自建 Outline 团队文档协作(Outline+PostgreSQL+Redis+对象存储),配 Nginx 反代 HTTPS、空间权限与备份。含环境变量坑与优惠码 admin01 五折。