Start the server
Install Docker, then run:http://localhost:3712 on the host. The .env file is required; edit it before starting if you need different settings.
The default image is ghcr.io/thesteau/evakage:latest, built from tested main commits. To pin a stable version, replace latest in the Compose file with a published vX.Y.Z tag.
Use HTTPS for other devices
Put Evakage behind a reverse proxy with a certificate trusted by your devices.- Set
TRUST_PROXY=1indeploy/.env. - Preserve the public
Hostheader or send it asX-Forwarded-Host, including any non-default port. - Keep the backend port accessible only through your proxy.
- Recreate the container after changing settings:
TRUST_PROXY and the forwarded host. See proxy configuration.
Default limits
These are configured caps, not measured performance guarantees. Adjust them for your host using configuration.
Temporary relay
The relay holds encrypted content for delivery. Older completed pending items may be removed when space is needed; active transfers are protected from capacity eviction. Online participants receive warnings and removal notices. Relay data lives at/tmp/evakage-blobs inside the container. Do not mount a persistent relay volume. A restart or container replacement erases it.
The server expires content and cleans up automatically. No cron job is needed. See relay lifetimes, including the self-chat exception.
Accounts
Accounts are enabled by default. The namedaccount-data volume holds usernames, password hashes, and saved settings at /home/node/evakage-accounts/accounts.sqlite.
To disable accounts, set ACCOUNTS_DB= in .env. Chat, files, and joining rooms still work; creating rooms requires an account.
Checking on it
Updates and backups
Update fromdeploy/:
-wal and -shm files, then start it again. Use SQLite’s backup API for a live backup.
Do not run docker compose down -v if you want to keep accounts.
To build from source instead, use development.