741 字
4 分钟
超高校级的监控服务:UptimeFlare!基于CF Worker!自托管!声明式!新手友好!
谁不想拥有一个监控自己服务的服务呢?
2026-01-03
0 次
0 人

从KV迁移#

由于原项目于26/1/3将数据存储从KV迁移到了D1,并且配备了完备的i18n,如果你仍在运营旧版的UptimeFlare,建议升级,下面是迁移教程

首先,将你之前配置的Cloudflare API令牌添加一个新的权限 编辑D1

然后备份根目录的 uptime.config.ts ,直接 把原仓库删了(但是不要删KV,Worker,Page),Fork我的仓库

afoim
/
UptimeFlare
Waiting for api.github.com...
00K
0K
0K
Waiting...

接下来编辑新的 uptime.config.ts

参阅 UptimeFlare/uptime.config.ts at main · afoim/UptimeFlare 主要就是将自定义callback迁移到官方的WebHook方法

编辑后推送,会自动触发Github Action的自动部署,它会自动将KV内的数据迁移到D1

这迁移到D1何意味

前言#

本来这个教程应该是永远都不会出的,因为在此之前,我曾经给大家介绍了一个无需自托管的监控服务:UptimeRobot

但是,就在最近我再次查看控制台,发现之前创建的监控全部都没了,咱也不知道是被官方删了还是号被黑客大手子肘击了,总之,我现在不得不要重建监控服务了

原理#

首先,UptimeFlare是一个基于Cloudflare Worker+D1的监控服务

它的原理非常简单,一共由三个部分组成

  • 前端:放在Cloudflare Page,用于给用户展示zhandianzhuangt
  • 后端:放在Cloudflare Worker,通过 Worker 自带的 Cron 每分钟 检查站点状态,并将状态持久化进 D1

正式开始#

首先我们需要 Fork 项目,建议Fork我的项目(由于原项目不知道为什么不给在某些地方注入环境变量,所以建议Fork我的)

afoim
/
UptimeFlare
Waiting for api.github.com...
00K
0K
0K
Waiting...

首先,我们先尝试将其部署到Cloudflare

创建一个Cloudflare API Token 编辑WorkersD1

接下来将该Token绑定到你的Github仓库

最后,来到 Action 页面,手动创建一个 Deploy to Cloudflare 的工作流

等待工作流运行结束,你应该可以在Cloudflare仪表板看见一个新的Page,新的Worker和新的D1

点开 Page,注意不要点错了

绑定你的域名,尝试访问

如果你能看到一个初始的监控页面,则正常

接下来,我们开始自定义该监控

编辑根目录的 uptime.config.ts

如果服务故障如何做通知?

UptimeFlare非常自由,你可以在 callbacks 中编写故障时要做的任何事情,这里以发送 POST 请求让 Resend 发送邮件给你举例

首先前往 https://resend.com/

添加一个域名(作为你的发信域名)

创建一个发信API Key

添加环境变量: RESEND_API_KEY 将其绑定到 Action

编辑 uptime.config.tswebhook.payload 部分

示例代码:

        payload: {
        "from": "系统状态更新 <uptimeflare@update.2x.nz>",
        "to": ["acofork@foxmail.com"],
        "subject": "UptimeFlare 状态更新",
        "text": "$MSG"
      },

接下来,当服务故障/重新上线就会通知你啦~

最终效果:

ok.2x.nz
Loading...
Waiting for api.microlink.io...

这篇文章是否对你有帮助?

发现错误或想要改进这篇文章?

在 GitHub 上编辑此页
超高校级的监控服务:UptimeFlare!基于CF Worker!自托管!声明式!新手友好!
作者
二叉树树
发布于
2026-01-03
许可协议
CC BY-NC-SA 4.0