Installation
Docker is the quickest way to run it. Every release also includes a ready-to-run Windows build.
Docker
Create a docker-compose.yml next to your content:
services:
warden:
image: ghcr.io/hawkinslabdev/warden:latest
container_name: warden
ports:
- "8080:8080"
volumes:
- ./content:/app/content
- ./data:/app/datacontent/ is your .md files and an optional config.json. data/ is warden.db (check history) and keys/ (admin session keys). Both are bind mounts, so recreating the container does not delete them. Start it:
mkdir -p data && chown -R 1654:1654 data
docker compose up -dThe container runs as user 1654. If data/ is not writable by that user, startup exits with the exact chown command to run. On a host with SELinux (Fedora, RHEL), add :Z to the data volume line as well.
The status page is now at http://localhost:8080. See Docker Compose notes for reverse proxy and base path settings.
Windows and IIS
- Download the latest
*-Windows_x64.zipfrom Releases. - Extract it into your site folder, for example
C:\inetpub\warden. - Create an IIS site pointed at that folder, with the CLR version set to "No Managed Code".
- Install the .NET 11 Hosting Bundle.
- Start the site and browse to it.
The zip includes a web.config for in-process hosting. No edits are needed. Each release also includes a *-Linux_x64.zip; that install path isn't documented yet.
To change the port, hide drafts, or keep an API key out of your content folder, see environment variables.