Migration from Railway to CreateOS
Use this guide when your app or backend service currently runs on Railway.
What changes
| Railway concept | CreateOS equivalent |
|---|---|
| Railway project | CreateOS project or app folder |
| Railway service | CreateOS deployment service |
| Service variables | CreateOS environment variables |
| Start command | Start command |
| Public networking | CreateOS domain and port configuration |
| Railway database plugin | External database connection or CreateOS-managed service |
Step by step
- Open the Railway project and list every service that belongs to the app.
- For each service, collect:
- Repository
- Branch
- Install command
- Build command
- Start command
- Port
- Environment variables
- Attached databases, queues, volumes, or storage
- Decide whether each Railway service becomes:
- One CreateOS project
- One service inside a shared app folder
- An external dependency that should stay outside CreateOS
- Sign into createos.sh/app.
- Click Deploy.
- Import the repository from GitHub.
- Configure the commands and port for the first service.
- Add environment variables.
- Deploy and verify the service.
- Repeat for additional services.
Databases and service-to-service connections
Railway apps often depend on managed Postgres, Redis, or service-generated internal URLs. Before cutover:
- Export and restore database data if you are moving databases.
- Update connection strings in CreateOS environment variables.
- Replace Railway internal hostnames with the new service URLs.
- Check CORS, callback URLs, webhook URLs, and allowed origins.
Cutover
- Deploy all required services on CreateOS.
- Verify health checks and logs.
- Run a production-like request through the full app.
- Add the custom domain in CreateOS.
- Switch DNS only after all services are healthy.
- Keep Railway available until traffic is stable on CreateOS.