Configurations
Deploy, configure, and operate Dagu.
Deployment Model
These pages primarily document self-hosted Dagu. Managed server includes managed authentication, audit logging, and related platform features by default, so those capabilities usually do not need manual config.yaml setup there. See the pricing page for current self-host and cloud availability.
Configuration Methods
Precedence order:
- Command-line flags (highest)
- Environment variables (
DAGU_prefix) - Configuration file (lowest)
bash
# Port 9000 wins
dagu start-all --port 9000
# Despite env var
export DAGU_PORT=8080
# And config file
port: 7000Quick Start
Development
bash
# Zero config
dagu start-allProduction
yaml
# ~/.config/dagu/config.yaml
host: 0.0.0.0
port: 8080
auth:
mode: basic
basic:
username: admin
password: ${ADMIN_PASSWORD}
paths:
dags_dir: /opt/dagu/workflows
log_dir: /var/log/daguDocker
bash
docker run -d \
-e DAGU_HOST=0.0.0.0 \
-e DAGU_AUTH_BASIC_USERNAME=admin \
-e DAGU_AUTH_BASIC_PASSWORD=secret \
-p 8080:8080 \
ghcr.io/dagucloud/dagu:latestTopics
- Config file, environment variables, and precedence
DAGU_HOMEand path defaults- Persistent state directory configuration
- Host, port, authentication
- TLS/HTTPS setup
- UI customization
- Shared DAG defaults
- Lifecycle handlers
- Email notifications
- Reusable Slack, email, Telegram, and webhook channels
- Global and workspace notification rules
- License requirements for team notification routing
- Reusable PagerDuty and SolarWinds Incident Response connections
- Global, workspace, and DAG incident routes
- License requirements for team incident routing
- Running as a service
- Monitoring and metrics
- Logging and alerting
- Configure remote instances
- Multi-node setup
- Remote access without port forwarding
- Tailscale integration
- Coordinator and worker setup
- Service registry configuration
- Worker labels and routing
- All options
- Environment variables
- Examples
Common Configurations
Production
yaml
host: 127.0.0.1
port: 8080
tls:
cert_file: /etc/ssl/cert.pem
key_file: /etc/ssl/key.pem
auth:
mode: basic
basic:
username: admin
password: ${ADMIN_PASSWORD}
permissions:
write_dags: false # Read-only
run_dags: true
ui:
navbar_color: "#FF0000"
navbar_title: "Production"Development
yaml
host: 127.0.0.1
port: 8080
debug: true
auth:
mode: noneEnvironment Variables
bash
# Server
export DAGU_HOST=0.0.0.0
export DAGU_PORT=8080
# Paths
export DAGU_DAGS_DIR=/opt/workflows
export DAGU_DOCS_DIR=/opt/workflows/docs
export DAGU_LOG_DIR=/var/log/dagu
# Auth
export DAGU_AUTH_BASIC_USERNAME=admin
export DAGU_AUTH_BASIC_PASSWORD=secret
dagu start-allSee Also
- Set up authentication for production
- Understand configuration precedence before mixing flags, environment variables, and
config.yaml - Configure base defaults for shared DAG settings
- Configure monitoring for visibility
- Set up distributed execution for scaling
- Review all options for fine-tuning
