Configuration Examples
Ready-to-use Docker Compose configurations for common deployment scenarios. Each example is self-contained and can be started with docker compose up -d.
Solo Mode
Directory: examples/solo-mode/
Standalone agent with no controller, database, or UI. Ideal for single-host setups.
cd examples/solo-mode
docker compose up -d
Demonstrates: WW_SCHEDULE, WW_AUTO_UPDATE, notification env vars (Telegram, ntfy, Slack).
Multi-host
Directory: examples/multi-host/
Controller + UI + PostgreSQL on the main host. Add remote agents on other Docker hosts.
cd examples/multi-host
# Set required secrets
export POSTGRES_PASSWORD=$(openssl rand -base64 32)
export ADMIN_PASSWORD=$(openssl rand -base64 16)
# ... see the README in the directory
docker compose up -d
Demonstrates: Controller deployment, agent registration, per-agent schedules.
Private Registry
Directory: examples/private-registry/
Agent configured with authentication for Docker Hub, GHCR, and custom registries.
Demonstrates: WW_DOCKER_USERNAME/PASSWORD, WW_REGISTRY_AUTH JSON array for multiple registries.
Reverse Proxy
Directory: examples/reverse-proxy/
Full WatchWarden stack behind Traefik with automatic Let's Encrypt TLS.
Demonstrates: Traefik labels, HTTPS, CORS_ORIGIN configuration, production deployment.
Update Groups
Directory: examples/update-groups/
Containers with dependency ordering: database updates first, then API, then frontend.
Demonstrates: com.watchwarden.group, com.watchwarden.priority, com.watchwarden.depends_on labels.
Running an Example
All examples follow the same pattern:
cd examples/<name>
cat README.md # Read the setup instructions
docker compose up -d # Start the stack
docker compose logs -f # Watch the logs
docker compose down # Tear down