TimeMark 是面向个人与家庭的智能事件提醒系统,专注于管理生日、纪念日等重要日期。通过多渠道通知确保您永远不会错过生命中的重要时刻。
内置 35+ 通知渠道,全面覆盖国内外主流通讯平台,支持完整中国农历转换,让传统节日与现代生活无缝衔接。
单容器架构,SQLite 内置存储,零外部依赖,闲置内存约 256MB,当前版本 v2.2.0。部署简单,维护成本极低。
TimeMark is a full-featured smart reminder system supporting 35+ notification channels including Email, Telegram, Discord, Slack, WeChat, DingTalk, and more. It helps individuals and families manage important dates like birthdays and anniversaries with intelligent scheduling.
Key technical highlights include full Chinese lunar calendar support with leap month handling, AES-256-GCM encrypted credential storage, single-container architecture with SQLite, and zero external dependencies. The system runs with approximately 256MB memory footprint.
家人、朋友、同事的生日
结婚/恋爱/创业纪念日
传统节日和特殊日期
驾照到期、保险续费
标准公历日期
精准农历转换,含闰月自动处理
同时显示公历 + 农历对应日期
为重要时刻,提供全方位的提醒保障
覆盖 Email/Telegram/Discord/Slack/微信/钉钉等主流平台,一键配置多渠道推送
完整农历公历双向转换,含闰月自动处理,传统节日与纪念日精准提醒
称呼智能适配,自动识别亲属关系,个性化问候语自动生成
AES-256加密凭证存储,登录锁定+告警,保障数据安全
完整记录每次提醒的触发时间、渠道、结果,便于追溯与调试
零配置启动,开箱即用,内存仅约256MB,一条命令即可完成部署
多层安全防护,保障您的数据安全
连续 5 次失败触发锁定,锁定时间线性叠加(5/10/15/20... 分钟),防止暴力破解
触发锁定时,自动通过已配置的通知渠道发送告警通知
记录所有登录尝试(成功/失败),含 IP、时间、结果
Access Token (15 分钟) + Refresh Token (7 天),自动续期
请求频率限制,防止暴力破解和滥用
输出转义 + 内容过滤,防止跨站脚本攻击
bcrypt (cost=10) 哈希存储,不可逆
通知渠道 API Key/Token 使用 AES-256 加密存储
覆盖全球主流通讯平台,一处配置,全部可达
| 对比项 | v1.x | v2.0 |
|---|---|---|
| 数据库 | PostgreSQL + Redis | SQLite (零配置) |
| 容器数量 | 3 个 | 1 个 |
| 内存占用 | ~800MB | ~256MB |
| 部署复杂度 | 需配置数据库连接 | 开箱即用 |
| 安全加固 | 基础认证 | 登录锁定 + JWT + 限流 |
| 通知账户 | 明文存储 | AES 加密存储 |
| 多账户支持 | 单渠道单账户 | 同渠道多账户 |
| 定时任务 | Redis + Bull | Croner (内置) |
低功耗 NAS 也能流畅运行
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 1 核 | 2 核 |
| 内存 | 256MB | 512MB |
| 磁盘 | 1GB | 5GB |
| Docker | 20.10+ | 24.0+ |
💡 Intel J4125、N5105 等低功耗 NAS 处理器完全够用,内存占用降低约 70%
60 秒完成部署,就这么简单
mkdir timemark && cd timemark
curl -sSL https://raw.githubusercontent.com/WXFffff666/timemark-docker/master/docker-compose.dockerhub.yml -o docker-compose.yml
docker compose up -d
mkdir timemark && cd timemark
curl -sSL https://raw.githubusercontent.com/WXFffff666/timemark-docker/master/docker-compose.dockerhub.yml -o docker-compose.yml
docker compose up -d
curl -sSL https://raw.githubusercontent.com/WXFffff666/timemark-docker/master/docker-compose.dockerhub.yml -o docker-compose.yml
docker compose up -d
adminTimeMark@2026首次登录后请立即修改密码!
所有变量均可选,不设置也能正常使用
| 变量 | 默认值 | 说明 |
|---|---|---|
| TZ | Asia/Shanghai | 时区设置 |
| DB_PATH | /app/data/timemark.db | SQLite 数据库路径 |
| JWT_SECRET | 内置默认值 | JWT 签名密钥 |
| MASTER_KEY | 内置默认值 | 主密钥(AES 加密) |
| DEFAULT_ADMIN_PASSWORD | TimeMark@2026 | 初始管理员密码 |
⚠️ 公网部署建议自定义 JWT_SECRET 和 MASTER_KEY 以增强安全性
SQLite 单文件数据库,备份非常简单
在线备份(推荐)
cp ./data/timemark.db ./data/timemark.db.bak
完整备份
tar -czf timemark-backup.tar.gz ./data
# 停止服务
docker compose down
# 恢复备份
cp ./data/timemark.db.bak ./data/timemark.db
# 重新启动
docker compose up -d
# 每天凌晨 3 点自动备份
0 3 * * * cd /opt/timemark && tar -czf /backup/timemark-$(date +\%Y\%m\%d).tar.gz ./data
初始版本发布
提醒多选、农历修复
登录锁定、UI 优化
架构重构:SQLite 单容器 · 零配置 · 安全加固 · 通知凭证加密
新增 8 个通知渠道 · 零配置即开即用
性能优化 · 安全加固 · API 增强 · sql.js 防抖 · bcrypt 异步 · 通知重试
单容器部署,零外部依赖,开箱即用
┌─────────────────────────────────────────────────┐
│ TimeMark v2.0 │
│ 单容器 · 零依赖 · 开箱即用 │
├─────────────────────────────────────────────────┤
│ ┌───────────┐ ┌────────────────────┐ │
│ │ :3000 │ │ SQLite DB │ │
│ │ Web UI │ │ sql.js (内存+持久化) │ │
│ └─────┬─────┘ └─────────┬──────────┘ │
│ └───>│ Hono API │<──┘ │
│ ┌──────┼──────────────┐ │
│ ┌───┴────┐ ┌────┴─────┐ ┌────┴─────┐ │
│ │ Croner │ │ Static │ │ Alert │ │
│ └────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────┘