基于 Cloudflare Workers + D1 数据库的 Web 提醒事项应用,支持邮件发送定时提醒。
- ✅ 密码认证(默认密码:admin)
- ✅ 修改密码功能
- ✅ SMTP 配置管理(支持测试发送)
- ✅ 创建、查看、编辑、删除提醒
- ✅ 自动发送到期提醒邮件(使用 Cron Triggers)
- ✅ 支持重复提醒(每天/每周/每月/每年/自定义)
- ✅ 现代化、响应式 UI 设计
- 后端: TypeScript + Cloudflare Workers
- 数据库: Cloudflare D1
- 任务调度: Cloudflare Cron Triggers
- 邮件服务: Resend API (或其他第三方邮件服务)
- 前端: HTML5 + Tailwind CSS + JavaScript
ding/
├── src/
│ ├── index.ts # Worker 入口
│ ├── database.ts # D1 数据库操作
│ ├── email.ts # 邮件发送
│ └── auth.ts # 认证模块
├── schema.sql # 数据库 schema
├── wrangler.toml # Cloudflare 配置
├── package.json
├── tsconfig.json
└── README.md
cd ding
npm installnpx wrangler loginnpx wrangler d1 create ding-db创建成功后,会输出数据库 ID,将其更新到 wrangler.toml 中的 database_id 字段。
npx wrangler d1 execute ding-db --file=./schema.sql在 wrangler.toml 中添加:
[vars]
RESEND_API_KEY = "your_resend_api_key"或者通过 Cloudflare Dashboard 设置环境变量。
npm run deploynpm run dev- 默认密码:
admin - Cron Trigger: 每分钟检查一次到期提醒(Cloudflare Workers 最小支持频率)
POST /api/auth/login- 登录POST /api/auth/logout- 退出POST /api/auth/change-password- 修改密码
GET /api/reminders- 获取所有提醒POST /api/reminders- 创建提醒PUT /api/reminders/:id- 更新提醒DELETE /api/reminders/:id- 删除提醒
GET /api/smtp/config- 获取 SMTP 配置POST /api/smtp/config- 保存 SMTP 配置POST /api/smtp/test- 测试发送邮件
登录后,点击右上角「修改密码」按钮即可修改密码。
- 由于 Cloudflare Workers 限制,不支持直接使用 SMTP 协议发送邮件,建议使用 Resend、SendGrid 等第三方邮件服务的 HTTP API
- Cron Triggers 每分钟执行一次(这是 Cloudflare Workers 支持的最小频率),实际发送可能有轻微延迟
- 生产环境请务必修改默认密码
MIT