用于自动化管理各类日程提醒:域名到期、SSL 证书到期、以及订阅服务等。通过统一配置与自动化流程,帮助你及时跟进重要时间节点。
-
域名管理:
- 域名到期提醒(按天)
- SSL 证书到期提醒(支持含协议/端口的目标,如
https://host:port) - 自动生成 ICS 日历,包含“到期当天事件 + 提前 7 天提醒事件”
-
订阅服务:
- 订阅到期提醒、费用展示、分类聚合
- 前端表格高亮将到期状态与剩余/超期天数
-
前端仪表盘:
- 页面:
index.html - 模块拆分:域名到期、证书到期、订阅服务独立展示
- 失败兜底:数据加载失败时分别对各表格展示错误行
- 页面:
- 标准 ICS:自动生成标准 ICS 文件
- 提前提醒:默认提前 7 天事件
- 中国时区:Asia/Shanghai
- 自动化:支持 GitHub Actions 定时执行(见
.github/workflows/schedule_automation.yml)
- Python:3.8 或更高版本(建议)
- 依赖:见
requirements.txt
- 安装依赖
pip install -r requirements.txt- 配置 YAML
位于 domain_expiry/domain_expiry.yaml:
domains_expiry:
example.com: '2026-06-14'
example.org: '2027-05-18'
domains_ssl_expiry:
https://example.com: null
https://example.org: '2025-10-22'位于 subscription_services/subscription_services.yaml:
subscription_services:
jd_2025:
name: 京东PLUS
expiry_date: '2026-03-05'
cost: 99.0
status: 订阅中
category: 购物- 生成 ICS 文件
# 域名与证书到期 ICS(输出:domain_expiry/domain_expiry_calendar.ics)
python domain_expiry/generate_domain_calendar.py
# 订阅服务 ICS(输出:subscription_services/subscription_services_calendar.ics)
python subscription_services/generate_subscription_calendar.py- 打开前端页面
直接在浏览器打开根目录下的 index.html。
页面会读取上述 YAML 并渲染表格,同时提供 ICS 链接输入框,便于复制到日历应用。
- 日期格式:统一使用
YYYY-MM-DD。对于 SSL 证书目标,允许为null(未知或未采集),前端显示“未知”,日历生成脚本将跳过。 - SSL 目标格式:
domains_ssl_expiry的键可包含协议与端口(如https://asset.example.com:8801)。 - 容错:
generate_domain_calendar.py会自动跳过空值/非法日期,避免生成 ICS 时报错。 - 路径:默认输出到各自模块目录下的
.ics文件;如需变更,可调整脚本输出路径或前端index.html中的 ICS URL 拼装逻辑。
项目包含 GitHub Actions 工作流 schedule_automation.yml,可用于:
- 定时任务:每天检查与更新
- 自动产物:生成并提交最新 ICS 文件
详见 requirements.txt,主要包括:
- pyyaml:解析 YAML 配置
- icalendar:生成 ICS 文件
- pytz:时区处理
- python-whois:域名信息(可选)
- pyOpenSSL:证书信息(可选)
- dnspython:DNS 查询(可选)
- certifi:证书信任(可选)
- SSL 配置为 null 怎么办?
- 前端显示“未知”,ICS 生成时会被跳过,不会报错。
- 如何只导入某一类提醒?
- 分别使用两个 ICS 文件,按需导入。