v2.2.0 — 稳定版

TimeMark

智能事件提醒系统

一款轻量级、零外部依赖的定时任务与事件提醒服务。 通过自然语言配置事件,支持 35+ 通知渠道,Docker 一键部署,内存占用仅约 256MB。

Terminal
$ |
零外部依赖 · 35+ 通知渠道 · ~256MB 内存
0
Docker Pulls
0
GitHub Stars
0
通知渠道
~256MB
内存占用

关于 TimeMark

TimeMark 是面向个人与家庭的智能事件提醒系统,专注于管理生日、纪念日等重要日期。通过多渠道通知确保您永远不会错过生命中的重要时刻。

内置 35+ 通知渠道,全面覆盖国内外主流通讯平台,支持完整中国农历转换,让传统节日与现代生活无缝衔接。

单容器架构,SQLite 内置存储,零外部依赖,闲置内存约 256MB,当前版本 v2.2.0。部署简单,维护成本极低。

DSOS

English Summary for Reviewers

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.

事件类型

🎂

生日

家人、朋友、同事的生日

💍

纪念日

结婚/恋爱/创业纪念日

🎊

节日

传统节日和特殊日期

📌

自定义

驾照到期、保险续费

日历支持

📅 公历

标准公历日期

🌙 农历

精准农历转换,含闰月自动处理

📅🌙 双历

同时显示公历 + 农历对应日期

👨‍👩‍👧 智能关系映射

我爸 父亲
我妈 母亲
老公 丈夫

核心功能

为重要时刻,提供全方位的提醒保障

35+ 通知渠道

覆盖 Email/Telegram/Discord/Slack/微信/钉钉等主流平台,一键配置多渠道推送

农历日历支持

完整农历公历双向转换,含闰月自动处理,传统节日与纪念日精准提醒

智能关系映射

称呼智能适配,自动识别亲属关系,个性化问候语自动生成

安全防护

AES-256加密凭证存储,登录锁定+告警,保障数据安全

触发日志

完整记录每次提醒的触发时间、渠道、结果,便于追溯与调试

单容器部署

零配置启动,开箱即用,内存仅约256MB,一条命令即可完成部署

安全防护

多层安全防护,保障您的数据安全

登录失败锁定

连续 5 次失败触发锁定,锁定时间线性叠加(5/10/15/20... 分钟),防止暴力破解

安全告警

触发锁定时,自动通过已配置的通知渠道发送告警通知

登录日志

记录所有登录尝试(成功/失败),含 IP、时间、结果

JWT 会话管理

Access Token (15 分钟) + Refresh Token (7 天),自动续期

API 限流

请求频率限制,防止暴力破解和滥用

XSS 防护

输出转义 + 内容过滤,防止跨站脚本攻击

密码加密

bcrypt (cost=10) 哈希存储,不可逆

凭证加密

通知渠道 API Key/Token 使用 AES-256 加密存储

35+ 通知渠道

覆盖全球主流通讯平台,一处配置,全部可达

💬 即时通讯 (11个)
📧 邮件 (Resend)
正式邮件通知,支持多账号
🔵 飞书
飞书群聊机器人
🟢 企业微信
企业微信群聊机器人
🔷 钉钉
钉钉群聊机器人
✈️ Telegram
Telegram Bot 推送
💜 Slack
Slack 频道通知
🟣 Discord
Discord Webhook
📱 WxPusher
微信公众号推送
💬 Qmsg
QQ 消息推送
🦞 ClawBot
微信个人消息推送
📡 Server酱
微信推送服务
🔗 Webhook 集成 (10个)
Google Chat
Google 工作区通知
IRC
IRC 频道消息
Synology Chat
群晖 Chat 通知
Twitch
Twitch 频道通知
Mattermost
Mattermost 频道
Nextcloud Talk
Nextcloud 聊天
通用 Webhook
自定义 HTTP 回调
PushPlus
多渠道推送服务
PushMe
多平台统一推送
Gotify
自托管推送服务
📱 移动推送 (4个)
Bark
iOS 推送通知
喵推送 (Meow)
鸿蒙系统推送
企业微信应用
企微应用消息推送
🌐 协议集成 (5个)
Matrix
去中心化通讯协议
LINE
LINE 消息推送
Microsoft Teams
Teams 频道通知
Nostr
去中心化社交协议
WhatsApp
WhatsApp 消息
🔌 插件渠道 (6个)
微信 OpenClaw
微信个人消息
微信 Wechaty
微信个人消息
QQ Bot
QQ 机器人
Signal
Signal 加密消息
iMessage
Apple iMessage
Zalo
越南 Zalo 消息

v2.0 架构升级

对比项 v1.x v2.0
数据库PostgreSQL + RedisSQLite (零配置)
容器数量3 个1 个
内存占用~800MB~256MB
部署复杂度需配置数据库连接开箱即用
安全加固基础认证登录锁定 + JWT + 限流
通知账户明文存储AES 加密存储
多账户支持单渠道单账户同渠道多账户
定时任务Redis + BullCroner (内置)

系统要求

低功耗 NAS 也能流畅运行

项目 最低配置 推荐配置
CPU 1 核 2 核
内存 256MB 512MB
磁盘 1GB 5GB
Docker 20.10+ 24.0+

💡 Intel J4125、N5105 等低功耗 NAS 处理器完全够用,内存占用降低约 70%

快速开始

60 秒完成部署,就这么简单

1 创建目录
mkdir timemark && cd timemark
2 下载配置
curl -sSL https://raw.githubusercontent.com/WXFffff666/timemark-docker/master/docker-compose.dockerhub.yml -o docker-compose.yml
3 启动服务
docker compose up -d
1 创建目录
mkdir timemark && cd timemark
2 下载配置
curl -sSL https://raw.githubusercontent.com/WXFffff666/timemark-docker/master/docker-compose.dockerhub.yml -o docker-compose.yml
3 启动服务
docker compose up -d
2 下载配置
curl -sSL https://raw.githubusercontent.com/WXFffff666/timemark-docker/master/docker-compose.dockerhub.yml -o docker-compose.yml
3 启动服务
docker compose up -d

默认登录信息

用户名:admin
密码:TimeMark@2026

首次登录后请立即修改密码!

环境变量配置

所有变量均可选,不设置也能正常使用

查看环境变量列表
变量 默认值 说明
TZAsia/Shanghai时区设置
DB_PATH/app/data/timemark.dbSQLite 数据库路径
JWT_SECRET内置默认值JWT 签名密钥
MASTER_KEY内置默认值主密钥(AES 加密)
DEFAULT_ADMIN_PASSWORDTimeMark@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

自动备份(crontab)

# 每天凌晨 3 点自动备份
0 3 * * * cd /opt/timemark && tar -czf /backup/timemark-$(date +\%Y\%m\%d).tar.gz ./data

版本历程

2025-01
v1.0.0

初始版本发布

2025-04
v1.1.0

提醒多选、农历修复

2026-04
v1.1.1

登录锁定、UI 优化

2026-04
v2.0.0

架构重构:SQLite 单容器 · 零配置 · 安全加固 · 通知凭证加密

2026-04
v2.1.0

新增 8 个通知渠道 · 零配置即开即用

2026-05
v2.2.0

性能优化 · 安全加固 · API 增强 · sql.js 防抖 · bcrypt 异步 · 通知重试

系统架构

单容器部署,零外部依赖,开箱即用

React 18 Hono SQLite (sql.js) Croner JWT AES-256
查看架构图
┌─────────────────────────────────────────────────┐
│                 TimeMark v2.0                    │
│            单容器 · 零依赖 · 开箱即用             │
├─────────────────────────────────────────────────┤
│   ┌───────────┐       ┌────────────────────┐    │
│   │  :3000    │       │    SQLite DB        │    │
│   │  Web UI   │       │  sql.js (内存+持久化) │    │
│   └─────┬─────┘       └─────────┬──────────┘    │
│         └───>│   Hono API   │<──┘                │
│      ┌──────┼──────────────┐                     │
│  ┌───┴────┐ ┌────┴─────┐ ┌────┴─────┐           │
│  │ Croner │ │ Static   │ │  Alert   │           │
│  └────────┘ └──────────┘ └──────────┘           │
└─────────────────────────────────────────────────┘
        

常见问题

如何部署?
只需3步:创建目录、下载配置、启动容器。支持Docker Hub和GHCR两种镜像源,详见快速开始指南。
支持哪些NAS平台?
支持群晖(Synology)、威联通(QNAP)、铁威马(TerraMaster)、飞牛OS等所有支持Docker的NAS平台。
如何自定义JWT_SECRET和MASTER_KEY?
在docker-compose.yml中添加环境变量。公网部署强烈建议自定义,以确保安全性。
忘记管理员密码怎么办?
停止服务,删除data目录中的数据库文件,重新启动会自动创建新数据库。
如何备份数据?
SQLite单文件数据库,直接复制timemark.db文件即可。支持在线备份无需停止容器。
v1.x如何升级到v2.0?
v2.0是全新架构,需要全新部署。建议先导出v1.x数据,部署v2.0后重新录入。
开始使用 GitHub