Running Warden with Docker
The published image runs on any host with Docker. Start with a docker-compose.yml:
services:
warden:
image: ghcr.io/hawkinslabdev/warden:latest
container_name: warden
ports:
- "8080:8080"
volumes:
- ./content:/app/content:ro,Z
- ./data:/app/datacontent/ is your pages and config. data/ is warden.db (check history) and keys/ (admin session keys). Both are bind mounts, so recreating the container doesn't delete them. Start it:
mkdir -p data && chown -R 1654:1654 data
docker compose up -dThe container runs as UID 1654, so data/ must be writable by that user. Otherwise startup fails with SQLite Error 8: attempt to write a readonly database.
The status page is now at http://localhost:8080.
TIP
content/ is a volume. A new Markdown file appears as soon as it is saved, without a restart.
Behind a reverse proxy, set Docs:BasePath (or --base-path for a static export) so internal links resolve under your chosen path. The installation guide covers first-time setup, and environment variables lists what the compose file accepts.