Skip to main content

Environment matrix

How environment variables map to subsystems—source of truth is Zod.

Environment matrix

The authoritative list of variables, defaults, and validation lives in:

apps/api/src/config.ts (envSchema).

Use this page as a mental map; when in doubt, search the schema in that file.

| Subsystem | Representative variables | |-----------|---------------------------| | Core | NODE_ENV, PORT, APP_URL, API_URL, DISABLE_BACKGROUND_WORKERS | | Auth | AUTH_SECRET, GOOGLE_*, GITHUB_* | | Database | DB_TYPE, DATABASE_URL, MYSQL_URL | | Redis | REDIS_URL, REDIS_QUEUE_URL | | Email | EMAIL_PROVIDER, SMTP_*, RESEND_API_KEY, SENDGRID_API_KEY | | Billing | BILLING_PROVIDER, STRIPE_*, PADDLE_*, LEMONSQUEEZY_* | | Storage | STORAGE_PROVIDER, AWS_*, R2_* | | AI | AI_PROVIDER, OPENAI_API_KEY, … | | Ops | SENTRY_DSN, DEPLOY_MODE |

After pnpm cli init, a non-secret subset is mirrored in .nova/wizard-env.snippet.env for quick copy/paste into .env.

Regenerating docs from schema (optional)

To audit drift between docs and code, search envSchema in config.ts and update this table—automated extraction is intentionally not wired so we do not leak misleading partial docs.