基于华为openEuler部署tududi个人任务管理工具【华为根技术】
前言
随着数字化转型的深入,高效的任务管理工具成为提升个人与团队生产力的关键。华为openEuler作为一款面向数字基础设施的开源Linux操作系统,以其高性能、高安全和全场景支持能力,为各类应用提供了坚实的运行底座。tududi作为一款轻量级个人任务管理工具,结合Docker容器化部署,能够快速在openEuler系统上落地运行。本次实践基于华为根技术生态,探索在openEuler上部署与使用tududi的完整流程,验证其稳定性与资源效率。
一、相关服务介绍
1.1 openEuler系统介绍
- 简介
openEuler
是华为发起并主导的一个开源操作系统项目,它基于Linux内核开发,致力于为企业级应用提供安全、稳定、可靠的操作环境。自2019年正式开源以来,openEuler迅速吸引了全球众多开发者和技术爱好者的关注,并逐渐形成了一个活跃的开源社区。该系统不仅支持多种处理器架构(如x86、ARM等),而且通过持续的技术创新,在性能优化、安全性增强以及容器化支持等方面展现了显著的优势。
- 主要特点
- 开源性:openEuler遵循开源协议,允许任何个人或组织自由获取、使用、修改及分发系统代码,这极大地促进了技术创新与共享。
- 高性能与稳定性:通过对Linux内核进行深度优化,openEuler能够提供出色的运行效率和稳定性,满足企业级应用场景的需求。
- 安全性:提供了包括安全启动、数据加密在内的多重安全保障措施,确保用户数据的安全性。
- 容器化支持:兼容Docker和Kubernetes等容器技术,便于开发者构建、部署和管理容器化应用。
- 丰富的生态系统:拥有庞大的开发者社区和丰富的软件库,为用户提供广泛的软件支持和服务。
1.2 tududi介绍
Tududi
简介
Tududi 是一款专为注重隐私、掌控力与效率的个人及团队打造的自托管任务管理工具,融合了个人待办事项的简洁性与专业项目管理的强大功能,帮助用户在本地环境中高效组织任务、项目与笔记。
Tududi
主要功能
- 任务管理:支持创建、编辑、删除任务,并可通过今天、即将、某天等视图过滤,按名称、优先级或日期排序。
- 子任务:将复杂任务拆解为多个子任务,便于分步完成并实时追踪整体进度。
- 重复任务:提供强大的周期性任务功能,支持多种重复模式与智能实例管理。
- 多种重复模式:可设置每日、每周、每月、特定工作日或每月最后一天等重复规则。
- 基于完成的重复:任务重复时间可基于实际完成日期而非原定截止日,更符合实际使用场景。
- 智能父子链接:生成的重复任务实例与原始模板保持关联,确保设置变更同步更新。
- 直接编辑父任务:从任意一个重复任务实例中可直接修改其父模板的重复设置,操作更便捷。
- 灵活时间安排:支持自定义重复间隔,如每2周、每3个月等,满足个性化周期需求。
- 结束日期控制:可为重复任务系列设置终止日期,避免无限循环。
- 快速笔记:支持创建和管理文本笔记,并可将其关联到具体项目中,便于信息归集。
- 标签管理:为任务和笔记添加标签,实现多维度分类与快速筛选。
- 项目跟踪:将相关任务和笔记组织到项目中,实现结构化工作管理。
- 区域分类:将项目划分到不同“区域”(如工作、生活、学习),提升专注力与组织清晰度。
- 到期日期追踪:为任务设置截止日期,并通过到期时间分类(如今日、本周)集中查看。
- 响应式设计:界面适配桌面、平板和手机等多种设备,确保跨平台一致体验。
- 多语言支持:支持24种语言的完整本地化,满足全球用户的语言偏好。
- Telegram 集成:通过 Telegram 消息直接创建任务,实现快速记录。
- 每日任务总结:接收每日待办事项汇总通知,帮助掌握当日重点。
- 随时捕捉想法:利用 Telegram 随时发送想法或待办,无缝同步至 Tududi。
二、本次实践介绍
2.1 本次实践介绍
1.本次实践环境为个人测试环境,生产环境请谨慎;
2.本次实践主要是在openEuler系统下部署tududi个人任务管理工具。
2.2 本次环境规划
本次环境规划如下所示:
服务器 | HostName | IP地址 | 操作系统 | 内核版本 | 部署项目 | Docker版本 |
---|---|---|---|---|---|---|
VM虚拟机 | openEuler-server | 192.168.3.83 | openEuler 24.03 (LTS) | 6.6.0-28.0.0.34.oe2403.x86_64 | tududi | 26.1.3 |
三、本地环境检查
3.1 检查系统版本
检查当前系统版本,当前系统版本为
openEuler 24.03 (LTS)
。
[root@openEuler-server ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"
3.2 检查内核版本
检查当前内核版本,如下所示:
[root@openEuler-server ~]# uname -r
6.6.0-28.0.0.34.oe2403.x86_64
3.3 检查本地IP
查看本地IP地址,本次实践本地IP设置为
192.168.3.83/24
。
[root@openEuler-server ~]# ifconfig ens18
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.83 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::be24:11ff:feaa:bfa5 prefixlen 64 scopeid 0x20<link>
ether bc:24:11:aa:bf:a5 txqueuelen 1000 (Ethernet)
RX packets 1267 bytes 134016 (130.8 KiB)
RX errors 0 dropped 64 overruns 0 frame 0
TX packets 321 bytes 36697 (35.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3.4 检查Docker环境
- 检查Docker版本
[root@openEuler-server ~]# docker -v
Docker version 26.1.3, build b72abbb
四、部署tududi项目
4.1 下载Docker镜像
执行以下命令,拉取tududi的容器镜像。
docker pull chrisvel/tududi:0.80
4.2 创建部署目录
执行以下命令,创建部署目录。
mkdir -p /data/tududi/{db,uploads} && cd /data/tududi
4.3 docker-cli方式部署(可选)
- 如果想要使用docker-cli方式部署,可参考以下命令:
docker run \
-e TUDUDI_USER_EMAIL=myemail@example.com \
-e TUDUDI_USER_PASSWORD=mysecurepassword \
-e TUDUDI_SESSION_SECRET=$(openssl rand -hex 64) \
-e TUDUDI_ALLOWED_ORIGINS=https://tududi,http://tududi:3002 \
-e PUID=1001 \
-e GUID=1001 \
-v ~/tududi_db:/app/backend/db \
-v ~/tududi_uploads:/app/backend/uploads \
-p 3002:3002 \
-d chrisvel/tududi:0.80
4.4 编辑部署文件
本次实践我们使用docker compose方式部署,新建及编辑以下docker-compose.yaml文件。
vim docker-compose.yaml
version: '3.8'
services:
tududi:
image: chrisvel/tududi:0.80
container_name: tududi
environment:
# 登录邮箱
TUDUDI_USER_EMAIL: myemail@example.com
# 登录密码(请替换为更安全的密码)
TUDUDI_USER_PASSWORD: admin
# 会话密钥:使用随机生成的64字节十六进制字符串
# 可在启动前通过命令生成:openssl rand -hex 64
TUDUDI_SESSION_SECRET: bef42eb710036b4d38771e695353c5f397736d5a43aa31d319ed011ee0cb0d4603b03a2f4825581fa24dae5d72a985578e1650ad73af70c548b16b6c641e8ca0
# 允许的跨域来源(CORS)
# 必须包含宿主机IP:端口,否则前端无法通信
TUDUDI_ALLOWED_ORIGINS: http://192.168.3.83:3002,http://localhost:3002
# 使用 root 用户权限运行(UID=0, GID=0)
PUID: 0
PGID: 0
ports:
- "3002:3002" # 映射宿主机3002端口
volumes:
- /data/tududi/db:/app/backend/db # 数据库持久化
- /data/tududi/uploads:/app/backend/uploads # 文件上传目录
restart: unless-stopped
# 健康检查(可选)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3002"]
interval: 30s
timeout: 10s
retries: 3
4.5 部署tududi
执行以下
docker compose up -d
命令,部署tududi应用。
docker compose up -d
4.6 检查容器状态
检查tududi容器状态,确保tududi容器正常启动。
[root@openEuler-server tududi]# docker compose ps
WARN[0000] /data/tududi/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
tududi chrisvel/tududi:0.80 "/app/scripts/docker…" tududi About a minute ago Up About a minute (healthy) 0.0.0.0:3002->3002/tcp, :::3002->3002/tcp
4.7 检查容器日志
检查容器运行日志,确保tududi服务正常运行。
docker compose logs
五、访问tududi服务
5.1 安全设置
- 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 停止本地防火墙
systemctl stop firewalld
systemctl disable firewalld
5.2 访问首页
访问地址:http://《服务器IP地址》:3002,将IP替换为自己服务器IP地址,进入到tududi登录页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。
使用我们在部署文件中定义的邮箱账号登录,如下所示:
六、tududi基本使用
6.1 基本使用体验
- 创建项目和任务:选择项目模块,确定项目名称后,可逐一添加任务事项。
- 笔记功能:可在笔记模块,新增及编辑笔记内容,如下所示:
6.2 查看容器使用资源
通过
docker stats tududi
可以清晰地看到该容器仅占用极少量的 CPU 和内存资源(如 42.31MiB / 7.163GiB),表明其运行轻量高效。 这种低资源占用充分体现了容器化技术的优势,能够在保证服务运行的同时极大提升宿主机的资源利用率。
docker stats tududi
七、总结
本次实践成功在华为openEuler系统上完成了tududi个人任务管理工具的部署与运行,验证了其良好的兼容性与稳定性。通过Docker容器化方式,实现了应用的快速部署与资源隔离,显著提升了环境搭建效率。实际运行数据显示,tududi容器资源占用极低,运行流畅,满足轻量高效的任务管理需求。该实践不仅展示了openEuler系统在应用承载方面的优势,也为基于华为根技术构建个人数字化工作环境提供了可行方案。
- 点赞
- 收藏
- 关注作者
评论(0)