夜雨聆风学习资料网

ARTICLE · 1019014

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

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
使用 2 系列镜像,大版本标签可能更新
5702:3001
宿主机 5702 转到容器内 3001
./data:/app/data
数据保存在当前目录的 data 文件夹

原文把 5702 暴露给局域网;这里先绑定 127.0.0.1,供同机浏览器和隧道客户端访问。不要把挂载目录放在 NFS 上,官方部署说明不支持这种文件系统。

启动前检查 YAML,再启动服务:

docker compose configdocker compose up -ddocker compose psdocker compose logs --tail=100 uptime-kuma

config 用于检查配置能否解析,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 监控,配置通知

进入仪表盘,点击“添加监控项”。第一次先监控一个自己维护的网页,关键字段如下:

字段
初次练习的填法
监控类型
HTTP(s)
显示名称
能识别用途的名称,如“博客首页”
URL
目标网页的完整地址
心跳间隔
可先设为 60 秒

图中 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地址

在“隧道管理 → 创建隧道”中填写:

项目
填写内容
隧道名称
自定义,不与已有名称重复
协议
HTTP
本地地址
5702
域名类型
先选随机域名进行验证
地区
选择账号可用的地区

注意本地地址为 5702,与本文宿主机端口一致;地区选项可能变化。

这里填 5702,不是容器里的 3001,也不是 cpolar 管理界面的 9200。 隧道客户端运行在宿主机,它要连接的是宿主机上实际可访问的服务端口。

创建后打开“状态 → 在线隧道列表”,找到这个隧道的 HTTPS 地址。用手机关闭 Wi-Fi、切换到移动网络,再访问该地址,检查是否能进入 Kuma 登录页面。

若本地可以打开、外网不行,按顺序检查隧道是否在线、转发端口是否正确,以及客户端到隧道服务的网络连接。不要直接把问题归到 Kuma 上。

五、需要固定地址时,再调整域名

随机地址适合临时验证,不适合作为长期收藏入口。固定二级子域名需要账号支持相应套餐;当前官方文档写明基础套餐或以上支持,购买前以官网现行规则为准。

配置顺序是:在官网后台预留二级子域名,记录名称与地区;回到本地隧道编辑页,把域名类型切换为二级子域名,填入预留值并保存;最后回到在线列表,确认新的 HTTPS 地址。

本地端口仍然保持 5702。域名改变的是外部入口,不需要为此重建 Kuma 容器。

六、用故障与恢复各验证一次

选择自己可控的测试目标,暂停它,等待异常通知;恢复目标,再检查恢复通知。测试通知只是确认通知渠道可用,这一步才把监控配置和实际探测一起验证。

现象
先检查哪里
本地页面打不开
容器日志、端口绑定与访问机器
隧道在线但页面失败
是否误填 3001 或 9200
页面打开后一直重连
隧道连接及 WebSocket 转发
状态异常却没有消息
通知测试、监控关联、重试设置
重建后配置消失
是否换了 data 路径或清空了数据

最后保留 compose.yaml 和数据备份。单机小规模使用可以停服务后复制 data 目录,再重新启动,避免直接复制正在写入的数据库。

如果你还不熟悉端口映射、目录挂载和 Compose,可以在云栈社区的 Docker 课程中按这三个主题补齐基础:https://yunpan.plus/t/7469。获取条件以课程页为准。

资料与出处

    • Uptime Kuma 文档入口:github.com/louislam/uptime-kuma
    • cpolar 操作文档:cpolar.com/docs
    • 云栈 Docker 课程:https://yunpan.plus/t/7469

    本文参考 CSDN《开源运维监控工具 Uptime Kuma 本地部署并结合内网穿透实现公网访问》,原作者账号已注销,保留出处:blog.csdn.net/2401_86401473/article/details/142154407。

    本篇更新了 Compose 写法、镜像标签和本地端口绑定,补充了排错与验证步骤;

    相关学习资料