Auto-hébergé · Binaire unique · Zéro dépendance

Le moteur de workflows qui ne se transforme pas en projet SRE.

Dagu est une alternative légère à Airflow ou Cron, dotée d'une interface web. Définissez vos DAG dans un format YAML déclaratif simple. Il prend en charge les commandes shell, les conteneurs Docker, les jobs k8s, les commandes distantes via SSH et bien plus. Il a été conçu pour être facile à utiliser, autonome et sans aucun code, ce qui le rend idéal pour les petites équipes. Conçu pour les développeurs qui veulent une orchestration de workflows puissante sans la surcharge opérationnelle.

dagu start-all --port 8080
Installer la commande dagu
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash

Autonome

Les workflows sont basés sur des fichiers. Un binaire, sans base de données ni broker externe. Prêt pour les environnements air-gapped.

CLI-orienté

Scripts shell, jobs Python, SQL, dbt, DuckDB, containers et runbooks s'exécutent comme étapes de pipeline sans modification. Pas de nouveau framework nécessaire.

Déclaratif

Définissez des workflows dans un format YAML simple et déclaratif. Vous pouvez utiliser n'importe quel script ou outil existant sans modification.

Intégration MCP et commandes CLI d’agents externes (Agent Harness)

Utilisez des clients compatibles MCP pour créer, améliorer, déboguer et exécuter des workflows, et lancez des étapes Agent Harness dans les workflows. Les secrets sont injectés à l’exécution et masqués dans les logs; ils ne sont pas transmis aux clients MCP. Chaque action est journalisée pour la conformité.

Configurer via MCP →
workflow.yaml
# Runbook de production contrôlé avec entrées typées et revue
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

Serveur MCP intégré pour les opérations de workflow sans exposer les secrets

Les clients compatibles MCP autorisés peuvent inspecter et demander des opérations DAG via Dagu. Les systèmes privés restent derrière une frontière de sécurité: Dagu injecte les identifiants à l’exécution et ne les transmet pas au client MCP.

Client MCP

Demande une opération approuvée sans recevoir d’identifiants privés.

Demande

Dagu MCP

Applique un contrôle d’accès granulaire avant toute exécution de workflow.

Autorisation

DAGs

Exécute le script, conteneur, SQL, HTTP, SSH ou sous-workflow que vous approuvez déjà.

Exécution

Systèmes privés

Les outils et données de production restent derrière Dagu, pas dans le contexte client.

ShellSQLSSH

Les clients compatibles MCP demandent des actions de workflow nommées via Dagu MCP au lieu de recevoir des identifiants shell, base de données ou API.

Dagu vérifie les accès, injecte les secrets uniquement à l’exécution et peut suspendre les workflows sensibles pour approbation humaine.

Chaque run conserve logs, sorties, statut, historique et preuves d’audit pour les humains et les clients MCP.

Accès limité

N’expose que les actions que chaque client MCP est autorisé à lancer.

Secrets gérés

Injecte les identifiants à l’exécution sans les transmettre au client MCP.

Audit trail

Suit qui ou quoi a demandé chaque workflow et avec quelles entrées.

Validations

Suspendez les opérations sensibles pour revue humaine.

Résultats sûrs

Retourne le statut et les sorties sans ouvrir d’accès brut au système.

L'agent reçoit un outil borné. Vos systèmes privés gardent les secrets, logs, permissions et historique opérationnel dans Dagu.

Modeles de deploiement

Exécutez une instance auto-hébergée, utilisez le serveur géré Dagu, ou combinez le plan de contrôle cloud avec des workers privés dans votre infrastructure.

Demarrez sur une machine. Passez au self-hosted, managed ou hybrid.

Local

Serveur unique

Executez `dagu start-all` sur une machine avec un etat local sur fichiers. Aucune base, aucun broker, aucun platform stack requis.

Auto-heberge

Votre infrastructure

Gardez le Dagu server, les workers, les secrets, les logs et l'execution dans votre propre environnement.

Dagu

Serveur entierement gere

Utilisez un Dagu server dedie opere par Dagu dans une instance gVisor isolee sur GKE.

Hybride

Serveur gere, execution privee

Laissez Dagu operer le serveur pendant que des private workers executent les steps Docker, reseau prive ou data-local.

Exécution hybride

Serveur Dagu managé
Private worker via mTLS
Docker, private APIs, secrets et travail data-local

Hybrid garde le Dagu server managed pendant que l'execution qui a besoin de votre reseau, runtime ou data reste sous votre controle.

Fonctionnalités de moteur de workflow en production

Des fonctionnalités de moteur de workflow éprouvées vous permettent de vous concentrer sur la valeur essentielle sans vous soucier de l'orchestration.

Performance

Exécutez des milliers de workflows par jour sur une machine, selon le matériel, la forme du workflow, la durée des étapes et les paramètres de files.

Exécution distribuée

Utilisez files d'attente, limites de concurrence et workers distribués pour contrôler la charge et répartir les jobs entre machines.

Notifications

Planifications récurrentes, rattrapage, exécutions durables, délais d'attente, relances, notifications et routage des incidents vers les responsables.

Auth et RBAC

Gestion des utilisateurs, RBAC, espaces de travail, étapes d'approbation, gestion des secrets intégrée, clés API et webhooks.

Cas d'usage réels

01

Automatisation du support client

Transformez les demandes récurrentes en workflows en libre-service. Les équipes métier les exécutent de manière autonome. Les ingénieurs restent en dehors.

02

Gestion de cron et scripts legacy

Amenez vos scripts shell, scripts Python, appels HTTP et jobs planifiés existants dans Dagu sans les réécrire.

03

Automatisation Infrastructure et Serveurs

Coordonnez sauvegardes SSH, nettoyages, scripts de déploiement, fenêtres de patch, préconditions et hooks de cycle de vie.

04

ETL et Opérations de Données

Exécutez requêtes PostgreSQL ou SQLite, transferts S3, transformations jq, validations et sous-workflows réutilisables.

05

Workflows Conteneurs et Kubernetes

Composez des workflows où chaque étape peut lancer une image Docker, un Job Kubernetes, une commande shell ou une validation.

06

Conversion Média

Exécutez ffmpeg, extraction de vignettes, normalisation audio, traitement d’images et autres jobs lourds sur des workers.

07

Workflows IoT et Edge

Exécutez collecte capteur, nettoyage local, synchronisation hors ligne, health checks et maintenance sur de petits appareils.

08

Workflows Agent Harness

Exécutez n'importe quel harness pour automatiser certains workflows de développement avec un contexte propre et des mécanismes automatiques de retry et de failover.

Patterns courants

Health Check
SSH Backup
Notify

Workflows de scripts privés

Transformez scripts privés, CLIs internes, actions réutilisables, outils épinglés et artefacts en workflows que d’autres équipes peuvent demander ou exécuter en sécurité.

  • 1Gardez les scripts et commandes existants intacts
  • 2Exposez des paramètres étroits au lieu d’un accès production large
  • 3Appelez des Dagu Actions versionnées avec sorties typées
  • 4Stockez rapports et logs comme artefacts de premier ordre
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]

Fonctionnalités de workflow complètes

Dagu est équipé de fonctionnalités de moteur de workflow de niveau production.

Plébiscité par les développeurs

Vrais commentaires de la communauté GitHub Dagu.

Ces derniers temps, je cherchais une alternative pour des workflows d'agents dynamiques. J'ai d'abord suivi la piste Temporal. Temporal est puissant, mais si on veut seulement enchaîner dynamiquement des agents, des scripts, du traitement de données et des tâches d'exploitation, l'ensemble peut sembler un peu lourd. Puis je suis tombé sur Dagu, et la direction m'a paru juste. Un seul binaire suffit, les workflows s'écrivent en YAML, tout est géré en fichiers locaux, une interface web est incluse, et pas besoin de monter une DB ou un broker en plus. Les actions intégrées sont nombreuses : shell, Docker, K8s Jobs, SSH — tout y est. Belle surprise : harness.run, qui permet de brancher des CLI de coding agents externes directement dans le workflow. Ce que j'aime : le workflow est lui-même un fichier, et l'état, les logs, les reprises, les dépendances et l'interface sont pris en charge pour vous. Pour les petites équipes, les environnements privés, l'automatisation personnelle et les workflows d'agents, l'approche local-first de Dagu est franchement confortable.
Ingénieur chez 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 gratuit. Les plans payants incluent 3 ou 15 licences serveur.

Dagu reste open source. Minimum inclut 3 licences serveur self-host ; Pro en inclut 15. Chaque licence couvre un serveur Dagu, avec workers illimités.

Minimum
$50/ mois

3 licences serveur Dagu self-host

Annuel$500 / an
Pro
$150/ mois

15 licences serveur Dagu self-host

Annuel$1,500 / an

Créer une licence d’essai self-host de 14 jours en quelques minutes

Sans carte bancaire

Démarrer l’essai gratuit de licence

Quickstart

Installez Dagu avec l’assistant guidé, puis continuez avec le guide d’installation complet ou le quickstart.

1

Installer la commande dagu

Les scripts d'installation sont le chemin recommande. Homebrew, npm et Docker restent disponibles, mais ils n'installent que le binaire ou le conteneur.

Mac/Linux Terminal
$curl -fsSL https://raw.githubusercontent.com/dagucloud/dagu/main/scripts/installer.sh | bash
✓ Assistant d’installation prêt
Optionnel

Connecter les outils IA

Installez le skill Dagu pour créer des workflows, ou connectez un client MCP à un serveur Dagu en cours d'exécution.

Skill Dagu
$gh skill install dagucloud/dagu dagu

Aide Claude Code, Codex, Gemini CLI et d'autres outils de codage IA à écrire du YAML Dagu.

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

Permet aux clients compatibles MCP de lire l'état de Dagu, de prévisualiser les changements et de contrôler les exécutions DAG.

L'accès MCP avec OIDC/SSO est disponible pour les déploiements entreprise. Contactez-nous pour en discuter.

2

Suite

L’installateur guidé peut terminer la configuration du premier lancement pour vous.

# Ce que l’installateur peut faire
Ajouter Dagu au PATH
Configurer un service d’arrière-plan
Créer et vérifier le premier administrateur

Nous contacter

N'hésitez pas à nous contacter pour des demandes professionnelles, des questions ou des retours. Nous serions ravis d'avoir de vos nouvelles.

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