Para equipos cuyo trabajo principal no es la orquestación.

Orquestación local-first que simplemente funciona.

Define flujos de trabajo en YAML declarativo; un único binario open source los ejecuta, en local o por SSH, con programación, reintentos, aprobaciones, logs y una interfaz web. Tus scripts, contenedores y agentes de IA quedan intactos. Sin base de datos externa, sin framework.

Instalar el comando dagu
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
daily-report.yaml
# runs every night at 02:00
schedule: "0 2 * * *"
type: chain
steps:
- id: fetch_data
run: python fetch.py
retry_policy:
limit: 3
interval_sec: 60
- id: build_report
run: python report.py
- id: notify
run: ./notify.sh
last run · 02:00:04 · exit 03/3 steps

Quickstart

Quickstart
1

Instalar el comando dagu

Binario
$curl -L https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ Installed to /usr/local/bin/dagu
2

Ejecuta tu primer flujo de trabajo

hello.yaml
$cat > hello.yaml << EOF
# Tu primer flujo de trabajo
steps:
- command: echo "Hello from dagu!"
- command: ls -la
EOF
✓ hello.yaml creado
3

Ejecutarlo

Terminal
$dagu start hello.yaml
Running hello...
✓ hello finished
Hello from dagu!
Running list...
✓ list finished
-rw-r--r-- hello.yaml
✓ Flujo de trabajo completado exitosamente
4

Explorar la Interfaz Web

Instala Dagu y ejecuta tu primer flujo de trabajo desde la interfaz web en pocos minutos.

Terminal
$dagu start-all
✓ Servidor iniciado en http://localhost:8080
Interfaz Web: Monitoreo en tiempo real, vista visual de DAG, historial de ejecución

¿Usas Dagu?

Dale una estrella a Dagu en GitHub para guardar el repositorio y mostrar tu apoyo.

Dale una estrella a Dagu

Todas las operaciones de workflows desde el chat

Une workflows dispersos. Crea, edita, depura, recupera y analiza, todo desde el chat de IA que ya usas.

Más información
CrearEditarDepurarRecuperarAnalizar
AI chat

Create a nightly ETL workflow

etl-nightly · Dagu
extracttransformloadverify

Funciona con cualquier agente compatible con MCP

Claude CodeClaude Code
CursorCursor
GitHub CopilotGitHub Copilot
OpenAI CodexOpenAI Codex
Gemini CLIGemini CLI
KiroKiro
WindsurfWindsurf
ClineCline
Roo CodeRoo Code
ZedZed
DevinDevin
TraeTrae
ChatGPTChatGPT
JunieJunie
GooseGoose
AmpAmp
OpenCodeOpenCode
AntigravityAntigravity
Amazon QAmazon Q
WarpWarp
VS CodeVS Code
RaycastRaycast
LM StudioLM Studio
PerplexityPerplexity

Wiki y runbooks

Mantén los runbooks en Markdown junto a tus workflows. Actualízalos desde la interfaz web o con cualquier agente de IA compatible con MCP. Usa Git Sync para el control de versiones.

Más información
Wiki y runbooks

El plano de control en torno a tu trabajo real

Todo lo siguiente viene en el binario open source; SSO, RBAC y logs de auditoría se activan con una licencia self-host.

Más de 50 tipos de paso integrados

Cada nombre de abajo está disponible hoy como paso. Sin plugins que instalar, nada que importar.

Ejecución
run:execdocker.runkubernetes.runssh.runhttp.request
Datos y archivos
postgres.querysqlite.queryredis.*s3.uploads3.downloadsftp.uploadsftp.downloadfile.*archive.createarchive.extractjq.filterdata.convertdata.pick
IA
chat.completionharness.runhuman.tasktype: controller
Control de flujo
dag.rundag.enqueuerouter.routewait.durationwait.untilwait.filewait.httpnoopapproval:
Estado y entrega
state.getstate.setstate.diffartifact.writeartifact.readoutputs.writetemplate.renderlog.writemail.sendgit.checkout

Lista completa con entradas y salidas en la documentación de Dagu Actions

Operación en producción

Las garantías y los controles, con sus nombres reales.

Rendimiento

Miles de ejecuciones al día en una máquina; la capacidad depende de CPU, disco y forma del workflow. El estado son archivos locales: no hay base de datos que dimensionar ni migrar.

Ejecuciones distribuidas

Colas basadas en archivos con límites de concurrencia por DAG. dagu coordinator despacha por gRPC a workers elegidos por etiquetas como gpu=true.

Notificaciones

Cron con zonas horarias, catchup_window, overlap_policy, retry_policy por paso, detección de zombis, manejadores de ciclo de vida, notificaciones por email y webhook, y enrutado de incidentes.

Auth y RBAC

DAGU_AUTH_MODE none, basic o builtin; cinco roles RBAC; workspaces; pasos de aprobación; enmascarado de secretos; claves API; tokens webhook por DAG.

Arquitectura

El mismo binario funciona de tres maneras.

Standalone

Un proceso dagu start-all ejecuta el servidor HTTP, el scheduler y el executor, con almacenamiento en archivos.

┌─────────────────────────────────────────┐
│  dagu start-all                         │
│  ┌───────────┐ ┌───────────┐ ┌────────┐ │
│  │ HTTP / UI │ │ Scheduler │ │Executor│ │
│  └───────────┘ └───────────┘ └────────┘ │
│  File-based storage (logs, state, queue)│
└─────────────────────────────────────────┘

Coordinator y workers

El scheduler encola en una cola basada en archivos; un coordinator gRPC despacha a workers enrutados por etiquetas, que ejecutan localmente y reportan el estado.

┌───────────┐        ┌───────────┐
│ Scheduler │        │ HTTP / UI │
│ ┌───────┐ │        └─────┬─────┘
│ │ Queue │ │              │ gRPC
│ └───────┘ │              │
└─────┬─────┘              │
      │ Dispatch (gRPC)    │
      ▼                    ▼
   ┌─────────────────────────┐
   │       Coordinator       │
   └────────────▲────────────┘
                │ poll / heartbeat
   ┌────────────┼────────────┐
┌──┴─────┐   ┌──┴─────┐   ┌──┴─────┐
│ Worker │   │ Worker │   │ Worker │
└────────┘   └────────┘   └────────┘

Headless: DAGU_HEADLESS=true ejecuta el mismo binario sin interfaz web, para CI o usos vía API.

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}' ${steps.collect.outputs.path}
    stdout:
      artifact: reports/customers.json
    depends: [collect]

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

Amado por los desarrolladores

Comentarios reales de la comunidad GitHub de Dagu.

Últimamente he estado buscando una alternativa para workflows dinámicos de agentes. Empecé por la vía de Temporal. Temporal es potente, pero si solo quieres encadenar dinámicamente agentes, scripts, procesamiento de datos y tareas de operaciones, todo el sistema puede sentirse un poco pesado. Entonces encontré Dagu y la dirección me pareció acertada. Corre con un solo binario, los flujos se escriben en YAML, todo se gestiona en archivos locales, trae una interfaz web y no hace falta levantar una DB ni un broker adicional. También trae muchas acciones integradas: shell, Docker, K8s Jobs, SSH… están todas. Una grata sorpresa fue harness.run, que permite conectar CLIs de coding agents externos directamente al flujo. Lo que más me gusta: el flujo en sí es un archivo, y el estado, los logs, los reintentos, las dependencias y la interfaz ya vienen resueltos. Para equipos pequeños, entornos privados, automatización personal y workflows de agentes, el enfoque local-first de Dagu resulta realmente cómodo.
Ingeniero en Alipay

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

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

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

@DarkWiiPlayer

Developer

#924

Auto-alojado en su propia infraestructura

Dagu usa la licencia GPLv3 y es gratuito para siempre. Las licencias de pago añaden SSO, RBAC, registros de auditoría, enrutamiento de incidentes y soporte para equipos.

Comunidad
Gratis para siempre
Servidores ilimitados, workers ilimitados
  • Automatización y monitoreo completo de flujos de trabajo
  • Interfaz web con visualización de DAG
  • Ejecutores Docker, SSH y HTTP
  • Programación cron y reintentos
  • Hasta 2 claves API para automatización
Enterprise
Personalizado

Para equipos que construyen infraestructura de workflows orientados a eventos en entornos complejos

Cantidad de servidores con licencia personalizada
  • Consultoría de arquitectura para configuración distribuida
  • Implementación personalizada
  • Guía para MCP OIDC/SSO
  • Soporte de migración inicial
  • Reuniones dedicadas
  • SLA de tiempo de respuesta personalizado
Lo que construimos
  • Soluciones personalizadas

    Creamos funciones a medida para las necesidades específicas de cada empresa.

  • Soluciones llave en mano

    Creamos configuraciones listas para usar que ayudan a los equipos a escalar Dagu fácilmente sin consumir enormes recursos técnicos o de servidor.

Contáctanos

Crea una prueba de licencia self-host de 14 días en minutos14 días, Sin tarjeta de crédito. Iniciar prueba gratis de licencia

Todos los planes de pago incluyen soporte prioritario por email y chat con primera respuesta en 1 día hábil. Ver detalles de soporte

Detalles sobre el alcance de la licencia y la comparación con Community: Guía de licencias self-host

¿Necesitas aprobación interna? Lee el informe de adopción

Contacto

¿Preguntas, bugs o ideas?

Abre un issue en GitHub, pregunta en Discord o escribe un correo. Responde el mantenedor, no un bot.