Manage My Damn Life 介绍与选型指南

Manage My Damn Life(MMDL)v0.10.0 自托管 CalDAV 任务与日历 Web 前端:软件概述、Next.js+Sequelize+tsdav 架构、功能特性、快速开始、适用限制与 Vikunja/Nextcloud Tasks/Todoist/OmniFocus 量化选型对比(联网溯源,查询日期 2026-11-02)

Manage My Damn LifeManage My Damn Life自托管任务管理CalDAVNext.js2026/11/02

Manage My Damn Life 介绍与选型指南

目标:回答「Manage My Damn Life(MMDL)是什么、架构长什么样、能干什么、适合谁、和同类方案怎么选」。本文为纯联网溯源文档,全部事实来自官方仓库、官方文档与公开徽章数据,查询日期 2026-11-02;不含本地实测内容(部署与配置实测见本专栏其余篇目)。

一、环境信息(信息源与查询日期)

本文所有结论均来自以下公开渠道,查询日期统一为 2026-11-02(北京时间):

  • 项目主页:https://intri.in/manage-my-damn-life/(Intri 个人项目站)
  • 源码仓库:https://github.com/intri-in/manage-my-damn-life-nextjs(GitHub,main 分支 README 与 docs 目录)
  • 发布记录:https://github.com/intri-in/manage-my-damn-life-nextjs/releases.atom(Atom 订阅源)
  • 官方安装/配置文档:仓库内 docs/install/ 目录(Docker、Dockerless、Configuration 三类指南)
  • 社区活跃度徽章:img.shields.io 的 stars / license / contributors / commit-activity / last-commit 徽章(GitHub API 限流时的替代取证渠道)
  • 商业方案定价:https://www.todoist.com/pricing、https://www.omnigroup.com/omnifocus/buy/
  • 对比组件:https://github.com/go-vikunja/vikunja、https://github.com/nextcloud/tasks

二、软件概述

Manage My Damn Life(简称 MMDL)是一个自托管(self-hosted)的 CalDAV 任务与日历管理 Web 前端。它自身不存储任务数据,而是作为 CalDAV 服务器的图形化客户端:你把任务、日程存在自己的 CalDAV 服务器(Nextcloud、Radicale、Baikal 等)上,MMDL 提供列表、甘特图、日历等多视图的浏览与管理界面,并支持多用户、多 CalDAV 账号。官方 README 自述:「Manage my Damn Life (MMDL) is a self hosted front end for managing your CalDAV tasks and calendars」,并明确当前处于 beta 阶段,生产数据需谨慎。

关键身份信息(均取自官方仓库,查询日期 2026-11-02):

项目值
仓库intri-in/manage-my-damn-life-nextjs(GitHub 组织 intri-in,即 Intri 个人项目)
最新稳定版v0.10.0(2026-09-13 发布,releases.atom 实测返回)
许可证GPL-3.0(shields.io license 徽章)
社区规模GitHub stars 642、contributors 10、commit 活跃度 144 次/年、最后提交 2026-09(shields.io 徽章)
技术栈Next.js(React/TypeScript)单体 Web 应用 + Sequelize ORM + MySQL/PostgreSQL/SQLite + tsdav(CalDAV 客户端库)
官方镜像Docker Hub intriin/mmdl:latest
本地化通过 Weblate(hosted.weblate.org/projects/mmdl-manage-my-damn-life/)管理翻译

💡 技术拓展:「任务/日历同步协议」不止 CalDAV 一种。常见方案对比——

协议/方式标准特点典型服务端/客户端
CalDAVRFC 4791(基于 WebDAV)开放标准,VTODO/VEVENT 对象,多端同步Nextcloud、Radicale、Baikal;客户端 DAVx5、Tasks.org、Thunderbird
Webcal(订阅型 CalDAV)RFC 8144只读订阅他人日历各 CalDAV 客户端
CardDAVRFC 6351通讯录同步(与 CalDAV 配套但管联系人)同上
私有云 API无标准功能强但数据锁定Todoist API、OmniFocus Web 同步

MMDL 选择 CalDAV(经 tsdav 库实现),因此天然与任何标准 CalDAV 服务器互通,数据主权在用户自己手里。

三、核心架构

依据官方 README、docs/install/ 文档与仓库源码结构(package.json、config/config.js、src/pages/api/ 目录,均为公开可查内容):

  1. 单体 Next.js 应用:前端页面(任务视图/日历视图/甘特视图/设置)与服务端 API 路由(/api/install、/api/login、/api/users/register、/api/v2/caldav/register、/api/v2/calendars/refresh 等)同进程运行,npm run build 后由 next start(官方镜像内为 node server.js)监听 3000 端口。
  2. 双层存储:
    • 服务端数据库(Sequelize ORM):存用户账号、会话(ssid)、CalDAV 账号凭据(AES 加密)、日历/事件缓存、过滤器、标签等;DB_DIALECT 支持 mysql / postgres / sqlite 三种方言。
    • 浏览器端 IndexedDB(Dexie):缓存任务与同步状态,v0.10.0 引入 Sync Manager 统一管理对 CalDAV 服务器的读写与冲突处理。
  3. CalDAV 访问层:通过 tsdav 库与远端 CalDAV 服务器通信(PROPFIND/REPORT/PUT 等),官方 README 明确「凡 tsdav 支持的服务器均可用」,并已在 Nextcloud、Radicale、Baikal 上测试;Google Calendar 经 OAuth 接入。
  4. 认证体系:内置账号体系(注册/登录/OTP 找回密码,SMTP 发信),或通过 NextAuth.js 接入第三方 OAuth(Keycloak、Google、Authentik);官方声明未来版本(约 v1.0.0)将以第三方认证为默认。
  5. 部署形态:官方推荐 Docker Compose(应用 + MySQL 两服务),也支持裸机 Node.js 源码安装(npm install → npm run migrate → npm run build → npm run start)。

四、功能特性

摘自官方 README「Features」与 v0.10.0 Release Notes(查询日期 2026-11-02):

  • 任务管理:支持子任务(多级)、截止日期、完成状态、描述、重复规则(recurrence)等 RFC 5545 VTODO 字段(官方声明目标是覆盖全部字段)。
  • 日历事件管理:VEVENT 的创建与管理。
  • 多账号模型:一个 MMDL 实例支持多个用户账号,每个用户可挂多个 CalDAV 账号。
  • 多视图:列表视图、甘特图视图(Gantt)、日历视图三态切换。
  • 自定义过滤器:按条件创建任务过滤器,组织自己的视图。
  • Sync Manager 与冲突处理(v0.10.0 新增):日历与 Webcal 订阅的同步管理,新增 Conflict Manager 处理同步冲突。
  • OAuth 支持:CalDAV 账号可用 OAuth 认证(当前支持 Google Calendar 路线,官方另有 Keycloak/Authentik 配置指南)。
  • 桌面优先:README 自述「Responsive-ish」,移动端建议配合 JTX Boards、OpenTasks 等原生 CalDAV 客户端使用。
  • 官方规划中:RFC 5545 全字段支持、更灵活的可定制视图、任务拖拽、外部插件机制。

五、快速开始(最小可用示例,官方文档口径)

以下为官方 docs/install/ 给出的两条最小路径(原文摘录,非本地实测;逐条实测命令与回显见本专栏部署篇):

路径 A:Docker Compose(官方推荐)

# 1. 获取官方 docker-compose.yml.sample 并复制为 docker-compose.yml
# 2. 下载官方 sample 配置文件
curl https://raw.githubusercontent.com/intri-in/manage-my-damn-life-nextjs/main/sample.env.local > .env.local
# 3. 修改 .env.local 中数据库与 AES_PASSWORD 后启动
docker compose up
# 4. 浏览器打开 http://localhost:3000/install 完成安装向导

路径 B:源码安装(Node.js)

git clone https://github.com/intri-in/manage-my-damn-life-nextjs.git
cd manage-my-damn-life-nextjs
npm install
cp sample.env.local .env.local   # 修改数据库连接等参数
npm run migrate                  # Sequelize 建表迁移
npm run build
npm run start                    # 或 nohup npm run start &
# 访问 http://localhost:3000/install,注册账号后到 /accounts/caldav 添加第一个 CalDAV 账号

官方镜像为 Docker Hub intriin/mmdl:latest,compose 会同时拉起一个 MySQL 服务作为后端数据库。

六、适用场景与限制

适合:

  • 已自建 CalDAV 服务器(Nextcloud/Radicale/Baikal),想要一个浏览器端、多端一致的桌面级任务/日历管理界面的个人或小团队;
  • 重视数据主权:任务数据全部留在自己的 CalDAV 服务器上,MMDL 只是前端;
  • 需要多人共用一套 MMDL、各自绑定自己的 CalDAV 账号(家庭/小组织共享日历 + 任务);
  • 想要甘特图视角管理 GTD 类任务列表的用户。

限制(官方自述与文档可证):

  • beta 状态:README 明确提醒生产数据谨慎;v1.0.0 之前认证体系将切换为第三方 OAuth 优先,存在配置迁移成本;
  • 桌面优先:无官方移动客户端,移动端需另配 JTX Boards/OpenTasks 等 CalDAV 应用;
  • 依赖链较长:需要 Node.js 运行时 + MySQL/PostgreSQL 数据库 + 一台 CalDAV 服务器三件套(SQLite 方言可用于轻量试用);
  • 无集群方案:单体 Node 应用,官方未提供高可用/水平扩展文档;
  • 社区规模小:contributors 约 10 人、年提交 144 次(2026-11-02 徽章),问题响应依赖个人维护者 Intri。

七、同类选型对比

对比维度量化数据均来自公开仓库与 shields.io 徽章,查询日期 2026-11-02:

方案定位开源/许可最新稳定版社区热度部署形态数据归属/协议移动端
MMDL 0.10.0自托管 CalDAV 任务+日历 Web 前端GPL-3.0v0.10.0(2026-09-13)642★ / 10 人 / 144 提交/年Docker Compose 或 Node 源码 + MySQL自有 CalDAV 服务器(RFC 4791)无官方端,配 DAVx5/Tasks.org
Vikunja自托管任务管理(列表/看板/甘特,自带后端存储)AGPL-3.0v2.7.15.9k★单二进制/Compose,自带数据库自有服务器;支持 CalDAV 同步(beta)官方 Web/App
Nextcloud TasksNextcloud 生态内的任务应用AGPL-3.0v0.18.1710★必须整套 NextcloudNextcloud CalDAVDAVx5 生态
Todoist商业 SaaS 任务管理闭源SaaS 持续发布—(商业)无需部署厂商云(私有 API)全平台官方 App
OmniFocus商业 Apple 生态 GTD 旗舰闭源v4(Web 版 2026-09-28)—(商业)无需部署Omni 云同步(私有)仅 Apple 系

价格参考(2026-11-02 官网):Todoist Pro 约 $60/年($7/月),免费版限 5 个项目;OmniFocus 4 订阅 $99.99/年($9.99/月),或 Pro 永久授权 $149.99,Web 附加订阅 $49.99/年。自托管方案软件免费,成本是服务器与运维时间。

版本节奏与兼容性:MMDL releases 从 v0.7.1 到 v0.10.0 约每季度 23 版(2026-0609 密集发版),无 LTS 概念;官方兼容矩阵为 Nextcloud/Radicale/Baikal + tsdav 支持面,MySQL/PostgreSQL/SQLite 三种方言。Vikunja 发版更密、社区大一个数量级;Nextcloud Tasks 绑定 Nextcloud 大版本节奏。

选型建议(如果…则…):

  • 如果你已有 CalDAV 服务器、主要用桌面浏览器管理任务与日历、看重数据完全在自己手里 → MMDL 是当前少数专注「CalDAV 图形前端」的开源选择;
  • 如果你要独立的任务系统(不依赖 CalDAV 服务器)、看板/甘特/团队共享更重 → 选 Vikunja;
  • 如果你已在跑 Nextcloud → 直接启用 Tasks 应用,链路最短;
  • 如果不想运维、接受订阅与云端存储 → Todoist(跨平台)或 OmniFocus(Apple 深度 GTD);
  • 如果移动端体验优先且坚持自托管 → MMDL 不适合做移动端,应配 DAVx5/Tasks.org 客户端 + 任意 CalDAV 服务器,MMDL 仅作为桌面 Web 补充。

八、参考链接

Manage My Damn Life 介绍与选型指南 - Quzuo