Autoalojado · Un solo binario · Cero dependencias

El motor de flujos de trabajo que no se convierte en un proyecto de SRE.

Dagu es una alternativa ligera a Airflow o Cron con una interfaz web. Define DAGs en un formato YAML declarativo simple. Admite comandos de shell, contenedores Docker, trabajos de k8s, comandos remotos vía SSH y más. Fue diseñado para ser fácil de usar, autocontenido y no requerir programación, lo que lo hace ideal para equipos pequeños. Creado para desarrolladores que quieren una orquestación de flujos de trabajo potente sin la sobrecarga operacional.

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 MCP y comandos de Agent CLI externos (Agent Harness)

Usa clientes compatibles con MCP para crear, mejorar, depurar y ejecutar workflows, y ejecuta pasos Agent Harness dentro de workflows. Los secretos se inyectan en tiempo de ejecución y se enmascaran en logs; no se pasan al cliente MCP. Cada acción queda registrada para cumplimiento.

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 ${params.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 ${params.customer_id} --scope ${params.change_scope} --dry-run ${params.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
NOW VIEWING · THE FLIGHT DECK
MAIN VIEWER // LIVE FEED

Servidor MCP integrado para operaciones de workflow sin exponer secretos

Los clientes compatibles con MCP y autorizados pueden inspeccionar y solicitar operaciones de DAG mediante Dagu. Los sistemas privados quedan detrás de un límite de seguridad: Dagu inyecta credenciales en tiempo de ejecución y no las pasa al cliente MCP.

Cliente MCP

Solicita una operación aprobada sin recibir credenciales privadas.

Solicitar

Dagu MCP

Aplica control de acceso granular antes de que cualquier workflow pueda ejecutarse.

Autorizar

DAGs

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 cliente.

ShellSQLSSH

Los clientes compatibles con MCP solicitan acciones de workflow nombradas mediante Dagu MCP en lugar de recibir credenciales de shell, base de datos o API.

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

Cada run conserva logs, salidas, estado, historial y evidencia de auditoría para personas y clientes MCP.

Acceso acotado

Expone solo las acciones que cada cliente MCP tiene permitido ejecutar.

Secretos gestionados

Inyecta credenciales en tiempo de ejecución sin pasarlas al cliente MCP.

Auditoría

Registra quién o qué solicitó 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.

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

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.

06

Conversión de Medios

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

07

Workflows IoT y Edge

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

08

Workflows Agent Harness

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}' ${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]

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.

Ú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

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

Self-host gratis. Los planes de pago incluyen 3 o 15 licencias de servidor.

Dagu sigue siendo open source. Minimum incluye 3 licencias de servidor self-host; Pro incluye 15. Cada licencia cubre un servidor Dagu, con workers ilimitados.

Minimum
$50/ mes

3 licencias de servidor Dagu self-host

Anual$500 / año
Pro
$150/ mes

15 licencias de servidor Dagu self-host

Anual$1,500 / año

Crea una prueba de licencia self-host de 14 días en minutos

Sin tarjeta de crédito

Iniciar prueba gratis de licencia

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

Contacto

No dudes en comunicarte para consultas empresariales, preguntas o comentarios. Nos encantaría saber de ti.

Company

Company
Descarty, Inc. (Descarty株式会社)
Address
1-10-8 Dogenzaka, Shibuya-ku, Tokyo (Shibuya Dogenzaka Tokyu Bldg. 2F-C)
Representative
Yota Hamada
Business
Development and operation of workflow automation software.
Corporate number
2011001156613
Invoice registration number
T2011001156613
Telecommunications carrier notification
Notification No. A-06-21879