Auto-hospedado · Binário único · Zero dependências

O motor de workflows que não vira um projeto de SRE.

Dagu é uma alternativa leve ao Airflow ou Cron com interface web. Defina DAGs em um formato YAML declarativo simples. Suporta comandos shell, contêineres Docker, jobs k8s, comandos remotos via SSH e muito mais. Foi projetado para ser fácil de usar, autocontido e não exigir programação, tornando-o ideal para equipes pequenas. Dagu é feito para desenvolvedores que querem orquestração de workflows poderosa sem a sobrecarga operacional.

Ver exemplos
Experimentar Demo
Credenciaisdemouser / demouser
dagu start-all --port 8080
Instalar o comando dagu
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

Autocontido

Workflows são baseados em arquivos. Um binário, sem banco de dados ou broker externos. Pronto para ambientes air-gapped.

Orientado a CLI

Scripts shell, jobs Python, SQL, dbt, DuckDB, contêineres e runbooks rodam como etapas de pipeline sem alterações. Nenhum novo framework necessário.

Declarativo

Defina workflows em um formato YAML simples e declarativo. Você pode usar qualquer script ou ferramenta existente sem modificação.

Integração MCP e comandos de CLI de agentes externos (Agent Harness)

Use clientes compatíveis com MCP para criar, melhorar, depurar e executar workflows, e execute etapas Agent Harness dentro dos workflows. Secrets são injetados no runtime e mascarados nos logs; não são passados aos clientes MCP. Cada ação é registrada para compliance.

Configurar via MCP →
workflow.yaml
# Runbook de produção controlado com entradas tipadas e revisão
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 operações de workflow sem expor segredos

Clientes compatíveis com MCP e autorizados podem inspecionar e solicitar operações de DAG pelo Dagu. Sistemas privados ficam atrás de uma fronteira de segurança: o Dagu injeta credenciais em tempo de execução e não as passa ao cliente MCP.

Cliente MCP

Solicita uma operação aprovada sem receber credenciais privadas.

Solicitar

Dagu MCP

Aplica controle de acesso granular antes de qualquer workflow rodar.

Autorizar

DAGs

Executa o script, contêiner, SQL, HTTP, SSH ou sub-workflow que você já confia.

Executar

Sistemas privados

Ferramentas e dados de produção ficam atrás do Dagu, não dentro do contexto do cliente.

ShellSQLSSH

Clientes compatíveis com MCP solicitam ações nomeadas de workflow pelo Dagu MCP em vez de receber credenciais de shell, banco de dados ou API.

Dagu verifica acesso, injeta segredos apenas em tempo de execução e pode pausar workflows sensíveis para aprovação humana.

Cada execução mantém logs, saídas, status, histórico e evidências de auditoria para pessoas e clientes MCP.

Acesso escopado

Expõe apenas as ações que cada cliente MCP tem permissão para executar.

Segredos gerenciados

Injeta credenciais em tempo de execução sem passá-las ao cliente MCP.

Trilha de auditoria

Registra quem ou o que solicitou cada workflow e com quais entradas.

Aprovações

Pause operações de alto risco para revisão humana.

Resultados seguros

Retorna status e saídas sem abrir acesso bruto ao sistema.

O agente recebe uma ferramenta limitada. Seus sistemas privados mantêm segredos, logs, permissões e histórico operacional no Dagu.

Modelos de deployment

Execute uma instância auto-hospedada, use o servidor gerenciado do Dagu, ou combine o plano de controle na nuvem com workers privados em sua infraestrutura.

Comece em uma maquina. Escale para self-hosted, managed ou hybrid.

Local

Servidor unico

Execute `dagu start-all` em uma maquina com estado local baseado em arquivos. Sem database, broker ou platform stack.

Auto-hospedado

Sua infraestrutura

Mantenha Dagu server, workers, secrets, logs e execution dentro do seu proprio ambiente.

Dagu

Servidor totalmente gerenciado

Use um Dagu server dedicado operado pelo Dagu em uma instancia gVisor isolada no GKE.

Hibrido

Servidor gerenciado, execucao privada

Deixe o Dagu operar o server enquanto private workers executam Docker, private-network ou data-local steps.

Execução híbrida

Servidor Dagu gerenciado
Private worker via mTLS
Docker, private APIs, secrets e data-local work

Hybrid mantem o Dagu server gerenciado enquanto a execution que precisa da sua network, runtime ou data fica sob seu controle.

Funcionalidades de motor de workflow em produção

Funcionalidades de motor de workflow battle-tested permitem que você foque no valor central sem se preocupar com orquestração.

Desempenho

Execute milhares de workflows por dia em uma máquina, dependendo do hardware, do formato do workflow, da duração das etapas e das configurações de filas.

Execuções distribuídas

Use filas, limites de concorrência e workers distribuídos para controlar carga e espalhar jobs entre máquinas.

Notificações

Agendamentos recorrentes, catchup, execuções duráveis, timeouts, reexecuções, notificações e roteamento de incidentes para responsáveis.

Auth e RBAC

Gerenciamento de usuários, RBAC, workspaces, etapas de aprovação, gerenciamento de segredos integrado, chaves de API e webhooks.

Casos de uso reais

01

Automação de suporte ao cliente

Transforme requisições repetitivas em workflows de autoatendimento. As equipes de negócio os executam de forma independente. Os engenheiros ficam fora do processo.

02

Gestão de cron e scripts legados

Leve scripts shell, scripts Python, chamadas HTTP e jobs agendados existentes para o Dagu sem reescrevê-los.

03

Automação de Infraestrutura e Servidores

Coordene backups via SSH, limpezas, scripts de deploy, janelas de patch, pré-condições e hooks de ciclo de vida.

04

ETL e Operações de Dados

Execute consultas PostgreSQL ou SQLite, transferências S3, transformações jq, validações e sub-workflows reutilizáveis.

05

Workflows de Contêineres e Kubernetes

Componha workflows em que cada etapa pode executar uma imagem Docker, um Job Kubernetes, um comando shell ou uma validação.

06

Conversão de Mídia

Execute ffmpeg, extração de thumbnails, normalização de áudio, processamento de imagens e outros jobs pesados em workers.

07

Workflows IoT e Edge

Execute leitura de sensores, limpeza local, sincronização offline, health checks e manutenção em dispositivos pequenos.

08

Workflows Agent Harness

Execute qualquer harness para automatizar fluxos de trabalho de desenvolvimento específicos com contexto limpo e retry e failover automáticos.

Padrões comuns

Health Check
SSH Backup
Notify

Workflows de scripts privados

Transforme scripts privados, CLIs internos, actions reutilizáveis, ferramentas fixadas e artefatos em workflows que outras equipes podem solicitar ou executar com segurança.

  • 1Mantenha scripts e comandos existentes intactos
  • 2Exponha parâmetros estreitos em vez de amplo acesso à produção
  • 3Chame Dagu Actions versionadas com saídas tipadas
  • 4Guarde relatórios e logs como artefatos de primeira classe
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 workflow

O Dagu está equipado com funcionalidades de motor de workflow de nível produção.

Amado pelos desenvolvedores

Comentários reais da comunidade GitHub do Dagu.

Ultimamente venho procurando uma alternativa para workflows dinâmicos de agentes. Comecei pela linha do Temporal. O Temporal é poderoso, mas se você só quer encadear dinamicamente agentes, scripts, processamento de dados e tarefas de operações, o sistema inteiro às vezes parece pesado demais. Então encontrei o Dagu e senti que a direção estava certa. Roda com um único binário, os fluxos são escritos em YAML, tudo é gerenciado em arquivos locais, vem com interface web e não precisa subir DB nem broker extra. Também tem muitas ações embutidas: shell, Docker, K8s Jobs, SSH — está tudo lá. Uma boa surpresa foi o harness.run, que permite plugar CLIs de coding agents externos direto no fluxo. O que eu gosto: o fluxo em si é um arquivo, e estado, logs, novas tentativas, dependências e interface já vêm resolvidos. Para times pequenos, ambientes privados, automação pessoal e workflows de agentes, o caminho local-first do Dagu é realmente confortável.
Engenheiro na 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 gratuito. Os planos pagos incluem 3 ou 15 licenças de servidor.

Dagu continua open source. Minimum inclui 3 licenças de servidor self-host; Pro inclui 15. Cada licença cobre um servidor Dagu, com workers ilimitados.

Minimum
$50/ mês

3 licenças de servidor Dagu self-host

Anual$500 / ano
Pro
$150/ mês

15 licenças de servidor Dagu self-host

Anual$1,500 / ano

Crie uma licença self-host de teste de 14 dias em minutos

Sem cartao de credito

Iniciar teste gratuito da licença

Quickstart

Instale o Dagu com o assistente guiado e depois siga para o guia completo de instalação ou para o quickstart.

1

Instalar o comando dagu

Os instaladores por script sao o caminho recomendado. Homebrew, npm e Docker continuam disponiveis, mas fazem apenas a instalacao do binario ou do conteiner.

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

Conecte ferramentas de IA

Instale o skill do Dagu para autoria de workflows, ou conecte um cliente MCP a um servidor Dagu em execução.

Skill do Dagu
$gh skill install dagucloud/dagu dagu

Ajuda Claude Code, Codex, Gemini CLI e outras ferramentas de programação com IA a escrever YAML do Dagu.

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

Permite que clientes compatíveis com MCP leiam o estado do Dagu, visualizem mudanças e controlem execuções DAG.

O acesso MCP com OIDC/SSO está disponível para implantações empresariais. Entre em contato para discutir a configuração.

2

Próximos passos

O instalador guiado pode concluir a configuração inicial para você.

# O que o instalador pode fazer
Adicionar Dagu ao PATH
Configurar um serviço em segundo plano
Criar e verificar o primeiro administrador

Fale Conosco

Entre em contato para consultas empresariais, dúvidas ou feedback. Adoraríamos ouvir você.

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