diff --git a/blueprints/dagu/docker-compose.yml b/blueprints/dagu/docker-compose.yml new file mode 100644 index 00000000..4fee20eb --- /dev/null +++ b/blueprints/dagu/docker-compose.yml @@ -0,0 +1,25 @@ +# Access the Dagu Web UI at the assigned domain. +# Sign in with the basic auth credentials from your .env file (default user: admin). +# Place your DAG definitions (YAML) in the dags directory via the Web UI or the API. + +version: "3.8" + +services: + dagu: + image: ghcr.io/dagucloud/dagu:2.10.7 + command: dagu start-all + restart: unless-stopped + expose: + - 8080 + volumes: + - dagu-data:/var/lib/dagu + environment: + # Dagu binds to 127.0.0.1 by default; 0.0.0.0 is required to reach it + - DAGU_HOST=0.0.0.0 + - DAGU_PORT=8080 + - DAGU_AUTH_MODE=basic + - DAGU_AUTH_BASIC_USERNAME=${ADMIN_USERNAME} + - DAGU_AUTH_BASIC_PASSWORD=${ADMIN_PASSWORD} + +volumes: + dagu-data: {} diff --git a/blueprints/dagu/logo.png b/blueprints/dagu/logo.png new file mode 100644 index 00000000..1aa26d2c Binary files /dev/null and b/blueprints/dagu/logo.png differ diff --git a/blueprints/dagu/meta.json b/blueprints/dagu/meta.json new file mode 100644 index 00000000..5b40f222 --- /dev/null +++ b/blueprints/dagu/meta.json @@ -0,0 +1,19 @@ +{ + "id": "dagu", + "name": "Dagu", + "version": "2.10.7", + "description": "Dagu is a self-contained workflow engine with a Web UI. Schedule and orchestrate jobs as DAGs defined in declarative YAML, with no DBMS required.", + "logo": "logo.png", + "links": { + "github": "https://github.com/dagucloud/dagu", + "website": "https://dagu.sh", + "docs": "https://docs.dagu.sh" + }, + "tags": [ + "workflow", + "automation", + "scheduler", + "cron", + "devops" + ] +} diff --git a/blueprints/dagu/template.toml b/blueprints/dagu/template.toml new file mode 100644 index 00000000..5b618529 --- /dev/null +++ b/blueprints/dagu/template.toml @@ -0,0 +1,15 @@ +[variables] +main_domain = "${domain}" +admin_password = "${password:32}" + +[config] +mounts = [] + +[[config.domains]] +serviceName = "dagu" +port = 8080 +host = "${main_domain}" + +[config.env] +ADMIN_USERNAME = "admin" +ADMIN_PASSWORD = "${admin_password}"