当前位置: 首页 > news >正文

我用 Cloudflare 免费撸了一个高颜值的网站监控系统 (支持 SSL 证书/域名过期提醒 + 钉钉告警)

前言:作为一个“松鼠党”站长,手里总有一堆域名和吃灰的小鸡(服务器)。经常是网站挂了几天才发现,或者 SSL 证书过期了被浏览器拦截,甚至域名忘记续费被抢注…… 😭
市面上的 Uptime Robot 等服务,免费版限制多,频率低,而且 SSL/域名监控通常是收费功能。

于是,我利用 Cloudflare Workers + D1 + Pages 全家桶,手搓了一个 零成本、高颜值、功能全 的监控系统 —— Uptime Monitor

✨ 预览效果

先看成品,颜值即正义!😎

📱 移动端 & 桌面端 (深色模式)

演示地址:https://uptime.nianshu2022.cn

🔔 钉钉告警 (Markdown 格式)

告警信息包含:状态码、耗时、失败原因,一目了然。

💻 管理后台 (Dashboard)

安全、简洁、好用。

🛠️ 为什么选择这个方案?

  1. 💰 完全免费:利用 Cloudflare 强大的免费额度(Workers 每天 10万次请求,D1 数据库免费读写),对于个人监控几十个网站绰绰有余。
  2. 🌍 全球节点:Cloudflare 的边缘网络天然适合做监控,网络连通性好。
  3. 🔒 全能监控
    • HTTP/HTTPS 通断检测 (支持自定义 Status Code 判断)
    • SSL 证书有效期检测 (每日自动检查,支持泛域名证书!)
    • 域名注册过期检测 (防止域名由于健忘被回收)
  4. 🤖 灵活告警:目前接入了 钉钉群机器人,支持 Markdown 格式,不仅告诉你挂了,还告诉你为什么挂了(超时/500/证书过期)。
  5. 🎨 现代化 UI:Vue 3 + TailwindCSS 打造,支持 Dark Mode,手机端适配完美,这不比 Uptime Robot 的默认页好看?

⚙️ 技术栈一览

  • 后端 Runtime: Cloudflare Workers (基于 Hono 框架,轻量极速)
  • 数据库: Cloudflare D1 (基于 SQLite 的边缘数据库,存储监控配置和日志)
  • 前端托管: Cloudflare Pages (极速静态资源分发)
  • 前端框架: Vue 3 (CDN 引入,无构建烦恼) + TailwindCSS

🚀 怎么部署?(保姆级教程)

项目已开源,欢迎 Star ⭐:
👉 GitHub: https://github.com/nianshu2022/Uptime-Monitor

第一步:准备工作

你需要一个 Cloudflare 账号,并在本地安装好 Node.jsWrangler CLI

第二步:克隆代码 & 初始化数据库

git clone https://github.com/nianshu2022/Uptime-Monitor.git
cd Uptime-Monitor# 登录 Cloudflare
npx wrangler login# 创建数据库
npx wrangler d1 create uptime-db
# (记下控制台返回的 database_id)

第三步:配置后端

修改 worker/wrangler.toml,填入你的 database_id

然后初始化表结构:

cd worker
npx wrangler d1 execute uptime-db --remote --file=schema.sql
# 执行迁移脚本
npx wrangler d1 execute uptime-db --remote --file=migration_add_expiry.sql
npx wrangler d1 execute uptime-db --remote --file=migration_add_ua.sql

第四步:部署后端

你需要先去钉钉群设置一个机器人,获取 Access TokenSecret

# 部署到 Cloudflare
npx wrangler deploy

(建议在 Cloudflare Dashboard 后台配置钉钉 Token 环境变量,更安全)

第五步:部署前端

修改 frontend/index.html 里的 API_BASE 为你的 Worker 地址(强烈建议绑定自定义域名,防墙)。

cd frontend
npx wrangler pages deploy . --project-name uptime-monitor

搞定!🎉

📝 写在最后

这个项目最初只是为了解决我自己的痛点,没想到做着做着功能越来越全。
如果你也有服务器、域名需要监控,或者想学习 Cloudflare Workers 开发,欢迎来玩!

如果有任何问题或建议,欢迎提 Issue 或 PR。
别忘了给个 Star ⭐️ 鼓励一下作者哦!

GitHub: https://github.com/nianshu2022/Uptime-Monitor
Blog: https://nianshu2022.cn

http://www.jsqmd.com/news/48816/

相关文章:

  • codex 的安装
  • 3.多线程与智能指针
  • TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
  • C#/.NET/.NET Core技术前沿周刊 | 第 62 期(2025年11.17-11.23)
  • KEYDIY MLB26 434 Mhz 3-Button Universal Smart Remote PCB Board - Non-OEM Solution
  • KEYDIY MLB08 434MHz OEM Smart Key PCB: Audi-Style 3-Button Universal for EU/US Cars
  • 完整教程:Python pip instsll报错 Can‘t connect to HTTPS URL because the SSL module is not available.
  • Semgrep体验
  • 102302133陈佳昕作业3
  • CSAPP 处理器体系结构
  • AI协助 一周打造「七巧板益智小游戏」:从零高效开发教学工具
  • 【MCP系列】用 MCP 扩展 AI 编辑器:从零开发一个自己的MCP服务
  • VB6版MP3文件信息编辑器 - 开源研究系列文章 - 个人小作品
  • 手把手教你用 React + Zustand 打造 Windows 风格可拖拽,缩放,多窗口 Modal 组件
  • ImGui Learn Data Day 1
  • OI 笑传 #34
  • 【MCP系列】介绍一个我自己开发的MCP工具:MCP Shipit
  • 第34天(简单题中等题 数据结构)
  • 3. Gin RESTful API 开发
  • 说课逐字稿2
  • 251123头疼的一天
  • Codeforces Round 1066 (Div. 1 + Div. 2) 做题记录
  • 2025.11.23总结
  • 字符串常见操作
  • 广州比较靠谱的留学中介
  • SpringBoot 2.x - 3.x 踩坑记录
  • 广州比较好的留学机构
  • 配置文件路径
  • AtCoder Beginner Contest 433 题解
  • 使用 Lua 语言识别英文数字验证码