UptimeFlare:基于 Cloudflare Worker 的免费无服务器站点监控与状态页
UptimeFlare 是一个基于 Cloudflare Worker 的开源免费无服务器站点监控与状态页方案,由开发者 lyc8503 维护,目前 GitHub 收获 3800+ Star。它把监控探针直接跑在 Cloudflare 全球边缘网络上,不必再养一台 7×24 的监控服务器,10 分钟内就能搭起一个支持城市级地理检查、自定义状态码/关键词校验、100+ 通知渠道的监控面板,而且完全免费。
一、它到底是什么
传统监控(如 UptimeRobot、自建 Prometheus)要么有免费额度限制,要么需要一台常驻服务器。UptimeFlare 的思路是:把所有检查逻辑塞进 Cloudflare Worker,数据存储从早期的 KV 迁移到了现在的 D1 数据库(2026-01-03 完成),整套服务托管在 Cloudflare 上,你只需要一个 Cloudflare 账号(免费套餐即可)。
它同时提供两样东西:
- 监控引擎:按你设定的频率去探测网站 / 端口,记录可用率与响应时间;
- 状态页:一个自带响应式 UI 的公开(或加密码保护的私有)状态面板,访客能直观看到各服务的实时健康状况和历史曲线。
二、核心能力
监控能力
- 最多 50 个监控项,最小 1 分钟检查间隔
- 全球 310+ 个城市发起地理特定检查(例如只看“上海用户能不能访问”)
- 支持 HTTP / HTTPS / TCP 端口监控
- 最长 90 天可用率历史与可用率百分比
- HTTP(S) 可自定义请求方法、请求头、请求体
- 支持自定义状态码与关键词校验(例如响应里必须包含 “OK”)
- 宕机通知接入 100+ 渠道(基于 apprise,含 Telegram、Bark、邮件等)
- 支持自定义 Webhook
- 界面中英双语
状态页能力
- 所有监控类型的交互式响应时间(ping)图表
- 计划维护提醒 + 故障历史页面
- 响应式 UI,自动跟随系统明暗主题
- 状态页可高度自定义
- 支持用自有域名 CNAME 接入
- 可选密码保护,做成私有状态页
- 提供 JSON API 拉取实时状态数据
三、工作原理(为什么能免费又无服务器)
UptimeFlare 的检查由部署在 Cloudflare 边缘的 Worker 定时触发,从不同城市的数据中心向你的目标发起请求;结果写入 D1(Cloudflare 的 serverless SQLite)。因为 Cloudflare 免费套餐本身就包含一定量的 Worker 请求与 D1 存储,对于个人站长和小型项目来说,日常监控基本落在免费额度内。
2026-01-03 作者把底层从 KV 迁到 D1,并升级 Terraform Cloudflare provider 到 v5,优化了长期存在的性能问题,老用户有自动迁移流程。新用户直接部署即可,无需关心底层存储细节。
四、手把手部署:零基础也能 10 分钟上线
官方确实宣称”10 分钟、无需本地工具”,但它默认走的是 GitHub Actions 自动部署这条路——你全程在网页上点几下就行,不用在自己电脑装 Node、wrangler 那些东西。下面按真正第一次部署的小白视角拆开讲。
开始前你只需要两样东西:
① 一个 Cloudflare 账号(免费套餐就够,不用绑信用卡);② 一个 GitHub 账号(用来跑自动部署的 Actions)。没有的话先花两分钟注册好。
方法一:GitHub 一键部署(推荐,全程网页操作)
第 1 步:给 Cloudflare 建一个 API 令牌
- 打开 dash.cloudflare.com/profile/api-tokens,点「Create Token」→「Use custom token」或选 Edit Cloudflare Workers 模板。
- 在权限里确认有
Workers Scripts: Edit;再手动加一条D1: Edit权限(这是 2026-01 项目从 KV 迁到 D1 之后必须的,只给 Worker 权限会部署失败)。 - 一路「Continue to summary」→「Create Token」,把生成的令牌复制保存好(只显示一次)。
注意(新账号必看):如果你的 Cloudflare 从没用过 Workers 功能,第一次要先打开一次 Workers 落地页 dash.cloudflare.com/?to=/:account/workers-and-pages,系统才会自动给你创建一个 <子域>.workers.dev 子域。没这步,后面部署会因为找不到 workers.dev 子域而报错(官方 issue #13)。
第 2 步:用模板建你自己的仓库
打开 github.com/lyc8503/UptimeFlare,点右上角绿色的 「Use this template」→「Create a new repository」,起个名字(比如 uptimeflare),可勾选 Private 避免别人看到你监控了哪些站点,最后「Create repository」。
第 3 步:把令牌存进仓库密钥
进入你刚建好的仓库 → 顶部 Settings → 左侧 Secrets and variables → Actions → New repository secret。Name 填 CLOUDFLARE_API_TOKEN,Secret 里粘贴第 1 步复制的令牌,点 Add secret。这个令牌只存在 GitHub 加密区,不会泄露。
第 4 步:改配置文件,填上你要监控的站点
点开仓库根目录的 uptime.config.ts → 点右上角铅笔图标编辑 → 按下面的示例改成你自己的监控目标 → 拉到底点 Commit changes 提交。
第 5 步:等它自动部署
提交后点仓库顶部的 Actions 标签,会看到一条 Deploy 工作流自动跑起来(改文件就触发)。等它从黄点变 绿色 ✅ 就成功了。如果变红,点进去看日志——九成是「D1 权限没加」或「workers.dev 子域没创建」这两件事漏了。
第 6 步:看成果
进 Cloudflare 控制台 → Workers 与 Pages,你会看到两个项目:
uptimeflare—— 状态页(你给别人看的那个面板),默认地址https://<项目名>.pages.dev;uptimeflare_worker—— 负责定时发起检查的 Worker(不用管它)。
打开状态页地址,就能看到实时监控面板了。
以后怎么改监控项?任何时候回去改 `uptime.config.ts` 再提交,Actions 会自动重新部署,不用手动敲任何命令。等于「改配置 = 重新上线」。
一份能直接抄的配置文件
把下面内容整段替换掉你仓库里的 uptime.config.ts 即可(字段名都是官方约定的,照着改值就行):
1 | // uptime.config.ts —— 你只需要改这一个文件 |
每个监控项支持的常用字段:method(GET/POST/TCP_PING 等)、target(网址或 IP:端口)、expectedCodes(期望状态码)、responseKeyword(必须包含的关键词)、responseForbiddenKeyword(不能包含的关键词)、timeout、headers、body、checkProxy(做城市级地理检查用)。不了解的字段就别写,留默认。
方法二:换成你自己的域名(可选)
默认状态页是 xxx.pages.dev 这种二级域名,想用自己域名也简单:进 Cloudflare 控制台 Workers 与 Pages → 点 uptimeflare 状态页项目(注意不是 uptimeflare_worker)→ Custom domains → Setup a custom domain,按提示添加一条 CNAME 解析记录即可。如果你的域名 DNS 不在 Cloudflare,第 2 步选「My DNS provider」手动去域名商后台加 CNAME。
在线演示(官方):https://uptimeflare.pages.dev/
五、适合谁 / 不适合谁
✅ 适合
- 个人站长、独立开发者、小团队,想零成本拥有专业状态页
- 希望监控探针分布在不同地理位置,而非单一机房
- 已经在用 Cloudflare(域名解析 / 加速)的用户,无缝衔接
- 想要一个好看、可自定义、能绑自己域名的公开状态页
⚠️ 不适合
- 需要亚分钟级(如 10 秒)超高频检查——免费套餐最低 1 分钟间隔
- 强合规要求数据必须留在自己服务器(数据存在 Cloudflare)
- 需要 SSL 证书到期检查——该功能仍在 TODO
- 想要开箱即用的图形化配置后台(目前以改配置文件为主)
六、一个必须注意的安全点
2026-03-04 作者披露并修复了一个漏洞 CVE-2026-29779:在 2025-09-21 至 2026-03-04 之间的版本中,uptime.config.ts 里的监控配置与凭据可能被暴露给客户端。如果你在这个时间段部署过,请务必升级到最新版,并建议顺手轮换相关凭据。
结论:UptimeFlare 是目前最省心的「零成本专业状态页」方案:开源(Apache-2.0)、3800+ Star、10 分钟上线,把监控探针铺满全球 310+ 城市还不用养服务器。唯一的前提是——你得有个 Cloudflare 账号,并且能接受数据托管在 Cloudflare 上。
跑在 Cloudflare Workers 上的免费无服务器站点监控与状态页:50 个监控项 1 分钟间隔、310+ 城市地理检查、90 天历史、100+ 通知渠道。
★ 3807
Star
⑂ 603
Fork
Apache-2.0
协议





