.env.example to .env and fill in the values before starting the server. When DATABASE_URL is not set, the app uses an in-memory store — no database is required for local development or demos.
Core server
Authentication — identity provider
AUTH_PROVIDER selects which upstream identity provider POST /auth/exchange verifies tokens against. It is pluggable — workos (the default, and what the Causeloop frontend uses via @workos-inc/authkit-nextjs), auth0, okta, oidc (generic), or none (no external provider — the dev fallback below).
With no
AUTH_PROVIDER configured (or AUTH_PROVIDER=none), /auth/exchange falls back to a seed-user dev path — but only when ENVIRONMENT is not production. In production with no provider configured, exchange returns 503. See Local development for the dev-token flow.LLM providers
Leave both API key variables empty to run in offline mock mode — the mock provider returns plausible stub responses and is suitable for local development and tests.Database
Encryption
Model provisioning & inference
Flags gating the provisioning portal, model lifecycle, and inference/queue subsystems. All are additive/rollback-safe: flipping any of these off does not delete data — it only stops a code path from running. A model already trained, evaluated, or hosted stays exactly as it was; only new activity is affected.Frontend integration
Add these to your Next.js (or any frontend).env.local:
localStorage['causeloop_token'].