Skip to content

Deploy & run ​

Requirements ​

  • Node ^22.14 and pnpm 10
  • 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 start

The 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 start

Build 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.

Next ​

Built on Logto (MPL-2.0). Released under the Mozilla Public License 2.0.