Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cnfug/SubMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

1 Commit

Repository files navigation

🖥️ SubMonitor

项目概述

SubMonitor 是一个基于 Cloudflare Workers 构建的订阅到期监控系统,专为管理和监控各种服务订阅的到期时间而设计。该系统提供了直观的界面,帮助用户实时跟踪订阅状态,及时收到到期提醒,避免因服务中断造成的损失。

项目致谢

本项目基于 CF-Server-Autocheck 开发,在此对原项目的开发者表示诚挚的感谢。原项目为我们的开发提供了宝贵的基础和参考。

技术贡献

在开发过程中,我们在原项目的基础上新增了以下功能:

  • 增强的两步验证 (2FA) 实现
  • 完善的 Bark 通知集成
  • 管理模式功能优化
  • 通用订阅模型及价格管理
  • 自定义标签分类系统

这些功能的实现想法是通过 AI 辅助生成的,我们在此基础上进行了进一步的开发和优化,以满足特定的使用需求。

核心优势

  • 基于 Cloudflare Workers:无需服务器,部署简单,全球访问速度快
  • KV 存储:使用 Cloudflare KV 进行数据持久化,安全可靠
  • 多渠道通知:支持 Telegram 和 Bark 推送通知
  • 两步验证:支持 Google 2FA 增强账户安全性
  • 响应式设计:适配桌面和移动设备
  • 管理模式控制:可切换查看/编辑模式,保护数据安全

核心功能

1. 订阅管理

  • 添加订阅:支持添加各类服务订阅,包括服务器、域名、软件许可证等
  • 编辑订阅:修改现有订阅的详细信息
  • 删除订阅:移除不需要的订阅
  • 分类管理:支持为订阅创建和管理分类,方便组织
  • 批量操作:支持批量导入和清理订阅数据
  • 自定义标签:为订阅添加自定义标签,支持多种颜色选择

2. 到期监控

  • 状态跟踪:实时监控订阅状态(正常运行、即将过期、已过期)
  • 智能阈值计算:默认30天提醒,不足30天的订阅按50%周期计算提醒阈值
  • 统计分析:提供订阅状态统计,包括总数、正常、即将过期和已过期数量

3. 通知系统

  • Telegram 通知:通过 Telegram Bot 发送到期提醒
  • Bark 通知:支持 iOS 设备的 Bark 推送通知
  • 批量通知:一次发送多条订阅的到期状态
  • 测试通知:提供通知配置测试功能

4. 安全功能

  • 登录认证:支持密码登录保护
  • 两步验证:集成 Google 2FA 增强安全性
  • 管理模式:可切换查看/编辑模式,保护数据安全

5. 配置管理

  • 全局设置:自定义站点标题、欢迎信息等
  • 通知设置:配置 Telegram 和 Bark 通知参数
  • 安全设置:管理登录密码和 2FA 密钥
  • 外观设置:自定义 Logo 和背景图片

6. 通用订阅模型

  • 价格管理:支持添加订阅价格信息
  • 多货币支持:支持 CNY、USD、EUR、GBP、RUB 等多种货币
  • 灵活计费周期:支持按天、按月、按年计费

7. 标签系统

  • 自定义标签:为订阅添加个性化标签
  • 标签颜色:支持红色、橙色、绿色、蓝色、紫色等多种标签颜色
  • 标签排序:支持按标签排序订阅
  • 标签显示:在订阅卡片上以彩色徽章形式显示标签

安装说明

前提条件

  • Cloudflare 账户
  • Cloudflare Workers 订阅
  • Cloudflare KV 命名空间

部署步骤

  1. 创建 Cloudflare Worker

    • 登录 Cloudflare 控制台
    • 进入 Workers & Pages
    • 点击 "创建应用" -> "创建 Worker"
    • 为 Worker 命名并点击 "部署"
  2. 绑定 KV 命名空间

    • 进入 Worker 设置页面
    • 选择 "变量" -> "KV 命名空间绑定"
    • 点击 "添加绑定"
    • 变量名称填写 SERVER_MONITOR
    • 选择或创建一个 KV 命名空间
    • 点击 "保存"
  3. 部署代码

    • 进入 Worker 的 "代码" 标签页
    • _worker.js 的内容复制粘贴到代码编辑器
    • 点击 "部署"
  4. 初始化设置

    • 访问 Worker URL
    • 系统会自动跳转到引导页面
    • 按照引导页面的提示完成初始化

使用示例

添加新订阅

  1. 登录系统
  2. 点击 "添加新订阅" 按钮
  3. 填写订阅信息:
    • 订阅名称
    • 服务商
    • 注册日期
    • 到期日期
    • 续期周期
    • 续期价格
    • 续期链接
    • 备注
  4. 选择分类(可选)
  5. 点击 "保存"

查看订阅状态

  • 绿色:正常运行(距离到期时间大于阈值)
  • 黄色:即将过期(距离到期时间小于等于阈值)
  • 红色:已过期(超过到期日期)

配置通知

  1. 进入 "系统设置" -> "通知设置"
  2. 配置 Telegram 或 Bark 参数
  3. 点击 "测试通知" 验证配置
  4. 点击 "保存设置"

配置选项

环境变量配置

变量名 描述 示例
PASS 登录密码 your_password
TG_TOKEN Telegram Bot Token 1234567890:ABC...
TG_ID Telegram Chat ID 123456789
BARK_URL Bark 推送 URL https://api.day.app/your_key/
GA_SECRET Google 2FA 密钥 JBSWY3DPEHPK3PXP

系统设置

  • 站点标题:自定义系统标题
  • 欢迎信息:登录后显示的欢迎消息
  • 全局通知天数:默认的到期提醒天数
  • 管理功能开关:控制是否显示管理功能
  • 自定义 Logo:上传自定义 Logo 图片
  • 自定义背景:设置桌面和移动端背景图片

详细功能说明

1. 两步验证 (2FA) 实现

功能概述

系统集成了 Google Authenticator 基于时间的一次性密码 (TOTP) 实现,提供额外的安全层保护。

配置方式

  1. 环境变量配置:设置 GA_SECRET 环境变量为 Base32 格式的密钥
  2. 系统设置配置:在安全设置页面中填写 2FA 密钥
  3. 密钥生成:系统提供内置的密钥生成功能,可自动生成随机 2FA 密钥

验证流程

  • 登录时,系统首先验证密码
  • 然后要求输入 Google Authenticator 生成的 6 位验证码
  • 验证码有效期为 30 秒,系统支持前后 30 秒的时间容错

安全特性

  • 密钥以安全方式存储,不在前端暴露
  • 支持重置 2FA 配置
  • 与登录密码独立,提供双重保护

2. Bark 通知集成

功能概述

Bark 是一款 iOS 设备上的推送通知工具,系统集成了 Bark 推送功能,可将订阅到期提醒发送到 iOS 设备。

配置步骤

  1. 安装 Bark 应用:在 iOS 设备上安装 Bark 应用
  2. 获取推送 URL:打开 Bark 应用,复制生成的推送 URL
  3. 配置方式:
    • 环境变量:设置 BARK_URL 环境变量
    • 系统设置:在通知设置页面中启用 Bark 并填写 URL
  4. 测试通知:使用系统提供的测试功能验证配置

通知内容

  • 到期提醒:包含订阅名称、到期日期、剩余天数等信息
  • 批量通知:汇总多条订阅的到期状态
  • 测试通知:验证配置是否正确

3. 管理模式功能

功能概述

管理模式控制用户对系统的操作权限,可在查看模式和编辑模式之间切换。

配置方式

  • 在系统设置的基础设置页面中,通过 "管理功能开关" 控制
  • 开启:显示所有管理功能(添加、编辑、删除等)
  • 关闭:仅显示查看功能,隐藏所有编辑操作

访问要求

  • 需要登录系统
  • 管理员权限:具有系统设置的修改权限

功能影响

  • 开启状态:显示所有按钮和操作选项
  • 关闭状态:
    • 隐藏添加、编辑、删除按钮
    • 禁用订阅卡片的编辑功能
    • 隐藏分类管理功能
    • 仅显示查看相关的操作

4. 通用订阅模型

功能概述

系统采用通用订阅模型,支持管理各种类型的订阅服务,并集成了价格管理功能。

价格管理

  • 价格设置:为每个订阅添加价格信息
  • 多货币支持:
    • CNY (\)
    • USD ($)
    • EUR (€)
    • GBP (£)
    • RUB (₽)
  • 计费周期:
    • 按天
    • 按月
    • 按年

订阅信息

  • 基本信息:名称、服务商、注册日期、到期日期
  • 续期信息:续期周期、续期链接
  • 价格信息:金额、货币、计费周期
  • 其他信息:备注、分类、标签

5. 自定义标签分类

功能概述

系统支持为订阅添加自定义标签,便于分类和管理。

标签设置

  • 标签名称:为订阅添加个性化标签
  • 标签颜色:
    • 红色
    • 橙色
    • 绿色
    • 蓝色
    • 紫色

标签管理

  • 标签显示:在订阅卡片上以彩色徽章形式显示
  • 标签排序:支持按标签名称排序订阅
  • 标签过滤:可通过标签快速筛选订阅

应用场景

  • 按用途分类:生产环境、测试环境、个人使用
  • 按服务类型:云服务器、域名、软件许可证
  • 按重要性:核心服务、次要服务

附加功能

1. 响应式设计

  • 适配桌面端和移动端
  • 移动端优化布局,确保在小屏幕设备上的良好体验
  • 自适应网格布局,根据屏幕尺寸调整显示

2. 主题支持

  • 支持浅色和深色模式
  • 自动适应系统主题设置
  • 可手动切换主题

3. 数据管理

  • 数据导入:支持从剪贴板导入订阅信息
  • 数据清理:清理无效或重复的订阅数据
  • 分类管理:创建、编辑、删除分类

4. 续期管理

  • 一键续期:快速处理订阅续期
  • 续期计算:支持从当前日期或到期日期开始计算
  • 自定义续期:灵活设置续期周期

5. 统计分析

  • 状态统计:总订阅数、正常、即将过期、已过期
  • 数据可视化:通过颜色编码直观显示订阅状态
  • 快速筛选:按状态快速筛选订阅

6. 第三方集成

  • 哪吒监控:集成哪吒监控面板的快捷访问
  • 多通知渠道:支持 Telegram 和 Bark 通知

7. 安全特性

  • 密码保护:可设置登录密码
  • 两步验证:集成 Google 2FA
  • 会话管理:自动登录状态管理

8. 用户体验

  • 实时时间显示:页面顶部显示当前时间
  • 通知提示:操作结果的即时反馈
  • 确认对话框:重要操作的二次确认
  • 批量操作:支持批量选择和操作订阅

故障排除

常见问题

  1. KV 命名空间未绑定

    • 症状:系统提示 "KV 命名空间未绑定"
    • 解决:按照安装说明正确绑定 KV 命名空间
  2. 通知不生效

    • 症状:到期后未收到通知
    • 解决:
      • 检查通知配置是否正确
      • 点击 "测试通知" 验证配置
      • 确保网络连接正常
  3. 登录失败

    • 症状:无法登录系统
    • 解决:
      • 检查密码是否正确
      • 如果启用了 2FA,确保验证码正确
      • 检查环境变量配置
  4. 管理模式状态不保持

    • 症状:刷新页面后管理模式重置
    • 解决:系统已修复此问题,确保使用最新版本

日志查看

  • 登录 Cloudflare 控制台
  • 进入 Worker 详情页
  • 选择 "日志" 标签查看运行日志

贡献指南

开发环境搭建

  1. 克隆本项目
  2. 安装 Cloudflare Workers CLI:npm install -g wrangler
  3. 配置 wrangler.toml 文件
  4. 运行本地开发服务器:wrangler dev

代码规范

  • 使用 ES6+ 语法
  • 遵循 Airbnb 代码风格
  • 确保代码可读性和可维护性
  • 添加适当的注释

提交规范

  • 使用语义化提交信息
  • 提交前运行代码检查
  • 确保所有功能正常运行

问题反馈

  • 在 GitHub Issues 中提交问题
  • 提供详细的问题描述和复现步骤
  • 包含相关的日志信息

许可证

本项目采用 MIT 许可证,详见 LICENSE 文件。

联系方式


感谢使用 SubMonitor! 希望这个工具能帮助您更好地管理和监控您的订阅服务。

About

SubMonitor 是一个基于 Cloudflare Workers 构建的订阅到期监控系统,专为管理和监控各种服务订阅的到期时间而设计。该系统提供了直观的界面,帮助用户实时跟踪订阅状态,及时收到到期提醒,避免因服务中断造成的损失。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /