Welcome to Dagu
Dagu Mascot - Squirrel Pilot

Workflow engine alternative to Cron and Airflow without operational overhead

Lightweight Workflow Engine Alternative to Airflow

Define workflows in simple YAML, execute them anywhere with a single binary, compose complex pipelines from reusable sub-workflows, and distribute tasks across workers. All this without requiring databases, message brokers, or code changes.

Terminal
# Get started instantly
$curl -L https://...installer.sh | sh
✓ dagu installed successfully
$dagustart-all
✓ Web UI ready at http://localhost:8080
Key Strengths

No Code

Declarative YAML with powerful features. Language agnostic.

Portable

Single binary runs anywhere. No dependencies.

Simple

No databases, message brokers, or complex infrastructure.

workflow.yaml

Compose anything in YAML

Local scripts, remote commands, containers. All unified in simple, readable workflows.

workflow.yaml
schedule: "0 0 * * *" # Runs at 00:00 everyday

steps:
  - name: local script
    command: python data_extract.py

  - name: remote command
    executor: ssh
    command: backup_database.sh

  - name: docker container
    executor: docker
    command: python:3.11 python process.py

Air-Gapped Ready

Works offline and in isolated environments. No database, no external services required.

Universal Execution

Run anything: local scripts, remote SSH commands, Docker containers, HTTP calls.

Instant Setup

Download, run, done. Start orchestrating workflows in minutes with sensible defaults.

Quickstart Guide
1

Install Dagu

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

Create a workflow

hello.yaml
$cat > hello.yaml << EOF
# Your first workflow
steps:
- echo "Hello from dagu!"
- ls -la
EOF
✓ hello.yaml created
3

Run it

Terminal
$dagu start hello.yaml
Running hello...
✓ hello finished
Hello from dagu!
Running list...
✓ list finished
-rw-r--r-- hello.yaml
✓ Workflow completed successfully
4

Explore the Web UI

Dagu includes a modern web interface for monitoring and managing workflows.

Terminal
$dagu start-all
✓ Server started at http://localhost:8080
Web UI: Real-time monitoring, visual DAG view, execution history
System Architecture

Architecture Overview

A simple, layered architecture with no external dependencies

Interfaces

CLI

dagu start workflow.yaml

Web UI

Real-time monitoring

REST API

Full programmatic control

Core Components

Scheduler

Cron expressions

Timezone aware

Agent, Worker

Separated process

Distributed execution

Executor

Shell, Docker, SSH

HTTP, jq

File-Based Storage

Workflows

Simple YAML format

Logs

Structured output

Auto cleaned-up

History

Execution history

JSON format

GitHub

Join our community!

Share ideas, request features, showcase use cases, report bugs, or get help from the community