轻量高效!使用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 系统上快速搭建属于自己的任务管理平台,享受高效、安全的任务管理体验。

暂无评论