Docker
See Docker Images to choose between the standard, alpine, and dev tags.
Local Evaluation
This example is for local evaluation on a machine you control. It is intentionally minimal and should not be treated as an internet-facing production deployment.
docker run -d \
--name dagu \
-p 8525:8080 \
-v dagu-data:/var/lib/dagu \
ghcr.io/dagucloud/dagu:latestProduction-Minded Example
For a self-hosted production deployment, keep authentication enabled, expose the port only to a trusted reverse proxy or private network, and persist Dagu state:
docker run -d \
--name dagu \
-p 127.0.0.1:8080:8080 \
-v dagu-data:/var/lib/dagu \
-e DAGU_HOST=0.0.0.0 \
-e DAGU_AUTH_MODE=builtin \
-e DAGU_SERVER_METRICS=private \
-e DAGU_AUTH_BUILTIN_INITIAL_ADMIN_USERNAME=admin \
-e DAGU_AUTH_BUILTIN_INITIAL_ADMIN_PASSWORD='replace-with-a-strong-password' \
ghcr.io/dagucloud/dagu:latestRecommended follow-up controls:
- Terminate TLS at Dagu itself or at a trusted reverse proxy
- Keep
terminal.enableddisabled unless the instance is tightly controlled - Prefer API keys over shared basic-auth credentials for automation
- Restrict who can edit DAGs if the instance is meant to execute reviewed workflows only
With Custom DAGs Directory
docker run -d \
--name dagu \
-p 8525:8080 \
-v ./dags:/var/lib/dagu/dags \
-v dagu-data:/var/lib/dagu \
-e DAGU_HOST=0.0.0.0 \
-e DAGU_PORT=8080 \
ghcr.io/dagucloud/dagu:latestRun Container Steps
docker run -d \
--name dagu \
-p 8525:8080 \
-v dagu-data:/var/lib/dagu \
-v /var/run/docker.sock:/var/run/docker.sock \
--user 0:0 \
--entrypoint /usr/local/bin/tini \
ghcr.io/dagucloud/dagu:latest \
-g -- dagu start-allThe entrypoint override keeps Tini as PID 1 while running Dagu as root. Mounting /var/run/docker.sock gives workflows control of the host Docker daemon. Use this only for trusted workflows on an authenticated server. See the container-step setup for the execution model and remote-daemon alternative.
Environment Variables
docker run -d \
--name dagu \
-p 8525:8080 \
-v dagu-data:/var/lib/dagu \
-e DAGU_HOST=0.0.0.0 \
-e DAGU_PORT=8080 \
-e DAGU_TZ=America/New_York \
-e DAGU_AUTH_MODE=builtin \
-e DAGU_AUTH_BUILTIN_INITIAL_ADMIN_USERNAME=admin \
-e DAGU_AUTH_BUILTIN_INITIAL_ADMIN_PASSWORD=replace-with-a-strong-password \
ghcr.io/dagucloud/dagu:latestContainer Management
# View logs
docker logs -f dagu
# Stop container
docker stop dagu
# Start container
docker start dagu
# Remove container
docker rm -f daguAccess
Open http://localhost:8525 in your browser, or use whichever host port you mapped with -p.

