← All migration guides

Coming from Heroku

Move a Heroku app to a server you own — Dockerfile or buildpacks, Procfile, config vars, Postgres and Redis — with no downtime and no lock-in.

Why teams leave Heroku

The bill grows with every dyno, every add-on, and every teammate — and it is priced in a currency you may not earn in. The free tier is gone. Salesforce sets the roadmap. And when you leave, you take your code and nothing else: the platform was never yours to move.

Railyard gives you the same git push workflow on a Linux server in your own cloud account. Your provider bills you directly, at their price. Cancel Railyard and the app keeps running.

What comes with you

  • Your repo, unchanged. Railyard builds from a Dockerfile or from Cloud Native Buildpacks — the same buildpacks Heroku uses — so most apps need no changes.
  • Your Procfile. web, worker, release and any other process types are read as-is.
  • Your config vars. Paste them in; they become the app’s environment.
  • Heroku Postgres and Heroku Data for Redis map to managed Postgres and Redis addons. Railyard provisions them and injects DATABASE_URL / REDIS_URL for you.
  • Custom domains and automatic TLS.

The move

  1. Point Railyard at a server. Attach one you already have, or have Railyard provision one in your DigitalOcean / Hetzner / AWS account.
  2. Add your repo and pick your build method. If your app already deploys on Heroku with buildpacks, choose buildpacks and change nothing.
  3. Bring your config. Paste your config vars. Attach Postgres and Redis; Railyard wires the URLs in.
  4. Deploy. Watch the build stream. Open the temporary URL and click through the app.
  5. Move your data. heroku pg:backups:capture then pg:backups:download, and restore the dump into the managed Postgres addon. Same for Redis if you persist it.
  6. Cut DNS over. Your Heroku app keeps serving until the record flips. There is no window where nothing is up. Then heroku apps:destroy and cancel the add-ons.

What’s genuinely different

You are responsible for a server now — but Railyard provisions it, keeps Docker patched, runs the deploys, and handles TLS, backups and rollbacks. What you buy with that: no markup on compute, no vendor lock-in, and a box you can point at any cloud you like.

Bring your Heroku app to a server you own.

Attach a machine, point Railyard at your repo, and deploy. Cut DNS over when it's proven — no downtime, no lock-in.

Free for one server, forever. No credit card.