Skip to content

Docker Compose

Minimal Setup

yaml
# compose.yaml
services:
  dagu:
    image: ghcr.io/dagu-org/dagu:latest
    container_name: dagu-dev
    hostname: dagu-dev

    # Expose the web UI on localhost:8080
    ports:
      - "8525:8080"

    entrypoint: [] # Override any default entrypoint for Docker in Docker (DinD) support

    # Default command: run all-in-one (server + scheduler + coordinator in-process)
    # You may override this at runtime, e.g.:
    #   docker compose -f compose.dev.yaml run --rm dagu dagu server
    command: ["dagu", "start-all"]

    # Recommended dev environment variables
    environment:
      # Frontend server
      - DAGU_HOST=0.0.0.0 # Bind inside container
      - DAGU_PORT=8080 # Web/UI port inside container
      - DAGU_DEBUG=true # More verbose logs during dev
      # Paths
      - DAGU_DAGS_DIR=/var/lib/dagu/dags
      # Timezone / base path (optional)
      # - DAGU_TZ=UTC
      # - DAGU_BASE_PATH=/dagu
      # User and Group IDs (optional, for file permissions)
      # - PUID=1000 # optional. default is 1000
      # - PGID=1000 # optional. default is 1000

    # Dev-friendly mounts (persistent data + read-only DAGs)
    volumes:
      - dagu-data:/var/lib/dagu
      - ./dags:/var/lib/dagu/dags:ro
      # For Docker in Docker (DinD) support, mount the host Docker socket:
      - /var/run/docker.sock:/var/run/docker.sock

    # Quick command presets (uncomment any one to run specific component):
    # command: ["dagu", "server"]
    # command: ["dagu", "scheduler"]
    # command: ["dagu", "coordinator"]
    # command: ["dagu", "worker"]

    # Example: enable basic auth in dev (uncomment and set values)
    # environment:
    #   - DAGU_AUTH_BASIC_USERNAME=dev
    #   - DAGU_AUTH_BASIC_PASSWORD=devpass

    user: "0:0" # Run as root for Docker in Docker (DinD) support

volumes:
  dagu-data:
    driver: local

Start with:

bash
docker compose up -d

Commands

bash
# Start services
docker compose up -d

# View logs
docker compose logs -f

# Stop services
docker compose down

# Stop and remove volumes
docker compose down -v

# Scale workers
docker compose up -d --scale dagu-worker=3

Access

Open http://localhost:8525 in your browser.

Released under the MIT License.