Environments
APP_ENVIRONMENT in app.enum.ts: production, staging, development, local.
| Behavior | Non-production | Production |
|---|---|---|
| Swagger | Mounted | Not mounted |
| Sentry DSN | Optional until you set production | Required by validation |
| JWT secret length | Example file says >= 32 in production | Enforced when APP_ENV=production |
| Log level in Compose | Containers default info and JSON | Same comment |
The production bootstrap runbook says the same Compose file runs locally and on the server, and only .env changes. Read docs/runbooks/production-bootstrap.md before changing host layout. It includes Cloudflare and security-group steps that this page does not copy.
Replica counts
Compose mentions API_REPLICAS as a name. AI_CONTEXT.md says the scheduler must stay single-replica.
Unknown — requires developer confirmation: whether the deploy workflow enforces a single scheduler, and what the production replica counts are for API versus worker.
Admin and warehouse hosts
Unknown from the API compose file. Admin has netlify.toml and wrangler.json. Warehouse has android/.