Moving to Guv
Import a project from Heroku, Railway, Render, Fly.io or Docker Compose into guv.yaml.
Guv uses the same mental model as Railway and Heroku: projects, environments, services and add-on databases. Moving is mostly a matter of translating configuration, and guv import does that for you.
Import your configuration
Section titled “Import your configuration”From your repository:
guv importIt reads whichever of these it finds and writes a guv.yaml:
| From | Files read |
|---|---|
| Railway | railway.json, railway.toml, railway.ts |
| Render | render.yaml |
| Fly.io | fly.toml |
| Heroku | Procfile, app.json |
| Docker Compose | compose.yaml, docker-compose.yml |
Review the file, then see what Guv would create, with the monthly cost:
guv planguv applyMove your data
Section titled “Move your data”-
Create the database in Guv (
guv applydoes this from the manifest). -
Dump from your old provider with
pg_dump, and restore through a short-lived tunnel:Terminal window guv db connect main < dump.sql -
Set your secrets. The CLI prompts for each value so nothing ends up in your shell history:
Terminal window guv secrets set stripe-secret-key --env production
Switch traffic
Section titled “Switch traffic”Add your domain with guv domains add, check the app on its generated address first, then update DNS. Keep the old provider running until the new DNS has settled.