【Docker项目实战】使用Docker部署Donetick任务与家务管理应用

举报
江湖有缘 发表于 2025/09/16 19:09:56 2025/09/16
【摘要】 【Docker项目实战】使用Docker部署Donetick任务与家务管理应用

【Docker项目实战】使用Docker部署Donetick任务与家务管理应用

一、Donetick介绍

1.1 Donetick简介

Donetick 是一款开源、用户友好的任务与家务管理应用,旨在帮助个人和团队高效组织日常事务。通过丰富的自定义功能和协作特性,Donetick 让任务管理更智能、直观且富有乐趣,适用于家庭、小型团队或个人习惯养成。

1.2 Donetick主要特点

任务与协作管理:支持个人使用或与家人朋友共同创建、分配和跟踪任务,实现高效协作。

自然语言输入:用日常语言描述任务(如“每周一倒垃圾”),系统自动识别时间与重复规则。

灵活调度机制:支持每日、每周、每月等固定周期,以及基于完成历史的智能自适应排期。

自动任务轮换:可根据完成数量最少者、轮转顺序或随机方式自动分配任务,保障公平性。

时间追踪功能:记录任务耗时,支持单次会话或多阶段累计统计,便于效率分析。

子任务与组织管理:可拆分任务为可嵌套的子任务,并通过优先级(P1–P4)和自定义标签分类管理。

照片附件支持:允许为任务添加图片,支持本地存储或集成 AWS S3、Cloudflare R2 等云存储服务。

NFC 快速完成:写入 NFC 标签后,扫描即可一键标记任务完成,实现物理交互自动化。

多平台通知提醒:支持通过移动应用(iOS/Android)、Telegram、Discord、Pushover 等接收提醒。

REST API 接口:提供完整的 REST API,便于自定义集成、自动化脚本和第三方工具对接。

Home Assistant 集成:可通过官方插件在 Home Assistant 中查看和管理任务,融入智能家居生态。

实时同步与离线访问:设备间实时同步任务状态,同时支持有限的离线浏览与操作。

数据洞察与分析:提供任务完成情况的可视化统计,支持按标签、状态等多维度分析。

仪表盘视图:管理员可在大屏设备上查看整合任务、日历与动态的仪表板,适合家庭共享展示。

安全登录与认证:支持本地账户、OAuth2/OIDC(如 Authentik)登录,并启用 TOTP 多因素验证。

Things 数据追踪:可记录非任务型数据(如体重、开关状态),并触发任务自动完成。

完成时间限制:可设定任务仅在截止前特定时段内可完成,防止过早“打卡”。

积分激励系统:通过完成任务获得积分,增加趣味性与持续参与动力。

1.3 平台支持

平台支持: iOS(TestFlight 测试版)| Android(APK 下载)| Web| Docker 部署| 自托管

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname

IP地址

操作系统版本

Docker版本

部署项目

jeven01

192.168.3.88

Ubuntu 24.04.2 LTS

28.3.3

Donetick

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;2.在Docker环境下部署Donetick任务管理工具。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-09-02 11:41:03 UTC; 27s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 782009 (dockerd)
Tasks: 19
Memory: 96.5M (peak: 105.5M)
CPU: 1.750s
CGroup: /system.slice/docker.service
└─782009 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.3.3, build 980b856

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker -v
Docker version 28.3.3, build 980b856

四、拉取Donetick镜像

下载Donetick容器镜像,如下所示:

docker pull donetick/donetick

null

五、部署Donetick服务

5.1 创建部署目录

创建部署目录

mkdir -p /data/donetick/{config,data} && cd /data/donetick

设置目录权限

chmod -R 777 /data/donetick/

5.2 编辑配置文件

在宿主机的../config目录下,新建及编辑selfhosted.yaml文件

vim ./config/selfhosted.yaml

name: "selfhosted"

is_done_tick_dot_com: false
is_user_creation_disabled: false

database:
type: "sqlite"
migration: true

jwt:
secret: "bjP8LtuQ5ZtV82LYiPsi9vgFWuDp6wKN"
session_time: 168h
max_refresh: 168h

server:
port: 2021
read_timeout: 10s
write_timeout: 10s
rate_period: 60s
rate_limit: 300
cors_allow_origins:
- "http://localhost:5173"
- "http://localhost:7926"
# The below are required for the Android app to work
- "https://localhost"
- "capacitor://localhost"
serve_frontend: true

logging:
level: "info"
encoding: "json"
development: false

scheduler_jobs:
due_job: 30m
overdue_job: 3h
pre_due_job: 3h

realtime:
enabled: true
sse_enabled: true
heartbeat_interval: 60s
connection_timeout: 120s
max_connections: 1000
max_connections_per_user: 5
event_queue_size: 2048
cleanup_interval: 2m
stale_threshold: 5m
enable_compression: true
enable_stats: true
allowed_origins:
- "*"

5.3 编辑部署文件

在部署目录下,创建docker-compose.yaml文件,内容如下所示:

vim docker-compose.yaml

services:
donetick:
image: donetick/donetick
container_name: donetick
restart: unless-stopped
ports:
- 2021:2021
volumes:
- ./data:/donetick-data
- ./config:/config
environment:
- DT_ENV=selfhosted
- DT_SQLITE_PATH=/donetick-data/donetick.db


5.4 创建Donetick容器

执行以下命令,创建Donetick容器。

docker compose up -d

null

5.5 查看Donetick容器状态

检查Donetick容器运行状态,确保Donetick容器正常启动。

root@jeven:/data/donetick# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
donetick donetick/donetick "/donetick" donetick 14 minutes ago Up 14 minutes 0.0.0.0:2021->2021/tcp, [::]:2021->2021/tcp

5.6 检查Donetick容器日志

检查容器运行日志,确保Donetick服务正常运行。

docker compose logs

null

六、访问Donetick服务

6.1 访问Donetick首页

浏览器地址: http://<个人的服务器IP>:2021,访问Donetick首页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

null

注册账号:自定义填写账号信息,填写完毕后,确认创建即可。

null

null

6.2 添加任务及效果

点击左下角的“+”选项,添加新任务。填写任务名称、任务描述等信息,确认创建即可。

null

null

七、总结

通过本次实践,我们成功使用Docker部署了Donetick任务与家务管理应用,实现了高效、便捷的个人任务管理服务。整个部署过程简洁流畅,得益于Docker容器化技术的可移植性和环境隔离优势。Donetick界面友好,功能实用,非常适合家庭或个人进行日常事务协作与跟踪。未来可进一步探索其自动化调度与多设备同步能力,提升使用体验。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。