type
status
date
slug
summary
tags
category
icon
password
项目介绍
类似于UpTimeRobot,这个项目允许你使用Cloudflare和Github搭建一个属于你自己的状态监控页面。下面是作者给出的效果展示图:

搭建教程
材料准备
- 一个活人(看到的都有吧)
- 一台可以进行操作的设备(推荐Windows、MacOS和Linux Desktop)
- 一个Github账户(没用的去https://github.com注册)
- 一个Cloudflare账户(没有的去https://www.cloudflare.com注册)
- 一个域名(可选,建议托管在Cloudflare)
前期准备
首先我们先复制一份这个项目仓库,点击项目页面右上角的
Use this template
然后点击Create a new repository
(不建议直接Fork
,建议作为私有仓库使用)。然后在创建仓库页面设置一个仓库名,比如就叫UpTimeFlare
,将Public
改为Private
,然后点击Create repository
,于是就完成了最简单的第一步。这一步比较简单,就不给出操作截图了。随后我们需要一个Cloudflare账户,注册的过程就跳过了。登录好了之后访问Cloudflare API Token申请页面创建一个令牌,点击使用模板中的
编辑Cloudflare Workers
,点击。
接着如下图,就修改这两个参数,然后点击
继续以显示摘要
,然后点击创建令牌
。
然后点击
Copy
复制API令牌,下面的步骤里要用。
接着我们回到我们刚刚复制的那个仓库,依次点击
Settings - Secrets and variables - Actions
,点击New repository secrets
创建一个新的密钥,Name
设置为CLOUDFLARE_API_TOKEN
,Secret
就设置成你刚刚复制的API令牌。
修改配置
然后我们就要开始设置状态监控了。回到仓库的
Code
界面,全程我们只需要修改一个配置文件,就是uptime.config.ts
,我们点击这个文件,点击右上角的笔Edit this file
,起初的配置文件是完整版本的,有些功能我们不需要,可以删除,比如下面这个(位于配置文件的第61到74行):typescript
如果没有需要我们可以直接删掉,如果需要可以参照原仓库中的
Wiki
进行配置,为了节省时间,我把一个精简版本的配置文件放在下面,可以删掉原来的所有内容,复制一下我的,然后自行调试:typescript
在上面的代码里,下面的内容可以反复堆叠,达到多个监控的效果,但是
id
一定要不唯一,以防止冲突,其他的按要求自行调整,每个监控的设置还有更多进阶配置,可以参照作者的Wiki
来设置,这里不过多赘述了。typescript
接着我们保存文件,不出意外进入
Actions
页面,就会发现有一个Action
在运行了,但是不出意外,肯定会报错,不要慌张,我们如果发现报错发生在Build Page
并且报错内容和下面一眼,请往后看:shell
我们发现是项目
pages
目录下的index.tsx
文件报错了,我们先不急着打开这个文件,继续看报错,报错说tooltip
不存在,其实在最开始设置监控的配置文件里有两个可选的配置分别是tooltip
和statusPageLink
,作者的本意是可以不填写的,但是定义的时候没有实现,导致了错误,作者目前已经承认这个是一个Bug(参照原项目的Issues),但是目前还没有被修复,但是我给出了两种解决办法,读者可以自行斟酌,选择合适的方法。方法一:修改uptime.config.ts
(推荐)
我们还是打开刚刚的配置文件,不需要修改太多内容,只需要修改监控相关的配置就好了,根据下面的代码,添加两个参数:
typescript
修改好之后保存,Action会重新运行,就不会产生刚刚的错误了。
这个办法新增了
tooltip
和statusPageLink
,解决的无法找到这两个参数了错误,但是每一个监控都要添加这两个参数,否则可能还会产生相同的报错。方法二:修改/pages/index.tsx
我们进入项目的
pages
目录,打开index.tsx
,修改下面这两行代码(位于第106和107行):typescript
修改成下面这两行代码:
typescript
然后再保存,就不会产生刚刚的错误了,但是所有的监控页面悬浮提示都变成了None,点击监控就会跳转到404页面,不是很推荐这个方法。这个方法的原理就是不调用用户设置的参数,直接采用默认值,规避了用户没有定义的问题,但是用户也没法再自定义这两个参数了。
访问站点
打开
Cloudflare Dashboard
,点击Wokers 和 Pages
,如果你和我一样看到了下面两个项目,祝贺你你已经搭建成功了,点击上面的UpTimeFlare的项目就可以查看访问链接啦!
绑定域名
如果你有一个域名的话,你也可以考虑给你的状态页面绑定一个域名,这个操作也很简单,我们只需要添加一条
CNAME
记录就好了,但是如果你的域名托管在Cloudflare上,你只需要打开Pages里面的uptimeflare,然后点击自定义域,按照提示操作就完成了!记录示例(XXXXXXX.pages.dev修改成自己的链接):
类型 | 记录值 |
CNAME | XXXXXXX.pages.dev |
汉化教程
修改/components/Header.tsx
效果如下:

修改/components/MonitorDetail.tsx
效果图:

修改/components/OverallStatus.tsx
效果图:

修改/components/DetailChart.tsx
效果图:

📎 参考文章
作者: wuyuhanzijin
声明: 本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处
- Author:lost4
- URL:https://blog.lost4.vip/article/1a534f8b-4cc2-8098-bea6-f024d6368c13
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!