轻量高效!使用Docker在Ubuntu上部署TaskTrove任务管理平台

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/tasktrove

2. 拉取 TaskTrove 镜像

下载 TaskTrove 容器镜像:

docker pull ghcr.io/dohsimpson/tasktrove

3. 编写 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 -d

5. 验证部署

检查容器运行状态和日志:

# 查看容器状态
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

安全配置建议

  1. 修改默认密码:首次登录后立即设置强密码
  2. 使用 HTTPS:建议前置 Nginx 反向代理,配置 SSL 证书
  3. 限制访问 IP:在防火墙层面限制 5900 端口的访问来源
  4. 定期备份:设置定时任务自动备份 JSON 数据文件
  5. 关注更新:定期检查 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 系统上快速搭建属于自己的任务管理平台,享受高效、安全的任务管理体验。

已有 15 条评论

    1. 刘强 刘强

      教程结构很完整,从准备到运维全流程覆盖。特别欣赏安全配置建议部分,HTTPS前置代理、IP限制、定期备份,这些都是生产环境必须考虑的。JSON存储加上定期备份脚本,数据安全有保障。

    2. Olivia Brown Olivia Brown

      TaskTrove's repeat task functionality is excellent. Setting up daily standup reminders and weekly planning sessions with custom cycles works perfectly. The automatic scheduling of subsequent tasks means I set it once and forget it. This plus Docker deployment makes it a winner.

    3. 张伟 张伟

      作为Docker新手,最怕部署时遇到权限问题。教程特意加了chmod -R 777这一步,还提示检查用户ID,果然避免了很多坑。data.json直接可读可备份,这种透明设计太良心了。准备给公司内部也部署一套。

    4. Emma Thompson Emma Thompson

      The project organization features are well thought out. Projects, groups, color labels - everything you need to categorize tasks without overcomplicating. The multiple view modes make it adaptable to different workflows. Great recommendation for teams wanting a private alternative to commercial tools.

    5. 刘芳 刘芳

      TaskTrove的界面设计很现代化,深色模式支持得很好。教程部署步骤清晰,连防火墙放行端口都考虑到了。已经在自己的树莓派上部署成功,5900端口访问流畅,作为家庭任务管理工具很合适。