【Docker项目实战】使用Docker部署tududi个人任务管理工具

简介: 【6月更文挑战第2天】使用Docker部署tududi个人任务管理工具

一、tududi介绍

1.1 tududi简介

  • Ttududi简介

tududi是使用 Sinatra 构建的任务和项目管理 Web 应用程序。它允许用户有效地管理他们的任务和项目,将它们分类到不同的区域,并跟踪截止日期。 设计直观且易于使用,为个人工作效率提供无缝体验。

1.2 tududi特点

  • 任务管理:创建、更新和删除任务。将任务标记为已完成,并通过不同的筛选器(今天、即将到来、有一天)查看它们。按名称、截止日期、创建日期或优先级对它们进行排序。
  • 快速注释:创建、更新、删除文本注释或将文本注释分配给项目。
  • 标签:为任务和笔记创建标签。
  • 项目跟踪:将任务组织到项目中。每个项目可以包含多个任务和/或多个注释。
  • 区域分类:将项目分组到区域中,以便更好地组织和关注。
  • 截止日期跟踪:设置任务的截止日期,并根据截止日期类别查看它们。
  • 响应式设计(进行中):可从各种设备访问,确保跨台式机、平板电脑和移动电话的一致体验。

1.3 tududi使用场景

  • 个人任务管理:使用 tududi 可以帮助个人有效地管理任务和项目,将它们分类到不同的区域,并设定截止日期。用户可以快速查看任务的进度和优先级,以及完成情况。

  • 团队协作:tududi 还支持多用户协作,团队成员可以在应用程序中创建和分配任务,以及跟踪任务的进度。团队成员可以通过应用程序实时更新任务状态和留言,以便更好地沟通和合作。

  • 项目管理:tududi 可以用作项目管理工具,用户可以创建项目,并将相关的任务分配给不同的团队成员。tududi 还可以跟踪项目的进度和截止日期,以确保项目按时交付。

  • 学生学习:学生可以使用 tududi 来管理课程作业和项目。他们可以创建不同的区域来组织各种作业,例如数学,英语等。学生可以设置作业的截止日期,并通过应用程序跟踪他们的进度。

  • 个人目标追踪:tududi 还可以用作个人目标追踪工具。用户可以创建各种目标,并跟踪目标的进度和截止日期。用户可以通过应用程序中的图表和统计信息,了解他们的目标完成情况并进行调整。

    二、本地环境介绍

    2.1 本地环境规划

    本次实践为个人测试环境,操作系统版本为centos7.6。

hostname IP地址 操作系统版本 Docker版本
jeven 192.168.3.166 centos 7.6 20.10.17

2.2 本次实践介绍

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

三、本地环境检查

3.1 检查Docker服务状态

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

[root@jeven mirotalksfu]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2024-02-06 14:02:53 CST; 4 days ago
     Docs: https://docs.docker.com
 Main PID: 11739 (dockerd)
    Tasks: 10
   Memory: 1.5G
   CGroup: /system.slice/docker.service
           └─11739 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

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

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、下载tududi镜像

从docker hub拉取tududi镜像

[root@jeven ~]# docker pull chrisvel/tududi:0.17
0.17: Pulling from chrisvel/tududi
Digest: sha256:d4579124d25c97cc81cb6e0667eba22984bc89f0fc8d095eeb80ff4bd326d2eb
Status: Image is up to date for chrisvel/tududi:0.17
docker.io/chrisvel/tududi:0.17

五、部署tududi

5.1 创建部署目录

创建部署目录

[root@jeven ~]# mkdir -p /data/tududi
[root@jeven ~]# cd /data/tududi/

5.2 使用docker-cli创建tududi容器

生成一个随机的哈希值以将其用作TUDUDI_SESSION_SECRET的值

openssl rand -hex 64

在这里插入图片描述

使用docker-cli快速部署tududi容器

docker run \
-e TUDUDI_USER_EMAIL=myemail@example.com \
-e TUDUDI_USER_PASSWORD=admin \
-e TUDUDI_SESSION_SECRET=ce0a9ecad8c74b004002f8f5eb46bd123e10f96c7888b05fe18bc4ddc69a181d3ba6f863ea8b02533a284b24639608ec5a682557ce8f7cf0651a819e4a5fc6da \
-e TUDUDI_INTERNAL_SSL_ENABLED=true \
-v ~/tududi_db:/usr/src/app/tududi_db \
-p 8966:9292 \
-d chrisvel/tududi:0.17

5.3 编辑docker-compose.yaml文件

本次实践使用docker compose方式运行tududi容器,编辑docker-compose.yaml文件内容如下:

version: '3'
services:
  tududi:
    image: chrisvel/tududi:0.17
    environment:
      - TUDUDI_USER_EMAIL=myemail@example.com
      - TUDUDI_USER_PASSWORD=admin
      - TUDUDI_SESSION_SECRET=ce0a9ecad8c74b004002f8f5eb46bd123e10f96c7888b05fe18bc4ddc69a181d3ba6f863ea8b02533a284b24639608ec5a682557ce8f7cf0651a819e4a5fc6da
      - TUDUDI_INTERNAL_SSL_ENABLED=true
    volumes:
      - ~/tududi_db:/usr/src/app/tududi_db
    ports:
      - 8966:9292

5.3 运行tududi容器

  • 使用docker-compose.yaml文件创建tududi容器
    [root@jeven tududi]# docker compose up -d
    [+] Running 2/2
    ⠿ Network tududi_default     Created                                                                                                           0.0s
    ⠿ Container tududi-tududi-1  Started                                                                                                           0.8s
    

5.4 检查tudud容器状态

检查tudud容器状态,确保tudud容器正常启动。

[root@jeven tududi]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
tududi-tududi-1     "/bin/sh -c 'rake db…"   tududi              running             0.0.0.0:8966->9292/tcp, :::8966->9292/tcp

5.5 检查tudud容器日志

检查tudud容器运行状态,确保tudud服务正常运行。

[root@jeven tududi]# docker compose logs
tududi-tududi-1  | Puma starting in single mode...
tududi-tududi-1  | * Puma version: 6.4.0 (ruby 3.2.2-p53) ("The Eagle of Durango")
tududi-tududi-1  | *  Min threads: 0
tududi-tududi-1  | *  Max threads: 5
tududi-tududi-1  | *  Environment: production
tududi-tududi-1  | *          PID: 8
tududi-tududi-1  | * Listening on ssl://0.0.0.0:9292?cert=certs%2Fserver.crt&key=certs%2Fserver.key&verify_mode=none
tududi-tududi-1  | Use Ctrl-C to stop

在这里插入图片描述

六、访问tududi首页

6.1 进入tududi登录页

访问地址:https://192.168.3.166:8966/,将IP替换为自己服务器IP地址,进入到tududi登录页,注意使用https访问。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

在这里插入图片描述

6.2 访问tududi首页

我们在docker-compose.yml中设置的账号密码为:myemail@example.com/admin

在这里插入图片描述

七、tududi基本使用

7.1 新建任务

选择“Next Actions”,点击新增任务。

在这里插入图片描述

在这里插入图片描述

7.2 更新任务状态

点击新建任务

在这里插入图片描述

设置任务状态,有未开始,进行中,已完成,归档等选项,可以设置任务的优先级、期限等。

在这里插入图片描述
在这里插入图片描述

7.3 新建笔记

点击新建笔记选项,编辑笔记标题和笔记内容。

在这里插入图片描述
在这里插入图片描述

八、总结

tududi是一个使用Sinatra构建的任务和项目管理Web应用程序。它允许用户高效地管理任务和项目,并将它们分类到不同的区域,并跟踪截止日期。设计直观且易于使用,为个人工作提供无缝体验。tududi部署简单,界面简洁易用,是一款不错的任务管理工具。然而,在当前版本中,新建项目时可能会出现内部错误。希望未来的版本中可以修复这个bug。

相关文章
|
23小时前
|
测试技术 Linux 网络安全
【Docker项目实战】使用Docker部署RSS阅读器yarr
【6月更文挑战第22天】使用Docker部署RSS阅读器yarr
7 2
|
1天前
|
Docker 容器
如何使用Docker部署WPS Office服务并实现无公网IP远程处理文档表格(二)
使用Docker部署的WPS Office服务可以通过内网穿透工具Cpolar实现远程访问。首先,创建一个名为“wps office”的隧道,选择HTTP协议和3000端口,分配免费的随机域名,并指定中国地区。然后,通过Cpolar的管理界面获取HTTP公网地址,用以远程访问WPS Office。由于随机域名会变化,可以升级Cpolar套餐并保留一个二级子域名,确保长期稳定的远程访问。配置子域名后,更新隧道设置,完成固定公网地址的绑定,从而实现随时随地通过固定地址访问WPS Office。
|
1天前
|
数据采集 JavaScript Go
蓝易云 - crawlab通过docker单节点部署简单爬虫
以上就是通过Docker单节点部署Crawlab并运行简单爬虫的步骤。在实际操作中,你需要根据自己的需求对爬虫代码进行编写。
5 2
|
1天前
|
安全 Linux 网络安全
如何使用Docker部署WPS Office服务并实现无公网IP远程处理文档表格(一)
在群晖NAS上使用Docker部署WPS Office并结合Cpolar内网穿透的步骤包括: 1. 通过SSH命令行拉取`linuxserver/wps-office`镜像。 2. 在群晖容器管理界面运行镜像,设置启动选项和端口映射。 3. 本地访问群晖IP:3000端口以使用WPS Office。 4. 安装Cpolar套件,手动添加并安装到群晖,通过9200端口访问其Web管理界面。 5. 使用Cpolar配置内网穿透,实现远程访问WPS Office。 这一过程允许用户即使在没有公网IP的情况下,也能通过Cpolar将内网的WPS Office服务暴露到公网,便于远程办公和文档处理。
|
6天前
|
NoSQL 关系型数据库 Redis
Docker的通俗理解和通过宿主机端口访问Redis容器的实例
本文目标:引导初学者入门Docker,理解镜像、容器和宿主机概念,学习常用Docker命令,特别是如何创建并从Redis容器通过宿主机端口访问。 关键点: - Docker核心:镜像(类)、容器(实例)、宿主机(运行环境)。 - `docker pull` 拉取镜像,如 `redis:3.0`。 - `docker run -d --name` 后台运行容器,如 `my-redis`。 - `-p` 参数做端口映射,如 `6379:6379`。 - `docker exec -it` 交互式进入容器,如 `bash` 或执行命令。
|
3天前
|
前端开发 安全 数据库
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
Web架构&前后端分离站&Docker容器站&集成软件站&建站分配
|
16小时前
|
NoSQL Redis Docker
使用 Docker Compose 接管现有容器的文档
使用 Docker Compose 接管现有容器的文档
11 2
|
3天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
4天前
|
Linux Docker 容器
蓝易云 - net.ipv4.ip_forward=0导致docker容器无法与外部通信
完成以上步骤后,Docker容器应该能够正常与外部通信了。
9 2
|
4天前
|
Docker 容器
蓝易云 - Docker中容器的随机命名方式
例如,一个自动生成的容器名称可能是"happy_einstein"。这种随机命名方式既保证了容器名称的唯一性,又增加了一些趣味性。
9 2