Server-AutoCheck服务器到期监控

本项目主要是参考了NEZHA V1的面板UI,并通过和Ai沟通创作而成,有能力的小伙伴可自行进行完善或魔改。
如果是本地网络首次部署的小伙伴,发现没有默认的背景图,只要开启一下代理即可,因为默认的背景图资源等都是直接链接github仓库的,可能首次加载需要开启代理进行缓存。

💻界面展示


📌显示逻辑

一、卡片剩余天数展示逻辑

判定条件 统计状态 卡片剩余天数颜色
剩余天数小于等于0天 ❌已过期 🔴红色
剩余天数小于等于周期天数50% 📢即将过期 🟡黄色
剩余天数大于周期天数50% ✅正常 🟢绿色

二、Telegram通知逻辑

判定条件 提前天数
未单独设置提前通知天数 采用默认全局控制,默认是14天
单独设置了提前通知天数 根据自定义的提前通知天数

🚀部署流程

一、项目准备

  1. 项目地址:https://github.com/kamanfaiz/CF-Server-Autocheck 🙏喜欢本项目可以点一下✨star
  2. 因为cloudflare分配的项目网址容易被墙,所以最好准备一个域名(最好不要双向解析的域名,用起来麻烦)

二、新建项目

  • 来到Cloudflare网站,登录账户后点击左侧计算机,选择Workers和Pages,选择右上方的创建,选择从 Hello World! 开始,名字随便取,自己认得就行,然后点击部署
  • 复制本项目的_worker.js代码粘贴进创建的wokers项目中,点击部署即可。

访问项目网址,看到以下页面就表示已经成功部署了

能看懂网页的小伙伴可以自行根据网页提示进行操作,如果有看不懂的,请接着往下看

三、KV创建(用于储存域名信息)

返回Cloudflare首页,点击左侧的存储和数据库,选择KV,点击右上角Create Instance,名字随便取自己认识就行,然后点击创建即可。

四、为项目绑定KV

  • 回到刚才部署的项目——点击绑定——选择KV命名空间——在弹出的页面中,按照如下填法填写:
  • 变量名称:SERVER_MONITOR ,注意大写,怕填错就复制粘贴
  • KV命名空间:下拉菜单选择刚才创建的KV名字
  • 最后,点击绑定

通过上述方式绑定完KV之后,返回项目网址,点击检测配置并进入系统,即可来到主界面。

五、添加环境变量

代码默认是没有设置密码的,变量修改如下:

变量既可以在代码中改变量,也可以选择在cloudflare的环境变量中单独添加

  1. 代码变量修改,只需要修改如下代码中的值就可以了:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 登录认证配置
const AUTH_PASSWORD = ""; // 登录密码,或留空使用其他方式配置,可选择外置变量PASS,都留空则不启用登录验证

// Telegram通知配置
const TELEGRAM_BOT_TOKEN = ""; // 在此填写Telegram Bot Token,或留空使用其他方式配置,可选择外置变量TG_TOKEN
const TELEGRAM_CHAT_ID = ""; // 在此填写Telegram Chat ID,或留空使用其他方式配置,可选择外置变量TG_ID

// LOGO配置
const LOGO_IMAGE_URL = "https://cdn.jsdelivr.net/gh/kamanfaiz/CF-Server-AutoCheck@main/images/logo.svg"; // LOGO图片链接

// 背景图配置
const DESKTOP_BACKGROUND = "https://cdn.jsdelivr.net/gh/kamanfaiz/CF-Server-AutoCheck@main/images/background/stream.webp"; // 桌面端背景图链接
const MOBILE_BACKGROUND = "https://cdn.jsdelivr.net/gh/kamanfaiz/CF-Server-AutoCheck@main/images/background/cloud.webp"; // 移动端背景图链接
const DARK_MODE_OVERLAY_OPACITY = 0.35; // 深色模式下背景图覆盖层透明度 (0-1),用于确保文字可读性
  1. cloudflare外置环境变量修改,具体变量名如下:
📢 所有的变量优先级都是:Cloudflare环境变量>代码中的变量>默认值
名称 示例 必填 备注
PASS 默认为空 ✅️ 登录密码,最好自定义一下
TG_TOKEN telegram找@BotFather获取 ❌️ 可在界面后端配置
TG_ID telegram找@userinfobot获取,或者群机器人也行 ❌️ 可在界面后端配置

六、绑定自定义域名

这个网上教程太多了,油管随便搜,解析一个域名到Cloudflare,然后绑定子域名即可。

七、添加telegram定时通知

按照上述变量名添加完telegram变量后,点击设置——点击触发事件——点击添加——选择cron触发器——选择一周中的某一天——自定义时间

这里面的时间不是北京时间,是UTC时间,与北京时间相差8小时,例如设置为00:00,那么会在北京时间08:00进行通知。

八、链接NEZHA V1

  • 到期监控系统绑定NEZHA面板
    在右上角的系统设置中添加NEZHA V1面板网址链接后,点击右上角的NEZHA图标就能跳转自己的NEZHA面板了
  • NEZHA面板绑定到期监控系统
    以官方美化自定义代码地址为例:https://nezhadash-docs.buycoffee.top/custom-code
    修改美化代码中的链接代码,格式如下,可自定义多个外链,只需要修改window.CustomLinks参数中的linkname即可:
1
2
3
4
5
window.CustomLinks = JSON.stringify([
{ link: "https://abc123.com", name: "☕️博客" },
{ link: "https://abc123.com", name: "⌛️到期监控" },
{ link: "https://abc123.com", name: "📦GitHub" }
]); // 自定义外链,注意标点符号

改完之后就可以在NEZHA面板的顶部看到链接图标了,点击即可跳转到到期监控网站。

  • 以后月抛鸡、随时失联的小鸡、以及一些需要定期签到的小鸡也就不需要再在NEZHA面板里面单独添加json参数了,不然删来删去还怪麻烦的,直接把机器监控和到期监控分开进行。
  • 由于本人不会改NEZHA面板源码,所以只能想到这种方式来和NEZHA面板进行联动,如果有小伙伴有更好的想法且有能力,可以自行完善修改。
  • 还可以把域名监控的链接添加到NEZHA的顶部导航栏:👉域名监控项目地址

九、代码更新方式

功能基本没有问题,一般不太会更新功能方面的内容,只可能修复一些用户体验类的bug,这些都不影响整体功能的使用,只有强迫症患者才需要更新。如果代码更新了,只需要重新复制粘贴代码可,因为域名数据都是储存在KV里面的,只要不动KV空间,就不会出现数据丢失。

🚨如果是喜欢在代码中填写变量的小伙伴,记得重新复制代码前保存好自己设置的变量。