Deployment Environment
Deployment Environment
Railway Config
Railway build and deploy settings are mirrored in apps/*/railway.json. Keep each service root directory and custom config path aligned with the checked-in app directory.
App Stages
Service-level app stage values must use the normalized lowercase vocabulary: production, staging, sandbox, or development.
| Service | Stage variable |
|---|---|
| sirloin | SIRLOIN_STAGE |
| strip | STRIP_STAGE |
| brain | BRAIN_STAGE |
| brisket | BRISKET_STAGE |
| flank | FLANK_STAGE |
NODE_ENV is still reserved for framework/runtime mode in Node services and should not be used as the service app stage.
Preview Databases
Preview environments are named beef-pr-<PR_NUMBER>. The Neon branching workflow creates the PR branch and updates Railway preview variables.
Brain preview wiring needs both DATABASE_URL and DIRECT_DATABASE_URL. Setting only DATABASE_URL is insufficient because Prisma migration and runtime paths can read DIRECT_DATABASE_URL.
Sirloin preview wiring needs SIRLOIN_DATABASE_URL pointed at the direct Neon rump database and SIRLOIN_DATABASE_POOLED_URL pointed at the pooled Neon rump database. Sirloin uses the direct URL for migrations and session-level advisory locks, and uses the pooled URL for normal runtime queries when it is set.
Health Checks
Healthcheck paths come from the service Railway manifests. Round and sirloin expose /health on the same socket as their gRPC listener so Railway PORT remains aligned with the primary service port.
Source Paths
- docs/railway.md
- .github/workflows/neon-branching.yml
- apps/*/railway.json