Donetick 0.1.83 介绍与选型指南

介绍开源任务与家务分工管理系统 Donetick 的定位、核心架构、功能特性与量化选型对比,基于 Ubuntu 22.04 实测 v0.1.83,给出与 Vikunja、Planka 的选型建议。

Donetick任务管理自托管2026/10/23

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 的差异化集中在「循环 + 分工」:

  1. 循环调度模型丰富:支持 daily/weekly/monthly/yearly、指定月份/星期、按完成日期(而非到期日)滚动推算下一次到期,以及自适应调度(根据历史完成间隔自动建议日期,官方 README "Task Advanced Scheduling")。
  2. 指派轮换策略:round-robin 轮流、随机、按「完成最少者优先」自动轮换(官方 README "Assignee Rotation"),这是家务分工场景的核心诉求。
  3. Things 机制:可登记「非任务型数据」(数值/布尔/文本),并支持「当 Thing 变为某值时自动完成任务」,可对接外部系统做状态回写。
  4. 自然语言建任务:输入 "Change water filter every 6 months" 这类短语自动抽取周期(官方 README "Natural Language Task Creation")。

💡 技术拓展:任务类自托管软件常见的任务模型有三种——

模型代表特点适用场景
清单/待办模型Vikunja任务=条目,强调查看视图(列表/甘特/日历)个人 GTD、项目管理
看板模型Planka、Kanboard任务=卡片,按列拖动流转流程化协作、敏捷看板
循环分工模型Donetick任务=周期性事务,强调到期推算与轮换指派家务、周期性维护、家庭分工

Donetick 属第三种,与看板/清单类并非互相替代,选型时应先看任务是否本质上是「周期重复 + 多人轮换」。

三、核心架构

Donetick 是单体二进制的 Web 服务,架构清晰(依据 v0.1.83 启动日志与官方仓库源码结构实测归纳):

  1. HTTP 层:Gin 框架,默认监听 2021 端口,server.serve_frontend: true 时同端口服务前端静态资源,serve_swagger: true 时提供 /swagger/index.html API 文档页(实测返回 200)。
  2. 依赖注入:Uber fx 依赖注入框架装配(启动日志可见 [Fx] PROVIDE/SUPPLY 序列),模块化组装 config、database、auth、chore、circle、user 等组件。
  3. 认证层:JWT 双令牌(access_token + refresh_token,实测登录响应含 token_type: Bearer)、TOTP MFA、OAuth2/OIDC(可配 admin/manager 组映射)、API Token(dt_ 前缀长令牌,供 eAPI 使用)。
  4. 数据层:GORM,默认 SQLite(单文件,DT_SQLITE_PATH 指定路径),可切换 PostgreSQL。
  5. 调度器:三个后台作业——due_job(到期扫描,默认 30m)、overdue_job(逾期处理,默认 3h)、pre_due_job(到期前提醒,默认 3h),间隔均可在配置调整。
  6. 实时同步:SSE 推送(realtime 配置组,支持心跳/压缩/连接上限),多设备任务变更即时生效(官方 README "Realtime Sync")。
  7. 通知与集成: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 标签碰一碰打卡、WebhookNFC 需移动端配合
通知Telegram/Discord/Pushover/邮件/移动端(Android APK、iOS TestFlight alpha)多通道可配
安全TOTP MFA、OAuth2/OIDC、SSO-only 模式(禁用密码登录)、单 Circle 模式OIDC 组可映射 admin/manager 角色
集成Home Assistant 官方集成、日历订阅(ICS feed)、REST API + eAPIHA 集成为每个用户生成独立待办清单
界面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

六、适用场景与限制

适合:

  1. 家庭/合租/小团队的周期性事务分工:家务轮值、宠物照顾、设备定期维护、账单提醒。
  2. 需要提醒通道齐全(Telegram/Discord/Pushover/移动推送)且数据自托管的隐私敏感用户。
  3. 想用 Home Assistant 面板/自动化联动家庭待办的智能家居用户。
  4. 墙挂平板/大屏看板场景(Dashboard 视图 + 任意用户快捷打卡)。

限制与注意(依据官方 README 与实测):

  1. 单实例架构,无内置高可用/水平扩展;SQLite 模式适合家庭规模,更大并发应切 PostgreSQL。
  2. 移动端 iOS 仍为 TestFlight alpha,Android 提供 APK,成熟度低于 Web 端。
  3. AGPLv3 许可:对外提供服务需遵守相应开源义务,商用集成前需评估。
  4. 项目相对年轻(2024 年开源,2.7k star),版本号仍在 0.x,升级可能带行为变化(如任务创建校验收紧)。

七、同类选型对比(量化)

三个候选均为 AGPLv3 自托管任务管理软件。版本与星数经 shields.io 实查(2026-10-23);资源数据为本机实测。

维度DonetickVikunjaPlanka
最新稳定版v0.1.83v2.7.1(go-vikunja/vikunja)v2.2.1(plankanban/planka)
GitHub Stars2.7k5.8k13k
语言/前端Go + 内嵌前端Go + VueNode.js + React
数据库SQLite(默认)/ PostgreSQLSQLite / PostgreSQL / MySQLPostgreSQL(v2 必选)
任务模型循环分工(周期+轮换指派)清单待办(列表/甘特/日历多视图)看板(卡片拖拽)
循环任务强项:多粒度周期、按完成日滚动、自适应支持弱(看板模型天然弱周期)
指派轮换内置三种策略无内置轮换无内置轮换
实时同步SSE(默认开)有有
APIREST /api/v1(JWT)+ eapi/v1(dt_ 长令牌)+ WebhookREST API + API TokenREST API
移动端Android APK / iOS alpha(官方 README)PWA + 社区客户端PWA/社区客户端
官方镜像拉取量2M+—(多镜像形态)—
空载内存(本机实测)26.7 MB未测未测
许可AGPLv3AGPLv3AGPLv3

选型建议:

  1. 核心诉求是「家务/周期事务多人轮换」→ 选 Donetick,指派轮换与到期推算是三者中唯一开箱即用的。
  2. 核心诉求是「个人/小团队的通用任务管理,要多视图」→ 选 Vikunja,功能广度与社区规模更均衡。
  3. 核心诉求是「流程看板协作」→ 选 Planka,13k star 的看板类自托管首选之一,但注意 v2 起强制 PostgreSQL。
  4. 资源极度受限的小主机(如 NAS/树莓派):Donetick 空载 26.7 MB + SQLite 单文件,是三者中部署 footprint 最小的路线之一。

八、参考链接

  1. 官方仓库:https://github.com/donetick/donetick
  2. 官方前端仓库:https://github.com/donetick/frontend
  3. Releases 页(版本与安装包):https://github.com/donetick/donetick/releases
  4. Docker Hub:https://hub.docker.com/r/donetick/donetick
  5. Discord 社区:https://discord.gg/6hSH6F33q7
  6. 本专栏部署篇:《Ubuntu 22.04 安装 Donetick 0.1.83 指南》
  7. 本专栏配置篇:《Donetick 0.1.83 配置参数详解》
  8. 本专栏接口篇:《Donetick 0.1.83 API 使用详解》