Warden ships its Go backend and React dashboard as one container. SQLite is the default. Start locally with a persistent volume and create your admin account through the setup screen. This example pins Warden v0.9.0.
docker run -d --name warden \ -p 127.0.0.1:9090:9090 \ -v warden-data:/data \ ghcr.io/projecthelena/warden:v0.9.0Open http://localhost:9090, complete setup and verify your first alert. For an internet-facing instance, put Warden behind HTTPS and set COOKIE_SECURE=true. Set TRUST_PROXY=true only when a trusted reverse proxy supplies the client address.
Create the first monitor
Add an HTTP monitor for a website or API, choose its group and interval, then adjust timeout, retries, headers or accepted statuses only when needed. The first result appears within seconds.
Warden also supports TCP, ping, DNS and Docker-container checks. Monitoring Docker Engine requires access to its API. Mounting /var/run/docker.sock grants powerful host control even with a read-only mount; use a restricted socket proxy in production. The monitor documentation explains the security boundary.
Production basics
Use a consistent SQLite backup or stop the instance before copying its database; copying a live database file alone may omit WAL data. Keep a pinned image version, test restore, and monitor Warden itself from an independent observer. PostgreSQL is available when you prefer an external database, but it does not make a single Warden process highly available by itself.
The complete deployment variables and Compose example live in the installation guide.