Coming from Railway
openrail follows Railway names, variables and config files, so most projects move over unchanged; this page lists every difference in v0.1.
What stays the same
- The canvas, staged changes, environments and the service panel tabs.
- Variable names (
RAILWAY_PUBLIC_DOMAIN,RAILWAY_PRIVATE_DOMAINand the rest) are provided alongsideFIFTY_*names, and the reference syntax${{Service.VAR}}and${{shared.VAR}}is the same. railway.jsonandrailway.tomlin your repo are read and applied. See Config as code.- Builds use Railpack, Railway's builder.
builder: NIXPACKSbuilds with Railpack and maps Nixpacks hints. - Private names:
api.railway.internalresolves as well asapi.internal. - The
railwaycommand works as an alias of theopenrailCLI. See The railway alias. - Deployment statuses use Railway's labels.
Differences
| Railway | In openrail v0.1 | What to do instead |
|---|---|---|
| PR environments (incl. Focused and Bot PR environments) | Not yet (v0.2) | Duplicate an environment and point a service at the branch |
| Wait for CI | Not yet | Deploy from CI with openrail up -c or a GitHub Action calling openrail redeploy |
| Deployment approvals | Not yet | Turn off auto deploy and deploy by hand |
| Image Auto Updates with maintenance windows | Not yet | "Check for a newer image" in Settings > Source, or a cron that calls openrail redeploy |
| Serverless (app sleeping) | Not available | Scale to 0 is v0.2; idle apps cost only RAM on your own VM |
| Buckets | Not yet | The MinIO template |
| Functions | Not available | A small service or a cron service |
| Observability widget board | Not yet | The Observability page and Metrics tabs |
| AI Diagnose and fix PR | Rule-based sentence | The diagnosis sentence and the Troubleshooting guide |
| Data tab SQL editor and row editing | Read-only tables and Redis keys | openrail connect |
| Metrics for 30 days | Same, 30 days | |
| Wildcard custom domains | Not yet | One custom domain per name, or --domain with a wildcard A record for generated names |
| Static egress IPs (paid) | Free: your hosts' IPs | Settings > Networking shows them |
| Volume Live Resize | Not needed: volumes use the host disk | Add a data disk |
| Regions | Your hosts and roles | Add a host in another location |
railway CLI | openrail, plus the railway alias | Same commands |
| Login with GitHub, magic link email login | Email and password with 2FA | |
| Slack/Discord formatted webhooks | Signed JSON | A small relay service, or v0.2 |
config plan/apply style config sync | openrail config pull and railway.json in the repo | v0.2 Git mode |
Railway variables that are not provided
Railway's OTEL_* tracing variables are not set. Set them yourself to point at your own collector. See Variables reference.
Moving a project
- Move a project from Railway: recreate the services from the same repos and copy their variables. The one-step importer is not in 0.1.0.
- Move a database from Railway copies the data.
- Point your DNS at your host and add the custom domains.
- Run
openrail alias installsorailwaycommands talk to your console.