TaskTrove 是一款现代、可完全自托管的待办事项管理工具,专注于隐私保护与简洁高效的任务管理体验。本文将带您使用 Docker 在 Ubuntu 系统上完成 TaskTrove 的容器化部署,整个过程轻量高效,适合个人用户或小团队搭建私有任务管理平台。
TaskTrove 简介
主要特点
TaskTrove 具有以下核心功能:
- 完全隐私保护:可自托管于个人基础设施,无任何数据追踪或收集
- 智能任务创建:支持自然语言解析(如"明天下午2点"),可添加无限子任务和详细内容
- 任务循环重复:支持每日、每周、每月或自定义周期的重复任务,自动安排后续执行
- 项目化组织:通过项目、分组、颜色标签对任务分类,支持多种视图模式
- 现代化界面:简洁美观,支持深色/浅色主题、响应式设计及键盘快捷操作
- 简单的数据管理:采用 JSON 文件存储数据,便于备份、迁移和版本控制
应用场景
- 个人任务管理:管理日常任务和待办事项,提高个人效率
- 团队协作:跟踪项目进度、分配任务和管理日程
- 项目管理:组织和调度复杂项目任务,确保按时完成
- 隐私敏感场景:对数据安全有要求的个人或组织
部署准备
环境要求
在开始之前,请确保您的 Ubuntu 服务器满足以下条件:
- 操作系统:Ubuntu 20.04 / 22.04 / 24.04(本文以 Ubuntu 24.04.2 LTS 为例)
- Docker:版本 20.10 及以上
- Docker Compose:版本 2.0 及以上
- 端口要求:5900 端口未被占用(可自定义)
检查 Docker 环境
首先检查 Docker 服务状态和版本:
# 检查 Docker 服务状态
sudo systemctl status docker
# 检查 Docker 版本
docker -v
# 检查 Docker Compose 版本
docker compose version确保 Docker 服务正常运行,版本在 20.10 以上。
部署步骤
1. 创建部署目录
为 TaskTrove 创建数据持久化目录:
# 创建部署目录
mkdir -p /data/tasktrove/data
cd /data/tasktrove
# 设置目录权限(确保容器有写入权限)
chmod -R 777 /data/tasktrove2. 拉取 TaskTrove 镜像
下载 TaskTrove 容器镜像:
docker pull ghcr.io/dohsimpson/tasktrove3. 编写 docker-compose.yml 文件
在当前目录下创建 docker-compose.yml 文件:
version: "3"
services:
tasktrove:
image: ghcr.io/dohsimpson/tasktrove
container_name: tasktrove
restart: always
ports:
- "5900:3000"
volumes:
- /data/tasktrove/data:/app/data配置说明:
ports: "5900:3000":将宿主机的 5900 端口映射到容器的 3000 端口(TaskTrove 默认端口)volumes:将宿主机目录挂载到容器内的/app/data,实现数据持久化
如需自定义端口,可修改左侧端口号,例如改为 "5600:3000"。
4. 启动容器
执行以下命令创建并启动 TaskTrove 容器:
# 在 /data/tasktrove 目录下执行
docker compose up -d5. 验证部署
检查容器运行状态和日志:
# 查看容器状态
docker compose ps
# 查看容器日志
docker compose logs确保容器状态为 Up,日志中无错误信息。
访问与初始化
1. 访问 TaskTrove 首页
打开浏览器,访问 http://服务器IP地址:5900。
如果无法访问,请检查:
- 防火墙是否放行 5900 端口
- 云服务器是否配置了相应的安全组规则
2. 初始化系统
首次访问时,页面上方会显示提示,需要点击 "Initialize" 进行初始化。
初始化完成后,可以设置管理员密码并登录系统。
3. 创建任务
登录后,点击 "Add Task" 即可创建新任务。您可以:
- 编辑任务名称和详情
- 添加子任务
- 设置截止日期
- 添加标签和分类
TaskTrove 支持自然语言解析,例如输入"明天下午2点开会",系统会自动识别时间信息。
键盘快捷键
TaskTrove 提供了一系列键盘快捷键,提高操作效率:
| 快捷键 | 操作说明 |
|---|---|
| n | 快速添加新任务 |
| / | 搜索任务和项目 |
| Space | 标记任务为完成/未完成 |
| Esc | 关闭详情面板或对话框 |
数据管理
数据存储位置
TaskTrove 所有数据以 JSON 格式存储在挂载目录中:
/data/tasktrove/data/主要数据文件为 data.json,包含所有任务、项目、标签等信息。
备份数据
定期备份数据文件:
# 手动备份
cp /data/tasktrove/data/data.json /path/to/backup/tasktrove-backup-$(date +%Y%m%d).json
# 或打包整个数据目录
tar -czf tasktrove-backup-$(date +%Y%m%d).tar.gz /data/tasktrove/data恢复数据
将备份的 JSON 文件复制回数据目录即可恢复:
cp /path/to/backup/data.json /data/tasktrove/data/日常运维
查看日志
# 实时查看日志
docker compose logs -f
# 查看最近100行日志
docker compose logs --tail=100升级版本
# 拉取最新镜像
docker compose pull
# 重新创建容器
docker compose up -d --force-recreate停止与启动
# 停止服务
docker compose stop
# 启动服务
docker compose start
# 重启服务
docker compose restart完全移除
# 停止并删除容器
docker compose down
# 停止并删除容器及数据卷(谨慎操作)
docker compose down -v安全配置建议
- 修改默认密码:首次登录后立即设置强密码
- 使用 HTTPS:建议前置 Nginx 反向代理,配置 SSL 证书
- 限制访问 IP:在防火墙层面限制 5900 端口的访问来源
- 定期备份:设置定时任务自动备份 JSON 数据文件
- 关注更新:定期检查 TaskTrove 新版本,及时更新以获取安全修复
常见问题排查
容器无法启动
# 查看详细错误
docker compose logs
# 检查端口占用
sudo netstat -tlnp | grep 5900数据卷权限问题
如果遇到文件写入权限错误:
# 重新设置权限
chmod -R 777 /data/tasktrove
# 查看当前用户ID,确保与容器内用户一致
id无法访问 Web 界面
# 检查防火墙状态
sudo ufw status
# 放行端口(如果防火墙开启)
sudo ufw allow 5900/tcp总结
通过 Docker 容器化部署 TaskTrove,我们实现了:
- 轻量高效:容器化部署,资源占用小,启动快速
- 数据持久化:通过卷挂载实现数据持久存储
- 隐私保护:完全自托管,数据自主掌控
- 便捷运维:使用 Docker Compose 简化管理和升级
TaskTrove 界面简洁、功能实用,非常适合追求隐私保护和轻量化的个人用户或小团队使用。通过本教程,您可以在 Ubuntu 系统上快速搭建属于自己的任务管理平台,享受高效、安全的任务管理体验。
暂无评论