Environment Map
Three-surface model (api / app / docs), subdomain map, and Railway preview flow.
Track A makes the three public surfaces of rave-trading explicit and separately deployable. Each surface is its own Railway service with its own Dockerfile build context but shares the repo root so npm workspaces resolve.
Three-surface model
| Surface | Staging subdomain | Production subdomain | Railway service |
|---|---|---|---|
| Engine API | staging.api.rave-trading.com | api.rave-trading.com | ondo-gm-engine-* |
| Operator Console | staging.app.rave-trading.com | app.rave-trading.com | ondo-gm-operator-console-* |
| Docs | staging.docs.rave-trading.com | docs.rave-trading.com | ondo-gm-docs-* |
Promotion flow
- PR branches deploy to Railway preview environments (ephemeral URLs).
- main deploys to staging. Merging to
mainis a staging action, not a production release. - release deploys to production. Fast-forwarded from
mainvia the Promote to Production workflow.
Verifying surfaces
After a deploy, run bash scripts/validate-staging-surfaces.sh staging (or production) to probe /health on the engine and the home pages of the console and docs. For Railway preview URLs, pass APP_URL, API_URL, and DOCS_URL environment variables to the script.