PassNAT LogoPassNAT

轻量级工作流引擎Dagu部署教程 YAML配置DAG可视化管理 帕斯内网穿透远程访问

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

Dagu 是一个轻量级的工作流引擎,配备现代化的 Web UI 界面。它允许用户通过简单的声明式 YAML 格式定义工作流,并支持定时执行。Dagu 支持 shell 命令、通过 SSH 远程执行以及 Docker 镜像,内置错误通知和日志记录功能。

这个项目特别适合那些需要管理复杂任务依赖关系的场景。传统系统往往有数百个 cron 作业,它们之间存在复杂且隐式的依赖关系,当某个作业失败时很难确定需要重新运行哪个作业。Dagu 通过将管道依赖关系可视化为 DAG(有向无环图),并提供 Web UI 来检查依赖关系、执行状态和日志,让用户只需简单点击鼠标就能重新运行或停止作业。

相比于 Airflow 等现有工具,Dagu 无需编程知识,采用 YAML 配置即可定义工作流,特别适合小型项目和已有大量 Shell 脚本的系统。它是一个单二进制文件,零依赖安装,无需数据库或云服务即可运行。

项目地址: 点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。

复制下列的配置文件

1services:
2 dagu:
3 image: ghcr.io/dagu-org/dagu:latest
4 container_name: dagu-dev
5 hostname: dagu-dev
6
7 # Expose the web UI on localhost:8080
8 ports:
9 - '8080:8080'
10
11 entrypoint: [] # Override any default entrypoint for Docker in Docker (DinD) support
12
13 # Default command: run all-in-one (server + scheduler + coordinator in-process)
14 command: ['dagu', 'start-all']
15
16 # Recommended dev environment variables
17 environment:
18 # Frontend server
19 - DAGU_HOST=0.0.0.0 # Bind inside container
20 - DAGU_PORT=8080 # Web/UI port inside container
21 - DAGU_DEBUG=true # More verbose logs during dev
22 # Paths
23 - DAGU_DAGS_DIR=/var/lib/dagu/dags
24 # Timezone / base path (optional)
25 # - DAGU_TZ=UTC
26 # - DAGU_BASE_PATH=/dagu
27
28 # Dev-friendly mounts (persistent data + read-only DAGs)
29 volumes:
30 - dagu-data:/var/lib/dagu
31 - ./dags:/var/lib/dagu/dags:ro
32 # For Docker in Docker (DinD) support, mount the host Docker socket:
33 - /var/run/docker.sock:/var/run/docker.sock
34
35 user: '0:0' # Run as root for Docker in Docker (DinD) support
36
37volumes:
38 dagu-data:
39 driver: local

打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目

如果提示端口被占用可以修改下面的字段,但是需要保持格式正确。端口映射格式为 '主机端口:容器端口',容器内端口 8080 不要修改,只修改主机端口即可。

你可以根据需要修改环境变量中的时区设置,取消注释 DAGU_TZ=UTC 并改为你所在的时区,比如 DAGU_TZ=Asia/Shanghai

创建成功后可以访问 ip:8080 到这里就可以正常显示项目了

穿透公网

打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道

隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写

本地 IP 默认就可以

传输协议可以选择 TCP 也可以选择 HTTP/HTTPS

HTTP 就是域名的形式,教程以使用 TCP 为演示

本项目中如果没有修改端口的话默认是 8080 端口,这里本地端口就填 8080

远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定

点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可

复制帕斯内网穿透控制台的访问 IP 和端口

可以看到已经正常穿透成功了

本篇教程结束