Donetick 0.1.83 介绍与选型指南
介绍开源任务与家务分工管理系统 Donetick 的定位、核心架构、功能特性与量化选型对比,基于 Ubuntu 22.04 实测 v0.1.83,给出与 Vikunja、Planka 的选型建议。
Donetick 0.1.83 介绍与选型指南
目标:介绍开源任务与家务分工管理系统 Donetick 的定位、架构、功能与量化选型对比,帮助读者判断它是否适合自托管场景。本文数据已在 Ubuntu 22.04 x86_64 + Donetick v0.1.83 实测环境验证,社区数据溯源自官方仓库与 shields.io(查询日期 2026-10-23)。
一、环境信息
- 操作系统:Ubuntu 22.04 x86_64(实测环境)
- Donetick 版本:v0.1.83(GitHub Releases 最新稳定版,shields.io 实查于 2026-10-23)
- 技术栈:Go 后端 + 独立前端仓库(donetick/frontend,Vue 系构建产物内嵌进二进制)+ SQLite(默认)/ PostgreSQL
- 开源许可:AGPLv3(官方仓库 LICENSE.md)
- 官方仓库:https://github.com/donetick/donetick
- 默认端口:2021(HTTP,同时服务 API 与前端静态资源)
- 官方镜像:donetick/donetick(Docker Hub 拉取量 2M+,shields.io 实查于 2026-10-23)
- 实测资源占用:空载常驻内存 26.7 MB(
systemctl status donetick实测),二进制体积 122301268 字节(约 117 MB,内嵌前端资源),全新实例 SQLite 库文件 520 KB
二、软件概述
Donetick 是一个开源、自托管的任务与家务(chore)分工管理应用,slogan 为 "Simplify Tasks & Chores, Together!"(官方 README,2026-10-23 查询)。它面向「一家人或一个小团队共同维护一批循环任务」的场景:把倒垃圾、浇花、换滤芯、交水电费这类周期性事务登记成可轮换指派、可追踪历史、可提醒催办的任务,并通过积分、完成限制、实时同步等机制维持参与感。
与通用待办工具不同,Donetick 的差异化集中在「循环 + 分工」:
- 循环调度模型丰富:支持 daily/weekly/monthly/yearly、指定月份/星期、按完成日期(而非到期日)滚动推算下一次到期,以及自适应调度(根据历史完成间隔自动建议日期,官方 README "Task Advanced Scheduling")。
- 指派轮换策略:round-robin 轮流、随机、按「完成最少者优先」自动轮换(官方 README "Assignee Rotation"),这是家务分工场景的核心诉求。
- Things 机制:可登记「非任务型数据」(数值/布尔/文本),并支持「当 Thing 变为某值时自动完成任务」,可对接外部系统做状态回写。
- 自然语言建任务:输入 "Change water filter every 6 months" 这类短语自动抽取周期(官方 README "Natural Language Task Creation")。
💡 技术拓展:任务类自托管软件常见的任务模型有三种——
模型 代表 特点 适用场景 清单/待办模型 Vikunja 任务=条目,强调查看视图(列表/甘特/日历) 个人 GTD、项目管理 看板模型 Planka、Kanboard 任务=卡片,按列拖动流转 流程化协作、敏捷看板 循环分工模型 Donetick 任务=周期性事务,强调到期推算与轮换指派 家务、周期性维护、家庭分工 Donetick 属第三种,与看板/清单类并非互相替代,选型时应先看任务是否本质上是「周期重复 + 多人轮换」。
三、核心架构
Donetick 是单体二进制的 Web 服务,架构清晰(依据 v0.1.83 启动日志与官方仓库源码结构实测归纳):
- HTTP 层:Gin 框架,默认监听 2021 端口,
server.serve_frontend: true时同端口服务前端静态资源,serve_swagger: true时提供/swagger/index.htmlAPI 文档页(实测返回 200)。 - 依赖注入:Uber fx 依赖注入框架装配(启动日志可见
[Fx] PROVIDE/SUPPLY序列),模块化组装 config、database、auth、chore、circle、user 等组件。 - 认证层:JWT 双令牌(access_token + refresh_token,实测登录响应含
token_type: Bearer)、TOTP MFA、OAuth2/OIDC(可配 admin/manager 组映射)、API Token(dt_前缀长令牌,供 eAPI 使用)。 - 数据层:GORM,默认 SQLite(单文件,
DT_SQLITE_PATH指定路径),可切换 PostgreSQL。 - 调度器:三个后台作业——due_job(到期扫描,默认 30m)、overdue_job(逾期处理,默认 3h)、pre_due_job(到期前提醒,默认 3h),间隔均可在配置调整。
- 实时同步:SSE 推送(
realtime配置组,支持心跳/压缩/连接上限),多设备任务变更即时生效(官方 README "Realtime Sync")。 - 通知与集成:Telegram、Discord、Pushover、Webhook、邮件(SMTP/SMTP2Go),以及 Home Assistant 官方集成。
💡 技术拓展:Web 实时推送常见三种实现——
方式 原理 特点 WebSocket 全双工长连接 双向通信,实现复杂度最高 SSE(Server-Sent Events) 单向 HTTP 流 仅服务端→客户端,实现简单、自动重连 轮询 客户端定时拉取 最简单,延迟与负载最差 Donetick v0.1.83 默认采用 SSE(
realtime.sse_enabled: true,实测启动日志中websocket_enabled亦为默认值true,但 Web 前端实际消费的是 SSE 事件流),任务清单类「服务端推、客户端收」的流量形态下 SSE 足够且更省资源。
四、功能特性
依据官方 README(2026-10-23 查询)与 v0.1.83 实测整理:
| 功能域 | 能力 | 说明 |
|---|---|---|
| 任务管理 | 循环任务、子任务(递归嵌套、随主任务重置)、标签、五级优先级(P1–P4/无) | 子任务可独立追踪完成时间 |
| 调度 | 日/周/月/年、指定月/星期、按完成日滚动、自适应调度 | 到期日 vs 完成日两种循环基准可配 |
| 分工 | 圆圈(Circle)共享、指派轮换(轮流/随机/最少完成优先)、催办 nudge | 每个注册用户自动归属一个 Circle |
| 激励 | 积分系统、完成限制(仅到期前 X 小时可勾选)、奖励兑换(rewards API) | 管理后台可看完成统计图 |
| 记录 | 完成历史、耗时追踪(timer/session)、照片附件 | 附件支持 S3/R2/MinIO 等对象存储 |
| 自动化 | Things 状态联动自动完成、NFC 标签碰一碰打卡、Webhook | NFC 需移动端配合 |
| 通知 | Telegram/Discord/Pushover/邮件/移动端(Android APK、iOS TestFlight alpha) | 多通道可配 |
| 安全 | TOTP MFA、OAuth2/OIDC、SSO-only 模式(禁用密码登录)、单 Circle 模式 | OIDC 组可映射 admin/manager 角色 |
| 集成 | Home Assistant 官方集成、日历订阅(ICS feed)、REST API + eAPI | HA 集成为每个用户生成独立待办清单 |
| 界面 | Web 端 + 挂墙 Dashboard 视图、实时同步、离线只读 | 大屏/平板模式面向家庭墙挂场景 |
五、快速开始(最小可用示例)
最快的验证路径是官方镜像 + Compose,最小配置如下(二进制 + systemd 的完整安装路线见《Ubuntu 22.04 安装 Donetick 0.1.83 指南》):
mkdir -p /opt/donetick-compose/{data,config}
# /opt/donetick-compose/docker-compose.yml
name: donetick-0.1.83-stack
services:
donetick:
image: donetick/donetick:v0.1.83
restart: unless-stopped
ports:
- 2021:2021
volumes:
- ./data:/donetick-data
- ./config:/config
environment:
- DT_ENV=selfhosted
- DT_SQLITE_PATH=/donetick-data/donetick.db
- TZ=Asia/Shanghai
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:2021/api/v1/health || exit 1
start_period: 1m
timeout: 5s
interval: 1m
retries: 3
docker compose up -d
实测回显(Compose v5.5.1,镜像首次拉取约 30 秒):
Network donetick-0183-stack_default Created
Container donetick-0183-stack-donetick-1 Created
Container donetick-0183-stack-donetick-1 Started
健康检查验证(docker compose ps 等待状态转 healthy 后):
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
donetick-0183-stack-donetick-1 donetick/donetick:v0.1.83 "/donetick" donetick 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:2021->2021/tcp, [::]:2021->2021/tcp
浏览器访问 http://<服务器IP>:2021 即可注册首个账号并开始使用。API 验证:
curl -s -o /dev/null -w '%{http_code}' http://localhost:2021/api/v1/health
实测输出:
200
六、适用场景与限制
适合:
- 家庭/合租/小团队的周期性事务分工:家务轮值、宠物照顾、设备定期维护、账单提醒。
- 需要提醒通道齐全(Telegram/Discord/Pushover/移动推送)且数据自托管的隐私敏感用户。
- 想用 Home Assistant 面板/自动化联动家庭待办的智能家居用户。
- 墙挂平板/大屏看板场景(Dashboard 视图 + 任意用户快捷打卡)。
限制与注意(依据官方 README 与实测):
- 单实例架构,无内置高可用/水平扩展;SQLite 模式适合家庭规模,更大并发应切 PostgreSQL。
- 移动端 iOS 仍为 TestFlight alpha,Android 提供 APK,成熟度低于 Web 端。
- AGPLv3 许可:对外提供服务需遵守相应开源义务,商用集成前需评估。
- 项目相对年轻(2024 年开源,2.7k star),版本号仍在 0.x,升级可能带行为变化(如任务创建校验收紧)。
七、同类选型对比(量化)
三个候选均为 AGPLv3 自托管任务管理软件。版本与星数经 shields.io 实查(2026-10-23);资源数据为本机实测。
| 维度 | Donetick | Vikunja | Planka |
|---|---|---|---|
| 最新稳定版 | v0.1.83 | v2.7.1(go-vikunja/vikunja) | v2.2.1(plankanban/planka) |
| GitHub Stars | 2.7k | 5.8k | 13k |
| 语言/前端 | Go + 内嵌前端 | Go + Vue | Node.js + React |
| 数据库 | SQLite(默认)/ PostgreSQL | SQLite / PostgreSQL / MySQL | PostgreSQL(v2 必选) |
| 任务模型 | 循环分工(周期+轮换指派) | 清单待办(列表/甘特/日历多视图) | 看板(卡片拖拽) |
| 循环任务 | 强项:多粒度周期、按完成日滚动、自适应 | 支持 | 弱(看板模型天然弱周期) |
| 指派轮换 | 内置三种策略 | 无内置轮换 | 无内置轮换 |
| 实时同步 | SSE(默认开) | 有 | 有 |
| API | REST /api/v1(JWT)+ eapi/v1(dt_ 长令牌)+ Webhook | REST API + API Token | REST API |
| 移动端 | Android APK / iOS alpha(官方 README) | PWA + 社区客户端 | PWA/社区客户端 |
| 官方镜像拉取量 | 2M+ | —(多镜像形态) | — |
| 空载内存(本机实测) | 26.7 MB | 未测 | 未测 |
| 许可 | AGPLv3 | AGPLv3 | AGPLv3 |
选型建议:
- 核心诉求是「家务/周期事务多人轮换」→ 选 Donetick,指派轮换与到期推算是三者中唯一开箱即用的。
- 核心诉求是「个人/小团队的通用任务管理,要多视图」→ 选 Vikunja,功能广度与社区规模更均衡。
- 核心诉求是「流程看板协作」→ 选 Planka,13k star 的看板类自托管首选之一,但注意 v2 起强制 PostgreSQL。
- 资源极度受限的小主机(如 NAS/树莓派):Donetick 空载 26.7 MB + SQLite 单文件,是三者中部署 footprint 最小的路线之一。
八、参考链接
- 官方仓库:https://github.com/donetick/donetick
- 官方前端仓库:https://github.com/donetick/frontend
- Releases 页(版本与安装包):https://github.com/donetick/donetick/releases
- Docker Hub:https://hub.docker.com/r/donetick/donetick
- Discord 社区:https://discord.gg/6hSH6F33q7
- 本专栏部署篇:《Ubuntu 22.04 安装 Donetick 0.1.83 指南》
- 本专栏配置篇:《Donetick 0.1.83 配置参数详解》
- 本专栏接口篇:《Donetick 0.1.83 API 使用详解》