利用CloudFlare Worker搭建XUGOU监控服务
发布于: 2025-3-31
最后更新: 2025-5-22
type
status
date
slug
summary
tags
category
icon
在前段时间,我借助 cursor 开发了一款监控工具,功能是参照 uptime-kuma 和 beszel 这两款监控实现的。

为什么?

最开始的时候,我在 northflank 上部署了自己的 uptime-kuma 以及 beszel,在我之前的文章中也有介绍过。但是在某一天,我访问 uptime-kuma 的时候,发现自己的数据全没了,我就知道是 northflank 平台又在作怪,这个平台虽然说确实有可以长期使用的免费额度,但是它隔一段时间就会将你的容器杀死,然后再重新启动,这就导致没办法在这个平台上长期稳定的运行一个服务。

替代品

当我意识到 northflank 平台不能再继续使用的时候,脑海里第一时间反应过来的就是使用 cloudflare worker 来做替代,因此我也立刻去网上搜寻了使用 cloudflare worker 来做监控的开源项目。
在网上搜索出来的主要有以下两个:
cf-workers-status-page:https://status-page.eidam.dev/
这两个跟 uptime-kuma 都很像,其中 UptimeFlare 我很喜欢,页面很好看,很漂亮。

关键问题:客户端

前面的这两个监控服务都只实现了站点监控,只能够通过 cloudflare worker 主动去请求指定的 API,以此来判断服务状态。假设这时候我有一个客户端,有可能是一台 vps,有可能是我的 NAS,甚至是我的路由器,以上两个项目能实现监控吗?很明显是不行的,这也是我想到自己来实现一个监控的主要原因。

撸起袖子开干

想好了核心功能点,那就撸起袖子开干!由于我自己不怎么懂前端,所以项目的代码都是由 cursor 来实现,代码质量可以说是一塌糊涂,但是经过两天的调试,总算是把核心功能都实现了:
  1. 主动获取API状态
  1. 被动获取客户端状态
  1. 发送通知(目前仅实现了Telegram通知)
这里是项目的在线体验地址:https://xugou.mdzz.uk/
除了前面这三大功能以外,在我的计划中,还剩下一个比较重要的部分就是移动APP,仅仅只是部署一个网站,那么在手机上查看监控的体验就会比较差,即使是做了比较好的响应式设计,也得 打开浏览器→输入网址→访问网页,这一整个流程太长,很多时候一想到还要打开浏览器输入网址,就放弃了想要访问的想法。因为我自己是一个懒人,我期望获得的又是一个极为方便使用的监控服务,所以我认为开发APP很有必要,当然,我知道可以使用PWA搭配响应式设计,将网站以一个应用的形式安装在手机桌面,包括我现在桌面上也安装有网页,因此我可以明确的放弃这种想法。
安装一个网页标签和安装一个APP区别非常大,安装一个网页标签的成本非常低,同时内心深处会把这个当成是一个安装到桌面的收藏夹,而实际上它也确实就是一个收藏夹;收藏夹大家都知道的吧,进了收藏夹就等于学会,永远都在收藏
APP 维护不过来,已放弃。

后续计划

在我的心目中,这个监控应该满足四大功能:主动获取状态、被动获取状态、发送告警通知、移动APP,因此后面我打算先撸一个APP出来,不复用前端的代码,同时如果有可能的话,我还想把这个APP上架到 google 商店,很久以前注册了谷歌开发者,但是都没有发布过任何一款APP,我希望这能是我的第一款APP。
在APP之后,就是继续优化项目,比如说增加通知渠道,目前仅仅支持 telegram,这很显然是不够的,只是在之前的开发过程中,我已经体验到了AI开发项目的弊端,如果自己对项目不了解,很容易让项目变得不可维护,好在后来我调整了一下结构,重构了一部分,这才让开发不至于停滞。AI始终只能是个辅助,还是要靠自己来把控项目。

部署教程

图文教程

视频教程

聊了这么多,还没讲怎么自部署这个项目,不多说了,看视频吧:
Video preview
 
cloudflare tunnle 开源替代品:pangolin人人都可以搭建自己的临时邮箱-ZMAIL
Loading...