Does Heroku host apps in Europe?
Yes. Heroku’s Common Runtime has an “eu” region, and Private Spaces are available in Dublin, Frankfurt and London. Heroku’s own regions page adds two caveats: specifying an app’s region does not guarantee restriction of data residency, and no guarantees are made about the physical location of its control-surface APIs.
Heroku prices each dyno and add-on separately: an Eco dyno is $5 for 1,000 shared hours a month and sleeps after 30 minutes without traffic, a Basic dyno is $7 a month, Standard-1X $25, and Heroku Postgres starts at $5 (Essential-0). If the eu region and those prices already work for you, staying on Heroku is the simplest option.
What should you check in an EU-hosted alternative?
Ask where each part of the app lives, not just the web process. Databases, backups, container images and logs can sit with other providers or in other countries. Then check who runs the service, what the bill does when usage grows, and how much of your Heroku setup moves over without rewriting.
Hosting in the EU answers one GDPR question, where personal data is stored. It does not make an app compliant by itself: what you collect, why, for how long and who else processes it remain your decisions as the controller. Look for a data processing agreement and a public list of subprocessors.
- Where the app runs, and where databases, backups, images and logs are stored.
- The company behind it, its data processing agreement and its subprocessors.
- The pricing model: a fixed plan, a price per container, or metered usage, and what happens past the limit.
- Migration: Procfile or start command, Postgres import, scheduled tasks, release commands and custom domains.
Which Heroku alternatives host in Europe?
Each figure below comes from the provider’s own pricing or documentation page, linked under Sources, and was checked on 27 September 2026. Prices are in the currency each provider publishes, before tax; we have not converted them. Koyeb and Northflank also offer European regions with per-second billing.
| Platform | Where it runs in Europe | Pricing model | Entry price, as published |
|---|---|---|---|
| Codara Cloud | Helsinki, Finland (Hetzner Cloud). Apps, databases and backups are stored in the EU. | Fixed monthly plan per organization, shared by its projects; no usage overage | Starter €5/month (shared 0.5 vCPU, 512 MiB, 10 GiB storage) |
| Scalingo | Paris (osc-fr1); a SecNumCloud region on request. A French company (Strasbourg). | Billed by the minute, per container | S container (256 MB) €7.20/month excl. VAT on a 30-day basis; 30-day free trial |
| Clever Cloud | Paris, Roubaix, Gravelines and Warsaw, among others. Based in Nantes, France. | Billed by the second | Free credits at sign-up without a card; see its price list |
| Render | Frankfurt, among its regions | Workspace plan plus a price per instance | Web service from $7/month; Postgres from $6/month |
| Railway | Amsterdam (EU West), among 4 regions | $5 Hobby minimum including $5 of usage, then metered | From $5/month |
| Fly.io | Amsterdam, Stockholm, Paris and Frankfurt, among 17 regions | Per-second usage, no plans for Machines | 256 MB Machine $2.24/month in Frankfurt; Managed Postgres from $38/month |
| Coolify on your own server | Wherever you rent the server, e.g. Hetzner in Finland or Germany | Free open-source software; you pay for and operate the server | Hetzner CX23 (2 vCPU, 4 GB) €5.49/month before VAT |
Where does Codara Cloud fit?
Codara Cloud is made by Codara Solutions SL, a company in Madrid. Apps, databases, volumes, backups and container images are stored in the EU: on Hetzner Cloud in Helsinki and in Cloudflare R2 in its EU jurisdiction. Cloudflare’s global network carries app traffic and may cache served content. The data processing addendum and the subprocessor list are public.
Billing is a fixed monthly plan per organization, from €5 to €100 before tax, and several projects share its capacity. Managed Postgres, MySQL, MariaDB, Redis and MongoDB, cron jobs and custom domains are part of the plan, and there is no automatic usage overage: an action past a plan limit is refused, not billed.
Know the limits before you move. Codara Cloud runs in one region today, Helsinki. It is in beta by invitation, and plan capacity is finite and shared. If you need regions outside Europe, a long track record or a specific certification, one of the platforms above may suit you better.
How do you move a Heroku app to Codara Cloud?
Start with one app and keep it running on Heroku until the new one is verified. Create the app in the console from the same GitHub repository (Apps → New app). Without a Dockerfile, Codara builds it with Railpack, which uses the web entry of your Procfile as the start command. Codara sets PORT for you, as Heroku does.
Then create the database and connect it: Codara injects DATABASE_URL, the same name Heroku uses. Export your Heroku config vars, remove DATABASE_URL and Heroku-only keys, and import the rest. Copy the data with pg_dump through a local tunnel.
# Config vars from Heroku, into a file you review and keep out of Git
heroku config --shell --app my-app > heroku.env
# A Postgres database on Codara, connected to the app (injects DATABASE_URL)
codaracloud databases create main-db --engine postgres --client my-workspace --project my-app
codaracloud apps connections add my-app main-db --client my-workspace
# The remaining variables, after removing DATABASE_URL from heroku.env
codaracloud env set my-app --from-file heroku.env
# Copy the data: dump from Heroku, restore through a tunnel
pg_dump --no-owner --no-acl "$(heroku config:get DATABASE_URL --app my-app)" > dump.sql
codaracloud databases proxy main-db --client my-workspace --local-port 5433
# In another terminal, with the user and password from
# codaracloud databases connection main-db --client my-workspace --reveal
psql "postgresql://USER:PASSWORD@127.0.0.1:5433/main-db" -f dump.sqlA Heroku release phase becomes a pre-deploy command, which runs once before traffic moves to the new version. Heroku Scheduler tasks become Codara jobs with a cron expression, and a worker dyno becomes a separate service. Test everything on a staging environment, then point your domain at Codara.
Questions
- Does hosting in the EU make my app GDPR compliant?
- Not by itself. It settles where personal data is stored, but GDPR also covers what you collect, why, for how long and who processes it. Codara Cloud publishes a data processing addendum and its subprocessor list.
- What is the cheapest EU-hosted Heroku alternative?
- It depends on the app. For one small always-on app with Postgres, Codara Cloud Starter is €5 a month if it fits Starter’s capacity, and a Hetzner server running Coolify is €5.49 before VAT if you operate it yourself. Usage-billed platforms can cost less for apps that sleep most of the day.
- Can I keep deploying with git push?
- Yes, through GitHub rather than a Heroku-style git remote. Codara builds and releases on every push to the branch you choose, and codaracloud deploy <app> --source builds on demand.
Sources
Other providers’ figures were checked on their own pricing and documentation pages on 27 September 2026. Prices change, so check them before you decide.
- Heroku pricing ↗www.heroku.com/pricing
- Heroku regions ↗devcenter.heroku.com/articles/regions
- Heroku Eco dyno hours ↗devcenter.heroku.com/articles/eco-dyno-hours
- Scalingo pricing ↗scalingo.com/pricing
- Scalingo regions ↗doc.scalingo.com/platform/internals/regions
- Clever Cloud pricing ↗clever.cloud/pricing/
- Clever Cloud FAQ ↗www.clever.cloud/developers/doc/find-help/faq/
- Render pricing ↗render.com/pricing
- Render regions ↗render.com/docs/regions
- Railway pricing ↗railway.com/pricing
- Railway deployment regions ↗docs.railway.com/reference/deployment-regions
- Fly.io pricing ↗fly.io/pricing/
- Fly.io regions ↗docs.fly.io/reference/regions/
- Koyeb pricing ↗www.koyeb.com/pricing
- Northflank pricing ↗northflank.com/pricing
- Coolify pricing ↗coolify.io/pricing
- Hetzner Cloud cost-optimized servers ↗www.hetzner.com/cloud/cost-optimized/
