Environment Variables
Service
Section titled “Service”| Variable | Required | Default | Description |
|---|---|---|---|
PORT | No | 3000 | Backend HTTP port |
DATABASE_URL | Yes | — | PostgreSQL connection string |
LOG_LEVEL | No | info | One of: debug, info, warn, error |
ADMIN_TOKEN | Yes | — | Bearer token for admin API (min 16 chars) |
Better Auth
Section titled “Better Auth”| Variable | Required | Default | Description |
|---|---|---|---|
BETTER_AUTH_SECRET | Yes | — | Session signing key (min 32 chars) |
BETTER_AUTH_BASE_URL | Yes | — | Public base URL, used as JWT issuer |
AUTH_COOKIE_DOMAIN | Yes | — | Session cookie domain for SSO (e.g. .example.com) |
SAAS_TRUSTED_ORIGINS | No | — | Comma-separated allowed CORS origins |
OAuth UI
Section titled “OAuth UI”| Variable | Required | Default | Description |
|---|---|---|---|
OAUTH_LOGIN_PAGE | No | /login | Path to the login page |
OAUTH_CONSENT_PAGE | No | /consent | Path to the consent page |
Social Providers
Section titled “Social Providers”| Variable | Required | Description |
|---|---|---|
GOOGLE_CLIENT_ID | No | Google OAuth client ID |
GOOGLE_CLIENT_SECRET | No | Google OAuth client secret |
APPLE_CLIENT_ID | No | Apple Services ID |
APPLE_TEAM_ID | No | Apple Developer Team ID |
APPLE_KEY_ID | No | Apple Sign In key ID |
APPLE_PRIVATE_KEY | No | Apple .p8 private key content |
GITHUB_CLIENT_ID | No | GitHub OAuth App client ID |
GITHUB_CLIENT_SECRET | No | GitHub OAuth App client secret |
Commerce (Phase 3)
Section titled “Commerce (Phase 3)”| Variable | Required | Description |
|---|---|---|
LEMON_SQUEEZY_API_KEY | No | LemonSqueezy API key |
LEMON_SQUEEZY_STORE | No | LemonSqueezy store ID |
LEMON_SQUEEZY_SIGNING_SECRET | No | Webhook signing secret |