找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖
Claude、GPT 海外模型 API 接入Claude skills 从入门到精通 吴恩达亲授 AI Agent 核心技能2026 瞪哥公务员考试全攻略 行测申论一站式系统备考
Agent 文心智能蒸馏模型实战 90G 课程智泊 AI 大模型训练营 基于 LangChain 的 RAG 与提示工程实战构建企业级 AI 大脑:大模型微调与 RAG / Agent 全栈实战

6108

积分

0

好友

771

主题
发表于 4 天前 | 查看: 2| 回复: 0

这篇按实际操作顺序,把 Uptime Kuma 从本地容器部署到外网可访问:先启动服务,再添加 HTTP 监控和通知,最后用 cpolar 把本地端口映射出去。

适用环境是一台能运行 Docker 的 Linux 机器。Kuma 和 cpolar 安装在同一台宿主机;没有公网 IP 也可以按隧道路线操作。

本文使用 5702 → 3001 端口关系;镜像和启动命令更新为官方当前文档的写法。

一、检查环境,写好 Compose 配置

先确认 Docker 和 Compose 插件可用:

docker --version
docker compose version
docker run --rm hello-world

前两条确认命令是否存在,第三条检查镜像拉取和容器启动。若拉取失败,先处理 Docker 网络或镜像源;此时还没有进入 Kuma 配置阶段。

新建工作目录:

mkdir -p ~/services/uptime-kuma
cd ~/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 config
docker compose up -d
docker compose ps
docker compose logs --tail=100 uptime-kuma

config 用于检查配置能否解析,ps 看容器状态,logs 看启动过程。容器存在但反复重启时,优先读日志,不要连续重复安装。

二、打开页面,创建管理员账号

在这台机器上打开 http://127.0.0.1:5702,按页面提示设置管理员账号。

如果是无桌面的远程 Linux,在自己电脑执行以下命令,保持 SSH 连接,再打开相同地址:

ssh -L 5702:127.0.0.1:5702 用户名@Linux地址

Uptime Kuma 管理员账户创建页面截图

历史账号初始化界面;实际以安装版本为准。

先完成账号设置,再开放外部入口。要确认本机端口确实有响应,也可以执行:

curl -I http://127.0.0.1:5702

有 HTTP 响应只能说明入口可连接,最终还要用浏览器完成初始化并登录。

三、新增 HTTP 监控,配置通知

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

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

添加 Uptime Kuma HTTP 监控项配置界面

图中 URL 是示例,操作时换成自己的目标。

点击“设置通知”,选择实际使用的渠道。邮件通知通常需要 SMTP 地址、端口、加密方式、发件人和认证信息;Webhook 类渠道则按对应平台要求填写。

不要把邮箱登录密码与 SMTP 授权码混用。完成后先发送测试通知,再确认该通知配置已经关联到当前监控项,最后保存监控。

Uptime Kuma 通知设置入口截图

根据当前版本和渠道要求填写,图中选择不代表必须使用该渠道。

这里还要避免一个误区: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.sh
less install-cpolar.sh
sudo bash install-cpolar.sh
sudo systemctl enable --now cpolar
sudo systemctl status cpolar --no-pager

这里的服务命令适用于使用 systemd 的 Linux。若客户端安装方式不同,以对应安装文档为准。

打开 http://127.0.0.1:9200,使用 cpolar 账号登录管理界面。远程机器可再增加一条 SSH 转发:

ssh -L 9200:127.0.0.1:9200 用户名@Linux地址

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

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

cpolar 创建隧道配置页面截图

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

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

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

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

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

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

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

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

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

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

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

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

资料与出处

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

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




上一篇:ZCode 被曝静默加密上传全量 Git 历史,三条命令永久封堵
下一篇:AgentGit开源发布:全球首个Agent会话协作平台,AI工作上下文可交接
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-9-25 04:06 , Processed in 0.506004 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表