自架服務
louislam/uptime-kuma avatar
louislam/uptime-kuma

Uptime Kuma:自托管站点與服务可用性监控

Uptime Kuma 在自己的伺服器上檢查網站與服務,發生故障時傳送通知,並可發佈狀態頁。

91,397 個 Star8,416 個 ForkJavaScriptMIT

秒懂

它是什麼?
louislam/uptime-kuma 在自有服务器上跑 HTTP、TCP、Docker 等检查,经 WebSocket 推送到 Vue 3 界面,並支持 90 余种告警渠道與多状態頁。
適合誰用?
适合已有 Docker 或 Node 20.4+ 環境、需要自托管监控與公開状態頁的小团队;不适合依赖 NFS 數據卷或需要官方 SLA 的场景。部署前用 compose.yaml 或 louislam/uptime-kuma:2 镜像在 3001 端口试跑,並確認 /app/data 持久化與通知 Webhook 是否可达。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

從 statping 缺口到 Vue 3 自托管监控

Uptime Kuma 由 Louis Lam 维护,倉庫 louislam/uptime-kuma 在 README 首句將其定义為「易用的自托管监控工具」。作者動机写得很直白:找类似 Uptime Robot 的自托管方案時,認為 statping 不够稳定且不再维护,于是自己做一個界面更現代的工具,同時练习 Vue 3、vite.js、Bootstrap 5,並在 SPA 裡用 WebSocket 替代 REST 拉取状態。README 称界面「花哨、響應式、快速」,這與「只跑 cron 脚本」的极简监控不同,更像把运维面板产品化。倉庫元數據描述為 runs website and service checks on your own server,與 statping 类工具同属自托管可用性监控,但技术栈偏 Node.js 全栈。GitHub 自报约 9 万 star、8300 fork(抓取于 2026-08-29),說明社区體量很大;README 未對 star 數做功能承诺,只能当作受欢迎程度的参考。最新 release 為 2.5.3(2026-08-22),安装文檔默認镜像標簽 louislam/uptime-kuma:2,升级步骤指向 wiki「How to Update」而非 README 正文。Live Demo 在 demo.kuma.pet/start-demo,法兰克福节点,10 分钟清數據,适合先看 UI 再决定是否自托管。

HTTP 關键字到 Docker 容器:监控类型清单

README 功能列表覆盖 HTTP(s)、TCP、HTTP(s) Keyword、HTTP(s) Json Query、WebSocket、Ping、DNS Record、Push、Steam Game Server、Docker Containers。Push 类型适合内網任务主動上报心跳;Keyword 與 Json Query 可用于检查響應體是否含特定字符串或 JSON 字段,适合 API 健康检查。Steam 游戏服务器與 Docker 容器监控把 Uptime Kuma 從「只 ping 網站」扩展到游戏服與容器编排场景。默認检查間隔 README 写 20 秒,但未說明能否在 UI 或配置裡改成更長周期以减轻目標压力,文檔未說明处應自行在設置頁驗證。證书信息、Ping 图表、代理支持、2FA 也在功能列表中;證书监控對 HTTPS 站点续期提醒有用。多语言支持指向 src/lang 目錄,翻譯走 Weblate(weblate.kuma.pet)。若你已有 Prometheus 或 Zabbix,Uptime Kuma 更像轻量「 uptime 面板 + 告警路由」,README 未写 Prometheus exporter 或 SNMP,集成方式需查 issue 或自行写 Push monitor。

Telegram 到 SMTP:通知渠道规模

告警方面 README 点名 Telegram、Discord、Gotify、Slack、Pushover、Email(SMTP),並称另有 90+ 通知服务,完整列表链接到 src/components/notifications 目錄。這意味着集成 breadth 很大,但是否每种都经長期维护,README 未逐一保證;选型時應打開该目錄看具體 provider 文件名與近期 issue。Telegram Notification Sample 在 README 截图区有示例,說明 Telegram 是文檔重点展示的渠道之一。SMTP 适合企业内邮件網關;Discord、Slack 适合研發群机器人。通知與 monitor 解耦是常见設计:一条 monitor 失败可触發多個 channel。README 未写告警风暴抑制、重復間隔或升级策略,生产環境若监控對象很多,需要在實际 UI 裡確認是否有静默期或重復通知設置,否则可能 20 秒一轮刷爆频道。國内团队若用企业微信或钉钉,應在 notifications 目錄搜索是否已有現成 provider,没有则可能要 fork 自写或走 generic Webhook。

compose.yaml 與 3001 端口:Docker 部署路径

Docker Compose 安装步骤在 README 中完整给出:mkdir uptime-kuma && cd uptime-kuma,curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml,然後 docker compose up -d。成功後监听所有網卡,示例 URL 為 http://localhost:3001 或 http://your-ip:3001。单容器命令為 docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2;若僅本机访問可把端口改為 -p 127.0.0.1:3001:3001。數據卷挂载 /app/data 是持久化關键,README 用 WARNING 强调 NFS 不受支持,必須映射本地目錄或 Docker volume,這在 NAS 用户裡容易踩坑。高级安装與反向代理說明不在 README 正文,而是 wiki「How to Install」链接;若要走 Nginx/Caddy 反代 HTTPS,應直接读该 wiki 而非猜 header。Hub 镜像 louislam/uptime-kuma 與 README 命令一致;首次登錄會创建管理员,具體初始化流程在 UI 内完成,README 未写默認账号密码(這是正確做法)。

Node 20.4 與 pm2:非容器安装约束

非 Docker 路径要求 Node.js >= 20.4、Git、pm2。支持 Debian、Ubuntu、Fedora、ArchLinux 等主流 Linux,以及 Windows 10 x64、Windows Server 2012 R2 及以上。README 明確不支持 FreeBSD、OpenBSD、NetBSD,也不支持 Replit、Heroku。步骤為 git clone https://github.com/louislam/uptime-kuma.git,cd uptime-kuma,npm run setup;试运行用 node server/server.js,生产推荐 pm2 start server/server.js --name uptime-kuma,並 npm install pm2 -g && pm2 install pm2-logrotate。常用 pm2 monit 看日志,pm2 startup && pm2 save 做開机自啟。入口文件 server/server.js 是判断進程是否起來的直接观测点。非 Docker 安装未在 README 描述目錄树或 .env 变量全集,環境差异(如端口、數據目錄)可能藏在 server 配置或 wiki 裡,和 Docker 的 /app/data 路径也不完全等价,迁移時要单独驗證數據庫文件位置。Windows 服务器用户需注意 Node 版本與 pm2 在 Windows 上的行為差异,README 只列支持版本未写 Windows 服务封装细节。

多状態頁、域名映射與公開 SLA 展示

README 列出 Multiple status pages、Map status pages to specific domains,即同一實例可维护多個對外状態頁,並把不同域名指到不同頁面集合。這對 SaaS 多产品線或「内部全量监控 + 對外精简视图」很實用:内部 monitor 可很多,公開頁只暴露客户關心的子集。Ping chart 與 certificate info 會出現在状態頁相關 UI(README 截图含 Status Page、Settings Page)。2FA 支持针對管理後台登錄,與 status page 公開只读是不同安全面。README 未写 status page 的自定义 CSS、订阅 RSS 或 incident 時間線模板是否内置,這些细节要在 Settings 與 demo 裡点一遍。若要把 status page 绑公司域名,通常配合反向代理與 TLS,再次依赖 wiki 安装章节而非 README 一句话。Light Mode 截图說明主題可切換,對嵌入公司門户時的视觉一致性有一定帮助,但是否支持完整暗色品牌定制 README 未展開。

Issue、Reddit 與 PR:维护节奏與贡献入口

作者 README 声明不通過 email 做一般或技术支持,建议用 Google、GitHub Issues 或 r/UptimeKuma;Reddit 账号 u/louislamlam 可被 @。贡献路径包括 CONTRIBUTING.md 的 PR 规范、wiki「Test Pull Requests」、releases 頁的 beta 测试、Weblate 翻譯(src/lang/README.md)。openIssues 自报约 791(與 star 同批次元數據),高 star 項目 issue 积压不罕见,选型時要扫近期 issue 是否涉及數據丢失、升级断裂或通知失效。裡程碑頁面 github.com/louislam/uptime-kuma/milestones 用于排期。Sponsors 含 OpenCollective 與 GitHub Sponsors,與功能無直接绑定。许可證 MIT,Louis Lam 版權,允许商业使用但软件按原樣提供、無适销性担保;README 未写安全审计或备份策略,生产责任在用户侧。翻譯贡献走 Weblate,中文界面质量取决于社区翻譯進度,可在 src/lang 查看 zh 相關文件是否完整。

2.5.3 發布與本地驗收建议

2026-08-22 连续發布 2.5.1、2.5.2、2.5.3,說明该時段迭代活跃;具體 changelog 需打開 github.com/louislam/uptime-kuma/releases/tag/2.5.3 阅读,README 未摘要 breaking change。本地驗收可復現 README 的 compose 三行:確認 3001 可打開、创建一条 HTTP monitor 指向 https://demo.kuma.pet 或自有 URL、在 Settings 裡配一条 Telegram 或 Webhook 测试通知。若计划 NFS 存储,應预期 README 已拒绝,改 host 本地 volume。升级前读 wiki「How to Update」,避免跨 major 镜像標簽時 /app/data schema 不兼容。對比 Uptime Robot 等 SaaS,Uptime Kuma 的优势是自托管與通知种类;代价是自运维、無 README 承诺的 SLA 與全球探测节点,探测点就是你服务器所在網絡。若监控端点都在公網,单点部署足够;若需多地域探测,要自建多個 Uptime Kuma 實例或外接其他工具,README 未提供聯邦方案。

編輯結論

适合已有 Docker 或 Node 20.4+ 環境、需要自托管监控與公開状態頁的小团队;不适合依赖 NFS 數據卷或需要官方 SLA 的场景。部署前用 compose.yaml 或 louislam/uptime-kuma:2 镜像在 3001 端口试跑,並確認 /app/data 持久化與通知 Webhook 是否可达。 本專案核對項目1應依 README 的實際入口和版本標籤保存輸出,並以專案名稱、命令或檔案路徑標記,避免把未說明的行為當成保證。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記