Skip to content

v1.15.0

Compare
Choose a tag to compare
@yottahmd yottahmd released this 06 Dec 07:32
· 87 commits to main since this release
3bcdca9

What's Changed

  • [#709] feat: Add skipIfSuccessful by @yohamta in #712
  • fix: incorrect paths in config docs by @jonnochoo in #713
  • feat: Support configurable base path for server by @chrishoage in #714
  • docs: added docs for CRON_TZ by @jonnochoo in #716
  • Improve Dockerfile to reduce amount of config needed in docker-compose by @chrishoage in #723
  • chore: add support for devcontainers by @jonnochoo in #728
  • add support for default page by @jonnochoo in #729
  • [#730] Add Remote-Node support by @yohamta in #731
  • [#732] Upgrade to Go 1.23 and Golanci-lint 1.62 by @yohamta in #733

New Features

Remote Node support

Dagu now supports managing multiple Dagu servers from a single UI through its remote node feature. This allows you to:

  • Monitor and manage DAGs across different environments (dev, staging, prod)
  • Access multiple Dagu instances from a centralized UI
  • Switch between nodes easily through the UI dropdown
  • See Remote Node Configuration for more details.

Configuration:
Remote nodes can be configured by creating admin.yaml in $HOME/.config/dagu/:

# admin.yaml
remoteNodes:
    - name: "prod" # Name of the remote node
      apiBaseUrl: "https://prod.example.com/api/v1" # Base URL of the remote node API
    - name: "staging"
      apiBaseUrl: "https://staging.example.com/api/v1"

Timezone config in schedule

You can specify a cron expression to run within a specific timezone.

schedule: "CRON_TZ=Asia/Tokyo 5 9 * * *" # Run at 09:05 in Tokyo
steps:
  - name: scheduled job
    command: job.sh

skipIfSuccessful

skipIfSuccessful. When set to true, Dagu will automatically check the last successful run time against the defined schedule. If the DAG has already run successfully since the last scheduled time, the current run will be skipped.

schedule: "0 */4 * * *"   # Run every 4 hours
skipIfSuccessful: true    # Skip if already succeeded since last schedule (e.g., manually triggered)
steps:
  - name: resource-intensive-job
    command: process_data.sh

New Contributors

Full Changelog: v1.14.8...v1.15.0