docs / operations / configuration

Configuration

Environment-driven config — the knobs that matter.

All runtime config is environment-driven (OUROPASS_*). Core secrets arrive via env — never committed, never baked into the image. The annotated list lives in .env.example; a few knobs (addr, issuer URL, DB driver/DSN) are derived for you in docker-compose.yml.

VariablePurpose
DOMAINPublic domain Caddy provisions HTTPS for; becomes the token iss.
OUROPASS_TAGIssuer image tag from GHCR — pin a released version for reproducibility.
OUROPASS_OWNER_KEYSComma-separated owner stake-key hashes allowed to sign in to /admin as owner. Compute with issuer stake-hash <addr>.
OUROPASS_FIELD_KEYAES-256-GCM master key encrypting sensitive 🔒 fields at rest.
OUROPASS_SERVER_SALTHMAC salt for the pseudonymous sub claim.
OUROPASS_CHAIN_API_KEYOptional Koios API key — raises the free rate limit if you see 429s.

Note — there is no Telegram env. Bots are configured entirely in the admin console (/admin → Channels); each instance stores its own encrypted token in the database.

Found an issue in these docs? Edit this page on GitHub ↗