宝塔面板Docker部署Umami统计,并绑定域名与解决数据不显示

宝塔面板Docker部署Umami统计,并绑定域名与解决数据不显示
Vc工具箱宝塔面板Docker部署Umami统计,并绑定域名与解决数据不显示
你是否已经厌倦了谷歌分析那不符合国人习惯的界面,或者担心国内统计工具某天突然停服?自建网站统计系统无疑是最终极的省心方案。本文将手把手教你如何通过宝塔面板,用Docker Compose轻松部署开源、隐私友好的Umami网站统计工具,并详细讲解如何绑定域名以及解决后台不显示数据的关键问题。
一、 为什么选择Umami?
在开始部署之前,先简单了解一下我们为何选择Umami:
- 数据自控:所有数据掌握在自己手中,无需担心第三方服务关闭或数据泄露。
- 隐私友好:遵守GDPR等隐私法规,不跟踪用户个人身份信息。
- 界面简洁:专注于展示你真正关心的核心流量数据,没有信息噪音。
- 轻量高效:跟踪脚本非常小巧,对网站速度影响极微。
二、 准备工作:安装宝塔面板与Docker环境
- 确保已安装宝塔面板:这是本教程的基础,请提前在你的VPS上安装好宝塔面板。
- 安装Docker环境:
- 登录宝塔面板,在左侧菜单栏中找到并进入 “Docker” 栏目。
- 新版本的宝塔面板已将Docker集成到顶级菜单,非常容易找到。进入后,系统会提示你安装,点击安装即可。
三、 核心步骤:使用Docker Compose部署Umami
我们使用docker-compose来一键部署Umami及其依赖的PostgreSQL数据库。
- 在宝塔面板的 “Docker” 栏目下,找到 “容器编排” 功能。
- 点击 “添加容器编排”。
- 填写以下信息:
- 编排名称:可以自定义,如
umami。 - Compose内容:将以下配置完整复制粘贴到文本框中。
- 编排名称:可以自定义,如
yaml
1 | version: '3' |
重要提醒:请务必将配置中的 APP_SECRET: replace-me-with-a-random-string 替换为一个随机的、复杂的字符串,这是保障你应用安全的关键!
- 点击 “确定”。宝塔会自动执行编排,拉取镜像并启动Umami和数据库容器。
四、 初始访问与配置
- 部署完成后,打开浏览器,访问
http://你的服务器IP:3000。 - 使用默认账号登录:
- 用户名:
admin - 密码:
umami
- 用户名:
- (重要)安全措施:登录后,请第一时间在Umami后台的设置中修改默认的用户名和密码!
五、 绑定域名并通过Cloudflare加速(可选但推荐)
直接通过IP和端口访问不美观也不安全,我们将其绑定到一个专业的域名上。
第一步:准备域名与DNS解析
假设你的主域名是 example.com,我们为Umami创建一个子域名 umami.example.com。
- 登录 Cloudflare 控制台,进入你的域名管理。
- 进入 DNS → Records,点击 Add record。
- 添加一个 A记录:
- Type: A
- Name:
umami(或其他你喜欢的子域名) - IPv4 address: 填写你的VPS的IP地址
- Proxy status: 点击橙色云朵,设置为 Proxied (开启CDN和代理)
- 点击 Save。
第二步:宝塔面板配置反向代理
- 登录宝塔面板,进入 网站,点击 添加站点。
- 域名填写你刚解析的域名,例如
umami.example.com。根目录可以随意设置,因为后续会用反向代理。 - 添加站点后,进入该站点的设置页面,找到 反向代理 功能。
- 点击 添加反向代理,配置如下:
- 代理名称:
umami - 目标URL:
http://127.0.0.1:3000
- 代理名称:
- 完成后,宝塔会自动生成Nginx配置。你需要确认或手动在 配置文件 中确保包含以下关键指令,以正确传递用户真实IP和处理WebSocket:
nginx
1 | location / { |
第三步:配置Cloudflare SSL
由于我们使用了Cloudflare代理,SSL证书可以在Cloudflare层面统一处理。
- 在Cloudflare控制台,进入 SSL/TLS → Overview。
- 选择加密模式:
- 如果你的宝塔站点没有配置SSL,选择 Flexible。
- 如果你的宝塔站点也配置了SSL证书(推荐),选择 Full 或 Full (strict) 更安全。
现在,你应该可以通过 https://umami.example.com 安全地访问你的Umami后台了。
六、 疑难解答:网站添加代码后后台不显示数据?
这是部署过程中最常见的问题,通常由以下原因导致:
- CORS跨域问题
- 现象:Umami和你的网站部署在不同域名下,浏览器因安全策略拦截了跟踪请求。
- 解决:检查浏览器开发者工具的控制台是否有CORS报错。确保Umami部署时
APP_SECRET已正确设置,并且通过反向代理绑定域名后,该问题通常能得到解决。
- HTTPS/HTTP混合内容问题
- 现象:你的网站是HTTPS,但Umami的跟踪脚本地址是HTTP。
- 解决:确保你嵌入网站的跟踪脚本中的URL是HTTPS协议,且与你绑定的域名一致。
- 防火墙/安全组配置
- 现象:数据根本无法发送到服务器。
- 解决:检查你的VPS安全组/防火墙是否放行了Umami服务端口(默认3000)。如果你已通过域名和80/443端口访问,则无需额外放行3000端口。
- 网站ID或域名配置错误
- 现象:请求能发出,但Umami后台无法关联数据。
- 解决:
- 在Umami后台 设置 → 网站 中,检查你添加的网站 域名 字段是否与你部署的实际域名完全一致(例如,不要将
www.example.com和example.com弄混)。 - 检查嵌入网站的跟踪代码中的
data-website-id是否正确无误。
- 在Umami后台 设置 → 网站 中,检查你添加的网站 域名 字段是否与你部署的实际域名完全一致(例如,不要将
七、 项目地址
Umami是一个开源项目,你可以在GitHub上查看其源码、文档和最新动态:
https://github.com/umami-software/umami
评论
匿名评论隐私政策





