The workflow engine that doesn't turn into an SRE project.

Dagu is a lightweight workflow engine that comes with a Web UI. Define any worflows in a simple declarative YAML format. It natively suports shell commands, docker containers, k8s jobs, SSH commands, and more. Self-contained and no DBMS is required.

Creado para desarrolladores que quieren una orquestación de flujos de trabajo potente sin la sobrecarga operacional.

Linux
macOS
Windows
Docker
Kubernetes
Ver Ejemplos
Probar Demo en Vivo
Iniciar sesión condemouser / demouser
dagu start-all --port 8080
Instalar el comando dagu
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

Autocontenido

Los workflows son basados en archivos. Un binario, sin base de datos ni broker externos. Listo para entornos air-gapped.

Orientado a CLI

Scripts shell, trabajos Python, SQL, dbt, DuckDB, contenedores y runbooks se ejecutan como pasos de pipeline sin cambios. No hace falta un nuevo framework.

Declarativo

Define workflows en un formato YAML simple y declarativo. Puedes usar cualquier script o herramienta existente sin modificarla.

Integración segura de agentes IA

Usa tu agente IA favorito para crear, mejorar, depurar y ejecutar workflows. La gestión de secretos integrada oculta las credenciales de los logs y agentes, mientras les permite previsualizar y ejecutar tareas de forma segura. El registro de auditoría completo garantiza cumplimiento y visibilidad.

Configurar vía MCP
workflow.yaml
# Runbook de producción controlado con entradas tipadas y revisión
name: "repair-customer-account"

params:
- name: customer_id
type: string
- name: change_scope
type: string
enum: ["metadata_only", "permissions"]
default: metadata_only
- name: dry_run
type: boolean
default: true

steps:
- id: inspect_account
run: ./scripts/inspect-account.sh --customer $${customer_id}
stdout:
artifact: reports/inspection.md

- id: review
action: noop
depends: [inspect_account]
approval:
prompt: "Review the inspection report before repair."

- id: repair_account
run: ./scripts/repair-account.sh --customer $${customer_id} --scope $${change_scope} --dry-run $${dry_run}
depends: [review]
stdout:
artifact: reports/repair.log

Trusted by developers at

1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX
1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX
1Password
Intel
MongoDB
Baidu
ByteDance
Canonical
Grab
Douban
Debian
NASA / JPL
Gitee
Plaid
Geodis
Aleno
Mambu
Audibene
NINAnor
RUBIX GmbH
cynkra
DataLad
dandi
QNIB Solutions
modoolar
TTT Studios
vital-software
m3dev
Build On Technologies
Dalibo
InfoInnova
infront-quant
gfx-labs
t54-labs
sajo
ANZX

Gateway para agentes de IA

Da a los agentes de IA acciones aprobadas, no acceso a producción.

Dagu expone workflows privados mediante MCP con permisos acotados, secretos solo en tiempo de ejecución, logs, historial y auditoría.

Agente de IA

Solicita una operación aprobada sin ver credenciales privadas.

Solicitar

Dagu MCP

Aplica control de acceso granular antes de ejecutar cualquier workflow.

Autorizar

Workflow aprobado

Ejecuta el script, contenedor, SQL, HTTP, SSH o sub-workflow que ya confías.

Ejecutar

Sistemas privados

Las herramientas y datos de producción quedan detrás de Dagu, no dentro del contexto del agente.

ShellSQLSSH

Los agentes solicitan una acción de workflow con nombre mediante Dagu MCP en lugar de recibir credenciales de shell, base de datos o API.

Dagu comprueba el acceso, inyecta secretos solo en tiempo de ejecución y puede pausar workflows sensibles para aprobación humana.

Cada ejecución conserva logs, salidas, estado, historial y evidencia de auditoría para humanos y agentes.

Acceso acotado

Expón solo las acciones que cada agente puede ejecutar.

Secretos gestionados

Inyecta credenciales en runtime sin revelarlas al agente.

Auditoría

Registra quién o qué ejecutó cada workflow y con qué entradas.

Aprobaciones

Pausa operaciones de alto riesgo para revisión humana.

Resultados seguros

Devuelve estado y salidas sin abrir acceso crudo al sistema.

El agente recibe una herramienta limitada. Tus sistemas privados mantienen secretos, logs, permisos e historial operativo en Dagu.

El plano de control alrededor del trabajo real

Dagu añade a scripts, herramientas, runbooks y agentes de IA la capa operativa que los equipos necesitan.

Modelos de despliegue

Ejecuta una instancia auto-hospedada, usa el servidor gestionado de Dagu, o combina el plano de control en la nube con workers privados en tu infraestructura.

Empieza en una maquina. Escala a self-hosted, managed o hybrid.

Local

Servidor unico

Ejecuta `dagu start-all` en una maquina con estado local respaldado por archivos. Sin database, broker ni platform stack.

Autoalojado

Tu infraestructura

Mantiene Dagu server, workers, secrets, logs y execution dentro de tu propio entorno.

Dagu

Servidor totalmente gestionado

Usa un Dagu server dedicado operado por Dagu en una instancia gVisor aislada en GKE.

Hibrido

Servidor gestionado, ejecucion privada

Deja que Dagu opere el server mientras private workers ejecutan Docker, private-network o data-local steps.

Ejecución híbrida

Servidor Dagu gestionado
Private worker por mTLS
Docker, private APIs, secrets y data-local work

Hybrid mantiene el Dagu server gestionado mientras la execution que necesita tu network, runtime o data permanece bajo tu control.

Funcionalidades de motor de flujo de trabajo en producción

Las funcionalidades de motor de flujo de trabajo battle-tested te permiten centrarte en el valor central sin preocuparte por la orquestación.

Rendimiento

Ejecuta miles de workflows por día en una máquina, según el hardware, la forma del workflow, la duración de los pasos y la configuración de colas.

Ejecuciones distribuidas

Usa colas, límites de concurrencia y workers distribuidos para controlar la carga y repartir jobs entre máquinas.

Notificaciones

Programaciones recurrentes, catchup, ejecuciones duraderas, tiempos de espera, reinicios, notificaciones y enrutamiento de incidentes a los responsables.

Auth y RBAC

Gestión de usuarios, RBAC, espacios de trabajo, pasos de aprobación, gestión de secretos integrada, claves API y webhooks.

Casos de uso reales

01

Automatización de soporte al cliente

Convierte las solicitudes repetitivas de ingeniería en flujos de trabajo de autoservicio. Los equipos de negocio los ejecutan de forma independiente. Los ingenieros se mantienen al margen.

02

Gestión de cron y scripts legados

Lleva scripts shell, scripts Python, llamadas HTTP y jobs programados existentes a Dagu sin reescribirlos.

03

Automatización de Infraestructura y Servidores

Coordina backups por SSH, limpiezas, scripts de despliegue, ventanas de parches, precondiciones y lifecycle hooks.

04

ETL y Operaciones de Datos

Ejecuta consultas PostgreSQL o SQLite, transferencias S3, transformaciones jq, validaciones y sub-workflows reutilizables.

05

GitHub como interfaz. Tu infraestructura como runtime.

Activa ejecuciones de Dagu desde eventos de GitHub de issues y PRs mediante la aplicación GitHub de Dagu gestionada.

06

Workflows de Contenedores y Kubernetes

Compón workflows donde cada paso puede ejecutar una imagen Docker, un Job de Kubernetes, un comando shell o una validación.

07

Conversión de Medios

Ejecuta ffmpeg, extracción de miniaturas, normalización de audio, procesamiento de imágenes y otros trabajos pesados en workers.

08

Workflows IoT y Edge

Ejecuta lectura de sensores, limpieza local, sincronización offline, health checks y mantenimiento en dispositivos pequeños.

09

Workflows con Agentes de IA

Ejecuta cualquier harness para automatizar ciertos flujos de trabajo de desarrollo con contexto limpio y retry y failover automáticos.

Patrones comunes

Health Check
SSH Backup
Notify

Workflows de scripts privados

Convierte scripts privados, CLIs internos, acciones reutilizables, herramientas fijadas y artefactos en workflows que otros equipos pueden solicitar o ejecutar de forma segura.

  • 1Mantén scripts y comandos existentes intactos
  • 2Expón parámetros acotados en vez de acceso amplio a producción
  • 3Llama Dagu Actions versionadas con salidas tipadas
  • 4Guarda reportes y logs como artefactos de primera clase
workflow.yaml
tools:
  - jqlang/jq@jq-1.7.1

steps:
  - id: collect
    action: acme/dagu-action-export@v1.4.2
    with:
      dataset: customers

  - id: transform
    run: jq '.items[] | {id, email}' ${collect.outputs.path}
    stdout:
      artifact: reports/customers.json
    depends: [collect]

  - id: publish
    action: outputs.write
    with:
      values:
        report: reports/customers.json
        rows: ${collect.outputs.rows}
    depends: [transform]

Parámetros tipados

Dagu los renderiza automáticamente como un formulario de entrada de parámetros tipados en la interfaz web, útil para crear flujos de trabajo de autoservicio o su operación por no ingenieros.

workflow.yaml
tools:
  - jqlang/jq@jq-1.7.1

steps:
  - id: inspect
    run: jq --version

  - id: summarize
    action: python-script@v1
    with:
      input:
        rows: [42, 8]
      script: |
        return {"total": sum(input["rows"])}

Para preparar herramientas, Dagu usa aqua como proveedor predeterminado.

Agente de IA multijugador en Slack

El agente de IA en Slack te ayuda a gestionar tus flujos de trabajo,depurar fallos y recuperar incidentes.

DaguDagu
Mensaje...

Funcionalidades completas de flujo de trabajo

Dagu está equipado con funcionalidades de motor de flujo de trabajo de nivel producción.

Amado por los desarrolladores

Comentarios reales de la comunidad GitHub de Dagu.

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.

@borestad

Elk Studios

#1313

Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖

@jarnik

Freelance developer

#1294

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!

@jonasban

Developer

#1130

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Awesome, it works like a charm! I second the update of the doc on this one.

@thibmart1

Developer

#1320

That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡

@ghansham

Developer

#1076

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.

@borestad

Elk Studios

#1313

Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖

@jarnik

Freelance developer

#1294

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!

@jonasban

Developer

#1130

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Awesome, it works like a charm! I second the update of the doc on this one.

@thibmart1

Developer

#1320

That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡

@ghansham

Developer

#1076

This is literally my dream project. I have set up GitLab at some point just to run some commands and this project is perfect for all my use case. Thank you very much!

@vnghia

Developer

#827

Dagu is really a gem in the open source world! ❤️ What a release — with GitHub Actions as well. Thanks guys.

@borestad

Elk Studios

#1313

Dagu is an amazing tool!! It works perfectly now, thank you so much! 💖

@jarnik

Freelance developer

#1294

I've been exploring Dagu for a few weeks and really love the Zero-Ops philosophy. The declarative YAML approach is exactly what the workflow orchestration space needs.

@vincent067

Developer

#1814

Amazing! I did not expect this to be delivered that fast! Multiple schedulers do not compete and the locking mechanism works as expected. Good job!

@jonasban

Developer

#1130

I've recently played around with Dagu for private stuff and think it could also be worth introducing at work.

@DarkWiiPlayer

Developer

#924

Awesome, it works like a charm! I second the update of the doc on this one.

@thibmart1

Developer

#1320

That's very impressive. The exit code dictionary will make these DAGs even further sophisticated. Once again, very good features. 🫡

@ghansham

Developer

#1076

I love how simple this is now.

@n3storm

Estudio Nexos

#1593

Fantastic! Thanks for the quick reply — keep up the great project!

@mitchplze

Developer

#1359

Amazing support! Thank you!

@kacamific

Developer

#760

It works perfectly with v2.6.1. Thank you very much for the correction.

@napnap75

Developer

#1638

Thanks for the fix. Works great now.

@triole

Developer

#831

As always, appreciate the great work — just sharing feedback to help shape the roadmap.

@jonnochoo

Developer

#770

it's awesome you keep working on it 👍

@fishnux

Developer

#328

Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.

@IngwiePhoenix

Developer

#423

I love how simple this is now.

@n3storm

Estudio Nexos

#1593

Fantastic! Thanks for the quick reply — keep up the great project!

@mitchplze

Developer

#1359

Amazing support! Thank you!

@kacamific

Developer

#760

It works perfectly with v2.6.1. Thank you very much for the correction.

@napnap75

Developer

#1638

Thanks for the fix. Works great now.

@triole

Developer

#831

As always, appreciate the great work — just sharing feedback to help shape the roadmap.

@jonnochoo

Developer

#770

it's awesome you keep working on it 👍

@fishnux

Developer

#328

Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.

@IngwiePhoenix

Developer

#423

I love how simple this is now.

@n3storm

Estudio Nexos

#1593

Fantastic! Thanks for the quick reply — keep up the great project!

@mitchplze

Developer

#1359

Amazing support! Thank you!

@kacamific

Developer

#760

It works perfectly with v2.6.1. Thank you very much for the correction.

@napnap75

Developer

#1638

Thanks for the fix. Works great now.

@triole

Developer

#831

As always, appreciate the great work — just sharing feedback to help shape the roadmap.

@jonnochoo

Developer

#770

it's awesome you keep working on it 👍

@fishnux

Developer

#328

Thank you so much for the quick fix! I tested it, and it now correctly stores the files where it should.

@IngwiePhoenix

Developer

#423

Quickstart

Instala Dagu con el asistente guiado y luego continúa en la guía completa de instalación o en la guía rápida.

1

Instalar el comando dagu

Los instaladores por script son la ruta recomendada. Homebrew, npm y Docker siguen disponibles, pero solo instalan el binario o el contenedor.

Mac/Linux Terminal
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ Instalador guiado listo
Opcional

Conecta herramientas de IA

Instala el skill de Dagu para crear workflows, o conecta un cliente MCP a un servidor Dagu en ejecución.

Skill de Dagu
$gh skill install dagucloud/dagu dagu

Ayuda a Claude Code, Codex, Gemini CLI y otras herramientas de programación con IA a escribir YAML de Dagu.

Endpoint MCP de Dagu
URLhttp://localhost:8080/mcp

Permite que clientes compatibles con MCP lean el estado de Dagu, previsualicen cambios y controlen ejecuciones DAG.

El acceso MCP con OIDC/SSO está disponible para despliegues empresariales. Contáctanos para hablar de la configuración.

2

Siguientes pasos

El instalador guiado puede completar por ti la configuración inicial.

# Lo que puede hacer el instalador
Añadir Dagu al PATH
Configurar un servicio en segundo plano
Crear y verificar el primer administrador

Comunidad del proyecto

Debate el uso, reporta issues y sigue el desarrollo.

Partner de soluciones

Soporte de partner de soluciones para proyectos de clientes

Para equipos que integran Dagu en productos de cara al cliente, plataformas internas o servicios gestionados, ofrecemos funciones enterprise y apoyo práctico de integración.

Ayudamos a los partners a diseñar el modelo de seguridad, el camino de integración y el plan operativo para que Dagu encaje bien en proyectos de clientes sin entregar acceso amplio a producción.

Contactarnos

Enterprise OIDC/SSO y control de acceso

Soporte MCP para workflows de agentes y clientes

Revisión de arquitectura para despliegues self-hosted, gestionados o híbridos

Configuración de private workers, secretos y ejecución dentro de red

Migración de scripts y runbooks a workflows de cara al cliente

Soporte dedicado durante la entrega del proyecto y el lanzamiento a producción