Appearance
Deploy & run
Requirements
- Node
^22.14and pnpm10 - PostgreSQL
14+
Run locally
bash
pnpm i
pnpm -r build
cd packages/core
DB_URL=postgres://user:pass@localhost:5432/authara \
ENDPOINT=http://localhost:3001 \
ADMIN_ENDPOINT=http://localhost:3002 \
npm startThe first start seeds the database and applies migrations, then serves:
- the OIDC issuer + sign-in experience on
:3001 - the admin console on
:3002
Open the admin console, complete the welcome flow to create the first admin, and you're in.
Deploy (production)
The production build is the root Dockerfile (built on Coolify). The container entrypoint runs:
db seed --swe → db alt deploy latest → npm startBuild with ENTERPRISE_OSS=1 (the default) to unlock white-label branding.
Minimum environment
DB_URL=postgres://…
ENDPOINT=https://sso.example.com # issuer + sign-in UI
ADMIN_ENDPOINT=https://sso.example.com # admin console + Management API
TRUST_PROXY_HEADER=1 # ONLY behind a TLS proxy that strips inbound X-Forwarded-*See .env.example in the repository for the full list.
Run behind a trusted proxy
TRUST_PROXY_HEADER=1 makes Authara trust X-Forwarded-Host/-Proto. Only enable it when the container ports are reachable exclusively through your TLS proxy — otherwise the issuer/host can be spoofed.
Health & scaling
- The app is stateless apart from the database and (optional) Redis cache — scale horizontally behind your proxy.
- Run database migrations as a single pre-deploy step (not on every replica boot) to avoid races.