Skip to main content

Getting Started

Project Status

WatchWarden is in early-adopter / beta stage. The core features are implemented, tested (380+ automated tests), and security-reviewed — but the project has not yet seen extensive large-scale production use in diverse environments. Please test in your own staging environment before relying on it for critical workloads. See Design Decisions for background on development approach.

WatchWarden runs in two modes. Pick the one that fits your setup.

No controller, no database, no UI. Just mount the Docker socket and go.

docker run -d \
--name watchwarden \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WW_SCHEDULE="@every 6h" \
-e WW_AUTO_UPDATE=true \
--restart unless-stopped \
ghcr.io/watchwarden-labs/watchwarden-agent:latest

Add Telegram notifications:

docker run -d \
--name watchwarden \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WW_SCHEDULE="@every 6h" \
-e WW_AUTO_UPDATE=true \
-e WW_TELEGRAM_TOKEN=123456:ABC-DEF \
-e WW_TELEGRAM_CHAT_ID=-100123456 \
--restart unless-stopped \
ghcr.io/watchwarden-labs/watchwarden-agent:latest

With ntfy notifications:

docker run -d \
--name watchwarden \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WW_SCHEDULE="@every 6h" \
-e WW_AUTO_UPDATE=true \
-e WW_NTFY_URL=https://ntfy.sh \
-e WW_NTFY_TOPIC=my-updates \
--restart unless-stopped \
ghcr.io/watchwarden-labs/watchwarden-agent:latest

Key Solo Mode variables:

VariableDefaultDescription
WW_SCHEDULE@every 24hCheck interval (@every 6h) or cron (0 4 * * *)
WW_AUTO_UPDATEfalseAutomatically apply updates
WW_UPDATE_STRATEGYrecreaterecreate or start-first (blue-green, auto-falls back for port conflicts)
WW_PRUNEfalseRemove old images after update

See Agent Configuration for the full reference.

What's Next?