用 Docker 部署 Uptime Kuma:从安装到通知配置
从零开始用 Docker 部署 Uptime Kuma,完成监控项、通知渠道与反向代理配置,并说明数据备份与升级注意事项。
- Docker
- 网站监控
- 自托管
关联项目: Uptime Kuma 开源网站监控系统
Uptime Kuma 的部署门槛不高,真正容易出问题的是后续的 HTTPS、反向代理和数据备份。这篇文章按实际部署顺序整理一遍,命令与配置都可以直接参考。
部署前准备
需要准备:
- 一台可以运行 Docker 的 Linux 服务器;
- 一个可用的域名(配置 HTTPS 时需要);
- 服务器防火墙或云安全组放行对应端口。
如果服务器还没有安装 Docker,请先按官方文档完成安装,并确认 docker --version 能正常输出。
启动 Uptime Kuma 容器
创建并启动容器:
docker run -d --restart=always -p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
几个参数的含义:
--restart=always:服务器重启或容器异常退出后自动拉起;-p 3001:3001:把容器内的 3001 端口映射到宿主机;-v uptime-kuma:/app/data:数据目录持久化,删除容器不会丢失监控数据。
启动后访问 http://服务器IP:3001,按页面提示创建管理员账号。建议设置足够复杂的密码,并限制管理面板的访问来源。
添加第一个监控项
登录后点击「添加监控项」,以 HTTP 监控为例:
- 监控类型选择 HTTP(s);
- 填写需要监控的地址;
- 设置检查间隔与重试次数;
- 保存后等待第一次检测结果。
监控项创建后,面板会展示状态、响应时间与历史事件。可以先添加一个确定可访问的地址,确认整条链路正常,再逐个补充业务地址。
配置通知渠道
在「设置 → 通知」中选择通知类型,常见的有:
- Telegram Bot;
- Discord / Slack Webhook;
- SMTP 邮件;
- 自定义 Webhook。
配置完成后务必点击「测试」按钮,确认能够实际收到消息。很多「没有告警」的问题,都是通知配置未测试导致的。
配置 Nginx 反向代理与 HTTPS
直接暴露 3001 端口不利于安全,建议用 Nginx 反向代理。Uptime Kuma 使用 WebSocket,需要在代理配置中保留 Upgrade 头:
server {
listen 80;
server_name monitor.example.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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;
}
}
HTTPS 证书可以用 Certbot 等工具申请,配置完成后应确认状态页与实时状态都能正常刷新。
数据备份与升级
数据都在容器的 /app/data 目录中,备份 volume 即可:
docker run --rm \
-v uptime-kuma:/data \
-v "$(pwd)":/backup \
alpine tar czf /backup/uptime-kuma-backup.tar.gz -C /data .
升级时先拉取新镜像,再用相同的挂载参数重新创建容器。由于数据在 volume 中,重建容器不会影响已有监控配置,但仍建议升级前先做一次备份。
常见问题
面板打不开:先确认容器处于运行状态,再检查安全组与防火墙是否放行端口。
监控显示超时:确认服务器到目标地址的网络连通性,必要时在服务器上用 curl 验证。
通知收不到:在通知设置中执行测试;SMTP 场景注意端口、加密方式与发件人限制。
反向代理后频繁断开:检查 WebSocket 相关请求头是否完整透传。
如果需要部署协助或希望把监控纳入现有运维体系,可以查看 Uptime Kuma 项目详情 或 部署协助服务。