ARTICLE · 1019014
Uptime Kuma 部署教程:Docker 安装、通知配置与内网穿透

这篇按实际操作顺序,把 Uptime Kuma 从本地容器部署到外网可访问:先启动服务,再添加 HTTP 监控和通知,最后用 cpolar 把本地端口映射出去。
适用环境是一台能运行 Docker 的 Linux 机器。Kuma 和 cpolar 安装在同一台宿主机;没有公网 IP 也可以按隧道路线操作。
本文使用 5702 → 3001 端口关系;镜像和启动命令更新为官方当前文档的写法。
一、检查环境,写好 Compose 配置
先确认 Docker 和 Compose 插件可用:
docker --versiondocker compose versiondocker run --rm hello-world前两条确认命令是否存在,第三条检查镜像拉取和容器启动。若拉取失败,先处理 Docker 网络或镜像源;此时还没有进入 Kuma 配置阶段。
新建工作目录:
mkdir -p ~/services/uptime-kumacd ~/services/uptime-kuma在目录内创建 compose.yaml:
services: uptime-kuma: image: louislam/uptime-kuma:2 restart: unless-stopped ports: - "127.0.0.1:5702:3001" volumes: - ./data:/app/data这里有三处需要弄清楚:
:2 | |
5702:3001 | |
./data:/app/data |
原文把 5702 暴露给局域网;这里先绑定 127.0.0.1,供同机浏览器和隧道客户端访问。不要把挂载目录放在 NFS 上,官方部署说明不支持这种文件系统。
启动前检查 YAML,再启动服务:
docker compose configdocker compose up -ddocker compose psdocker compose logs --tail=100 uptime-kumaconfig 用于检查配置能否解析,ps 看容器状态,logs 看启动过程。容器存在但反复重启时,优先读日志,不要连续重复安装。
二、打开页面,创建管理员账号
在这台机器上打开 http://127.0.0.1:5702,按页面提示设置管理员账号。
如果是无桌面的远程 Linux,在自己电脑执行以下命令,保持 SSH 连接,再打开相同地址:
ssh -L5702:127.0.0.1:5702 用户名@Linux地址
历史账号初始化界面;实际以安装版本为准。
先完成账号设置,再开放外部入口。要确认本机端口确实有响应,也可以执行:
curl -Ihttp://127.0.0.1:5702有 HTTP 响应只能说明入口可连接,最终还要用浏览器完成初始化并登录。
三、新增 HTTP 监控,配置通知
进入仪表盘,点击“添加监控项”。第一次先监控一个自己维护的网页,关键字段如下:

图中 URL 是示例,操作时换成自己的目标。
点击“设置通知”,选择实际使用的渠道。邮件通知通常需要 SMTP 地址、端口、加密方式、发件人和认证信息;Webhook 类渠道则按对应平台要求填写。
不要把邮箱登录密码与 SMTP 授权码混用。完成后先发送测试通知,再确认该通知配置已经关联到当前监控项,最后保存监控。

根据当前版本和渠道要求填写,图中选择不代表必须使用该渠道。
这里还要避免一个误区:HTTP 状态正常,不一定意味着业务正常。如果错误页也返回 200,可以用关键字检查进一步识别预期内容;登录、下单这类完整流程,则需要更有针对性的探测。
四、安装 cpolar,映射本地 5702 端口
接下来保持 Kuma 的本地配置不变,把外网流量经隧道转发到 127.0.0.1:5702。
先到 cpolar 官网注册账号,并按官方 Linux 文档安装客户端。采用官方脚本时,可先下载到文件,查看内容后再执行:
curl -fL -o install-cpolar.sh https://www.cpolar.com/static/downloads/install-release-cpolar.shless install-cpolar.shsudo bash install-cpolar.shsudo systemctl enable --now cpolarsudo systemctl status cpolar --no-pager这里的服务命令适用于使用 systemd 的 Linux。若客户端安装方式不同,以对应安装文档为准。
打开 http://127.0.0.1:9200,使用 cpolar 账号登录管理界面。远程机器可再增加一条 SSH 转发:
ssh -L9200:127.0.0.1:9200 用户名@Linux地址在“隧道管理 → 创建隧道”中填写:

注意本地地址为 5702,与本文宿主机端口一致;地区选项可能变化。
这里填 5702,不是容器里的 3001,也不是 cpolar 管理界面的 9200。 隧道客户端运行在宿主机,它要连接的是宿主机上实际可访问的服务端口。
创建后打开“状态 → 在线隧道列表”,找到这个隧道的 HTTPS 地址。用手机关闭 Wi-Fi、切换到移动网络,再访问该地址,检查是否能进入 Kuma 登录页面。
若本地可以打开、外网不行,按顺序检查隧道是否在线、转发端口是否正确,以及客户端到隧道服务的网络连接。不要直接把问题归到 Kuma 上。
五、需要固定地址时,再调整域名
随机地址适合临时验证,不适合作为长期收藏入口。固定二级子域名需要账号支持相应套餐;当前官方文档写明基础套餐或以上支持,购买前以官网现行规则为准。
配置顺序是:在官网后台预留二级子域名,记录名称与地区;回到本地隧道编辑页,把域名类型切换为二级子域名,填入预留值并保存;最后回到在线列表,确认新的 HTTPS 地址。
本地端口仍然保持 5702。域名改变的是外部入口,不需要为此重建 Kuma 容器。
六、用故障与恢复各验证一次
选择自己可控的测试目标,暂停它,等待异常通知;恢复目标,再检查恢复通知。测试通知只是确认通知渠道可用,这一步才把监控配置和实际探测一起验证。
最后保留 compose.yaml 和数据备份。单机小规模使用可以停服务后复制 data 目录,再重新启动,避免直接复制正在写入的数据库。
如果你还不熟悉端口映射、目录挂载和 Compose,可以在云栈社区的 Docker 课程中按这三个主题补齐基础:https://yunpan.plus/t/7469。获取条件以课程页为准。
资料与出处
Uptime Kuma 文档入口: github.com/louislam/uptime-kumacpolar 操作文档: cpolar.com/docs云栈 Docker 课程: https://yunpan.plus/t/7469
本文参考 CSDN《开源运维监控工具 Uptime Kuma 本地部署并结合内网穿透实现公网访问》,原作者账号已注销,保留出处:blog.csdn.net/2401_86401473/article/details/142154407。
本篇更新了 Compose 写法、镜像标签和本地端口绑定,补充了排错与验证步骤;