Move a Heroku app to the EU
Move a Heroku app's buildpacks, config vars, Postgres database and add-ons to blitz.cloud in the EU, with the exact commands, checked 24 October 2026.
To move a Heroku app, you either let blitz.cloud build your buildpack app straight from GitHub or push a Dockerfile-based image, copy your config vars across, and move Postgres with a dump. Git-push deploys and a database carry over; a few things like add-ons and Heroku Scheduler don't yet.
What moves cleanly, and what doesn't yet
What carries over today:
- Git-push deploys, once you connect your GitHub account on blitz.cloud and pick the repository. Private repositories work too.
- PostgreSQL databases, via
pg_dumpfrom Heroku and restore into blitz.cloud.DATABASE_URLis set for you automatically, the same name Heroku uses. - Redis, served by Valkey 8 on blitz.cloud, the same data store as Heroku Redis.
- Environment variables and config vars, copied from
heroku configto blitz.cloud's Environment tab. - A Dockerfile-based app from Heroku's container registry, pushed to a public registry like Docker Hub or ghcr.io and deployed on blitz.cloud.
What you give up, at least for now:
- Heroku's add-on marketplace. Services like logging, queues and search need their own provider on blitz.cloud; there is no one-to-one swap here.
- Pipelines and review apps per pull request. Every push to your branch goes to the one app, not a preview. See deploy a GitHub project for what's possible.
- Heroku Scheduler. The closest equivalent is a background worker that runs continuously — see bots and background workers — or a separate scheduled service outside blitz.cloud.
- Named EU cities via Private Spaces. blitz.cloud has one data centre in the EU, no choice of location.
If the "doesn't yet" list is where your app lives, stay on Heroku or look for a host that has those features today. If your app is a normal buildpack or Dockerfile with a database and the reason to move is EU hosting and simplicity, keep going.
Step 1: Get your code building on blitz.cloud
Two paths depending on your app.
If your app has no Dockerfile: connect your GitHub account on blitz.cloud, pick the repository (private ones work), and blitz.cloud reads the project, writes a Dockerfile if there is none, and puts every push online. See deploy a GitHub project.
If your app already has a Dockerfile or you use Heroku's container registry: build the image for amd64, push it to a public registry such as Docker Hub or ghcr.io, and deploy it from the dashboard. Or just connect GitHub and let blitz.cloud build the Dockerfile itself. See deploy a Docker image.
In both cases, your app must read its port from the PORT environment variable, just like on Heroku. If your code already does that, no change needed.
Step 2: Move your config vars
Run heroku config -s -a <app> to print your config vars as KEY=VALUE lines. Copy them into the app's Environment tab on blitz.cloud, then restart the app.
Step 3: Move your Postgres database
On Heroku, capture and download the database:
heroku pg:backups:capture --app <app>
heroku pg:backups:download --app <app>
This gives you a file called latest.dump in pg_dump's custom format.
On blitz.cloud, add a PostgreSQL database to the app. Open the Databases tab, click Upload a dump, and upload the latest.dump file into the empty database. See databases for more details. DATABASE_URL is set for you automatically with the same name Heroku uses.
Step 4: Redis and other add-ons
If you use Heroku Redis: add a Redis database to the app on blitz.cloud, the same way you add Postgres. Valkey 8 is the data store; the connection details are the same.
For other add-ons like logging, email, search or monitoring: these need a separate provider. blitz.cloud does not have a one-to-one replacement for each. Pick a provider that works with you and set the connection details in the Environment tab.
Checklist
- Config vars moved from Heroku and pasted into blitz.cloud's Environment tab.
- App restarted after adding env vars.
- Postgres dump captured with
heroku pg:backups:download. - Dump uploaded into a new PostgreSQL database on blitz.cloud.
- Redis added if you use Heroku Redis.
- Your app reads its port from
PORT(check your code or ask your app to logprocess.env.PORTon startup). - Add-ons without a direct match (logging, search, monitoring) identified and replaced with separate providers if needed.
- On Pro, domain repointed once the new app answers correctly.
- Old Heroku app still running until the new one has served real traffic for at least a day.
Why move at all?
In February 2026, Heroku announced it was moving to "sustaining engineering" and no longer offers new Enterprise contracts. If you are on the free plan, there has been no Heroku free plan since November 2022, and the cheapest option is Eco at $5 a month with sleeping dynos. If you want to keep your app awake, the cost is higher.
blitz.cloud offers a free plan with no sleep, no credit card needed, and when you want your app always online, Pro at 7 EUR a month keeps all your apps awake. The data stays in the EU, operated by a German company. Read the comparison for the full picture.
Sources
- https://www.heroku.com/pricing/
- https://devcenter.heroku.com/articles/eco-dyno-hours
- https://devcenter.heroku.com/articles/regions
- https://devcenter.heroku.com/articles/account-verification
- https://devcenter.heroku.com/articles/container-registry-and-runtime
- https://www.heroku.com/blog/an-update-on-heroku/
- https://devcenter.heroku.com/articles/config-vars
- https://devcenter.heroku.com/articles/heroku-postgres-backups
Facts checked on 24 October 2026. Prices and plans change; tell us at hallo@blitzworks.io if something here is out of date.
Read next
blitz.cloud vs Heroku: a Heroku alternative in the EU with a free plan
Heroku against blitz.cloud on free plans, sleeping dynos, EU regions, Docker images and Postgres prices, with sources checked 25 September 2026.
Deploy an app with a PostgreSQL database
Host an app with a managed PostgreSQL 17 database on blitz.cloud. DATABASE_URL is set for you, the database is private to your apps and backed up nightly.
Deploy a GitHub project on blitz.cloud
Connect GitHub or paste a link to a public repository, and blitz.cloud builds the code and puts it online with HTTPS, with a new version on every push. How the build works, which port is used and what fails.
Put your app on your own domain.
Pro connects domains you own to any app, with HTTPS, for 7 EUR a month for your whole account. Try it free for 14 days: starting doesn't need payment details, and if you don't add them before it ends, nothing is charged.