# 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.

Web page: https://blitz.cloud/guides/migrate-from-heroku-to-eu/
Updated: 2026-10-24

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_dump` from Heroku and restore into blitz.cloud. `DATABASE_URL` is 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 config` to 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](https://blitz.cloud/docs/deploy-from-github/) for what's possible.
- Heroku Scheduler. The closest equivalent is a background worker that runs continuously — see [bots and background workers](https://blitz.cloud/docs/deploy-from-github/#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](https://blitz.cloud/docs/deploy-from-github/).

**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](https://blitz.cloud/docs/deploy-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:

```bash
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](https://blitz.cloud/docs/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 log `process.env.PORT` on 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](https://blitz.cloud/compare/heroku/) 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.
