Adding Dagu stack. #6

Merged
gitea-sonarqube-bot merged 1 commits from dagu-new-migrate-from-rinoa_2026-05-10T16-43-22 into main 2026-05-10 16:53:47 -04:00
+83
View File
@@ -16,6 +16,87 @@ services:
- beszel-agent-data:/var/lib/beszel-agent
- /var/run/docker.sock:/var/run/docker.sock:ro
- /dev/mmcblk0:/extra-filesystems/dev/mmcblk0:ro
# Dagu control-plane: Coordinator (gRPC) for distributed workers
dagu-coordinator:
container_name: dagu-coordinator
image: ghcr.io/dagucloud/dagu:latest
command: ["dagu", "coordinator"]
environment:
# Peer config: insecure by default; set TLS envs if needed
DAGU_PEER_INSECURE: true
# Bind and advertise on container IP/DNS so workers can reach it
DAGU_COORDINATOR_HOST: dagu-coordinator
DAGU_COORDINATOR_PORT: 50055
ports:
- "50055:50055"
volumes:
- dagu-data:/var/lib/dagu
- ${ARANEA_DOCKER_DIR}/dagu/dags:/var/lib/dagu/dags:ro
# Dagu scheduler service (reads DAGs and enqueues runs)
dagu-scheduler:
container_name: dagu-scheduler
image: ghcr.io/dagucloud/dagu:latest
command: ["dagu", "scheduler"]
environment:
- DAGU_COORDINATOR_HOST=dagu-coordinator
- DAGU_COORDINATOR_PORT=50055
- DAGU_SCHEDULER_PORT=8090
- DAGU_DAGS_DIR=/var/lib/dagu/dags
# Optional: set timezone, logging, etc
# - DAGU_TZ=UTC
# - DAGU_LOG_FORMAT=json
depends_on:
- dagu-coordinator
ports:
- "8090:8090" # Scheduler health
volumes:
- dagu-data:/var/lib/dagu
- ${ARANEA_DOCKER_DIR}/dagu/dags:/var/lib/dagu/dags:ro
# Dagu web UI / API server
dagu-server:
container_name: dagu-server
image: ghcr.io/dagucloud/dagu:latest
command: ["dagu", "server"]
environment:
DAGU_COORDINATOR_HOST: dagu-coordinator
DAGU_COORDINATOR_PORT: 50055
DAGU_HOST: 0.0.0.0
DAGU_PORT: 8080
DAGU_DAGS_DIR: /var/lib/dagu/dags
# Builtin authentication (RBAC) CHANGE TOKEN_SECRET IN PRODUCTION
DAGU_AUTH_MODE: builtin
# Token secret: auto-generated if not set (persisted to {dataDir}/auth/token_secret)
# DAGU_AUTH_TOKEN_SECRET: your-secure-random-secret
# First admin account created via /setup page on first browser visit
# DAGU_AUTH_TOKEN_TTL: 24h # default is 24h
# If behind a proxy, set base path
# DAGU_BASE_PATH: /dagu
depends_on:
- dagu-scheduler
- dagu-coordinator
ports:
- "8080:8080"
volumes:
- dagu-data:/var/lib/dagu
- ${ARANEA_DOCKER_DIR}/dagu/dags:/var/lib/dagu/dags:ro
# Dagu worker (polls coordinator and executes tasks)
dagu-worker:
container_name: dagu-worker
image: ghcr.io/dagucloud/dagu:latest
command: ["dagu", "worker"]
environment:
DAGU_COORDINATOR_HOST: dagu-coordinator
DAGU_COORDINATOR_PORT: 50055
# Optional worker tuning and labels
# - DAGU_WORKER_MAX_ACTIVE_RUNS=100
# - DAGU_WORKER_LABELS=region=us-east-1,instance-type=m5.large
# OTel: point DAGs to collector via per-DAG otel.endpoint: "otel-collector:4317"
depends_on:
- dagu-coordinator
volumes:
- dagu-data:/var/lib/dagu
# Workers typically don't need DAG definitions, but sharing is harmless
- ${ARANEA_DOCKER_DIR}/dagu/dags:/var/lib/dagu/dags:ro
docker-socket-proxy:
container_name: dockerproxy
environment:
@@ -84,3 +165,5 @@ services:
volumes:
beszel-agent-data:
name: beszel-agent-data
dagu-data:
name: dagu-data