# Where to host an Express.js API in Europe in 2026

Last updated: 2026-11-10

For an Express API with its database already running elsewhere, **Eurobase** builds the app from Git without a Dockerfile and charges one flat price of €10 or €20 a month for the workspace. If the API needs Postgres, a cron job or a queue worker on the same bill, **Scalingo** and **Clever Cloud** handle all three. **Sliplane**, **Scaleway Serverless Containers** and a **Hetzner** server suit teams that are happy to work with Docker images or a Linux box.

## Express hosts compared

| Platform | Company based in | Build from `package.json` | Managed Postgres | Cron or worker process | Starts at |
|---|---|---|---|---|---|
| Eurobase | Warsaw, Poland | Yes, npm or Yarn 1 | No | No | Free, then €10 a month + VAT |
| Scalingo | Strasbourg, France | Yes, npm or Yarn | Yes | Scalingo Scheduler | €7.20 a month for 256 MB, excl. VAT |
| Clever Cloud | France | Yes, npm, pnpm, Bun or Yarn | Yes | Workers and `cron.json` | Free credits, then billed by the second |
| Sliplane | Berlin, Germany | Detected automatically, or a Dockerfile | Yes, from €19 excl. VAT | Run another container | €9 for 1 vCPU and 1 GB, excl. VAT |
| Scaleway Serverless Containers | France | No, you push an image | Sold separately | Serverless Jobs, a separate product | Free tier, then billed by use |
| Hetzner | Gunzenhausen, Germany | No, you set up the server | No | Yours to configure | €5.49 a month excl. VAT, if available to order |

Prices are from each provider's own page, checked on 9 and 10 November 2026.

## What an Express API needs from a host

- **A start command it understands.** Express has no build output of its own. The host has to run your `start` script, a Procfile line or a container entrypoint, and pass the port in `PORT`.
- **A database close to the app.** Most APIs read and write on every request. Check whether the host sells Postgres in the same region or expects you to bring one.
- **Somewhere for work outside a request.** Sending emails, clearing old sessions and nightly exports need a worker or a schedule. Many simple hosts run only the web process.
- **Behaviour when idle.** A container that scales to zero is cheap, but the first call after a quiet spell waits for Node.js and Express to boot. Check whether the platform keeps one instance warm.
- **Long requests and streams.** File uploads, server-sent events and WebSockets hit timeouts and body limits. Read them before you pick.
- **A contract you can show.** If the API stores personal data, you need a DPA and a subprocessor list. The [GDPR hosting checklist](/i/gdpr-hosting-checklist) covers the rest.

## 1. Eurobase

Eurobase takes the `build` and `start` scripts from `package.json`, packages the Express app with Paketo buildpacks and runs the result as a container that scales to zero between calls. You set the port and a health path, and a new deployment replaces the old one only after that path answers with 2xx or 3xx. You can connect a repository on GitHub, GitLab, Codeberg, Forgejo or Gitea, and a coding agent can ship the API through the MCP server or the CLI. Behind it is a business registered in Warsaw, with the platform on European infrastructure run by Scaleway, a French provider.

- **Best for:** a stateless API, or one that talks to a database you already host, where a fixed monthly bill matters more than extras.
- **Price:** the Free plan covers 250 hours of running container a month. Paid plans are €10 or €20 a month + VAT for the whole workspace, whatever the number of members. You won't see usage charges today: anything past a limit is refused, apps on V8 isolates and Functions stop until the monthly reset, and containers and static sites keep serving.
- **What it lacks:** managed Postgres, MySQL or Redis, Dockerfile builds, preview deployments, background workers and scheduled jobs. A build accepts Node.js 20, 22 or 24 with npm or Yarn 1, and turns away a pnpm or Bun lockfile before it starts. Each response must begin within 55 seconds. ISO 27001 and SOC 2 are in progress and not held yet.

The [Node.js server guide](/docs/guides/nodejs-server) walks through a first Express deployment, and [Containers and static sites](/docs/containers) lists ports, body limits and stream timeouts.

## 2. Scalingo

Scalingo detects Node.js from `package.json` and starts your app from a Procfile if there is one, otherwise from `scripts.start`. It installs with npm or Yarn, and the default runtime is the latest Node.js 24. According to its pricing page, containers never go to sleep, so an idle API answers the next call without a boot delay.

- **Best for:** an Express API that wants Postgres, scheduled tasks and the app under one French provider, including regulated work in its SecNumCloud region.
- **Price:** an S container with 256 MB at €7.20, and a Starter PostgreSQL with 512 MB and 10 GB at €7.20, each estimated over 30 days and excl. VAT. The same sizes cost €8.64 in the SecNumCloud region. A 30-day trial lets you test it first.
- **What it lacks:** pnpm and Bun aren't covered by its Node.js docs. A Starter database is a single node with a 98% SLA; the multi-node setup with a 99.96% SLA comes with the Business plans.

## 3. Clever Cloud

Clever Cloud's Node.js docs want the server bound to `0.0.0.0` on the `PORT` variable, and a `package.json` that has either `scripts.start` or `main`. `CC_NODE_BUILD_TOOL` picks the package manager, and Bun is one of the choices. Extra processes come from `CC_WORKER_COMMAND`, and a `clevercloud/cron.json` file installs scheduled jobs on each instance. It's a French company certified to ISO/IEC 27001:2022.

- **Best for:** an API that needs a queue consumer, a nightly job and a managed database next to it, from a certified provider.
- **Price:** you pay for the instance sizes and counts you run, metered per second. New accounts get free credits without a payment card.
- **What it lacks:** jobs from `cron.json` for Docker applications. Every instance runs every job, so with three instances a job fires three times. Zones such as Montreal, Singapore and Sydney sit outside Europe, so pick the region with care.

## 4. Sliplane

Sliplane bills per server, and you place as many containers on that server as its resources allow. It spots a Node.js project without configuration or builds your Dockerfile, which lets the Express API and a second container for background work share one machine. Its DPA is concluded once you accept it in the dashboard. Besides Germany and Finland it has US and Singapore regions, so choose a European one for EU data.

- **Best for:** an Express API plus a worker, Redis or other services on one predictable bill.
- **Price:** €9 excl. VAT for the Starter server with 1 vCPU, 1 GB of memory and 20 GB of disk. Managed PostgreSQL starts at €19 excl. VAT. You can try a demo server for free; it's deleted after 48 hours.

## 5. Scaleway Serverless Containers

Scaleway is a French cloud provider. Its Serverless Containers product takes an image you built and runs it in Paris, Amsterdam, Warsaw or Milan, from zero up to 200 instances. The Dockerfile, the image push and the deploy pipeline are yours. Through a Private Network, the API can talk to a Scaleway managed Postgres that has no public endpoint.

- **Best for:** teams that already ship Docker images and have bursty API traffic.
- **Price:** no charge for the first 400,000 GB-s of memory and 200,000 vCPU-s in a month. After that, €0.20 per extra 100,000 GB-s and €1 per extra 100,000 vCPU-s, with the database billed on its own.
- **What it lacks:** a build from your repository and a fixed monthly price.

## 6. Hetzner

Hetzner Online GmbH rents virtual servers in Falkenstein, Nuremberg and Helsinki. On one of them you install Node.js, a process manager, a reverse proxy with TLS and the database yourself. Its standard DPA is signed inside the customer account.

- **Best for:** teams with the time and skills to run Linux in production.
- **Price:** the price list starts at €5.49 a month excl. VAT for a CPX02 in Helsinki and €6.49 in Falkenstein or Nuremberg, but those smallest plans couldn't be ordered on 10 November 2026.
- **What it lacks:** any platform layer. Patching, restarts, backups and monitoring are all your job. Hetzner also has locations in the US and Singapore.

## Should you rewrite Express in Hono?

Not to get hosting. Express runs fine in a container on every platform above. Hono becomes interesting if you want the API on V8 isolates, where on Eurobase it can use D1-compatible SQLite databases. The move means replacing Express middleware and Node-only packages, so it suits small or new APIs more than large ones. See [Hono hosting in Europe](/i/hono-hosting-europe) for the options.

## How to choose

1. Database already hosted, flat price wanted: Eurobase.
2. App, Postgres and scheduled tasks from one French vendor: Scalingo.
3. Workers, cron and pnpm or Bun on a certified platform: Clever Cloud.
4. Several containers on one server at a fixed price: Sliplane.
5. Your own images, billed only while they run: Scaleway.
6. Full control and someone to operate it: Hetzner.

## Frequently asked questions

### Do I need a Dockerfile to deploy Express in Europe?

No. Eurobase, Scalingo and Clever Cloud build straight from `package.json`, and Sliplane can detect a Node.js project. Scaleway Serverless Containers expects an image you built, and on Hetzner you install everything by hand.

### Which port should my Express app listen on?

Read `process.env.PORT` and bind to `0.0.0.0`, falling back to 3000 for local work. Eurobase, Scalingo and Clever Cloud all expect this, and a server bound only to `localhost` won't receive traffic.

### How do I run cron jobs next to an Express API?

On Scalingo use its Scheduler, and on Clever Cloud add a `clevercloud/cron.json` file or a worker command. On Sliplane and Hetzner run a scheduler in its own container or process. Scaleway sells Serverless Jobs for scheduled containers. Eurobase containers run only the web process, so jobs need to live somewhere else. The [background jobs comparison](/i/background-jobs-hosting) goes deeper.

### Why is the first request to my Express API slow?

Your host probably scales to zero. After a quiet period the container has to start Node.js and load your dependencies before it can answer. Eurobase and Scaleway Serverless Containers behave this way, and Scalingo says its containers never sleep.

### Is an EU region of a US cloud the same as a European host?

Not quite. The servers are in Europe, yet your provider is a US company and US law can compel it. The [EU region vs EU company](/i/eu-region-vs-eu-company-cloud-act) page explains why, and the [Node.js hosting comparison](/i/nodejs-hosting-europe) covers more Node.js frameworks.

## Sources

- [Scalingo pricing](https://scalingo.com/pricing), [Scalingo Node.js docs](https://doc.scalingo.com/languages/nodejs/start) and [Scalingo Scheduler](https://doc.scalingo.com/platform/app/task-scheduling/scalingo-scheduler)
- [Clever Cloud Node.js and Bun docs](https://www.clever.cloud/developers/doc/deploy/applications/nodejs/), [Clever Cloud workers](https://www.clever.cloud/developers/doc/manage/workers/), [Clever Cloud cron](https://www.clever.cloud/developers/doc/manage/cron/) and [Clever Cloud pricing](https://www.clever.cloud/pricing/)
- [Sliplane](https://sliplane.io/), [Sliplane pricing](https://sliplane.io/pricing) and [Sliplane DPA](https://sliplane.io/legal/dpa)
- [Scaleway Serverless Containers](https://www.scaleway.com/en/serverless-containers/), [Scaleway serverless pricing](https://www.scaleway.com/en/pricing/serverless/), [Serverless Containers and Private Networks](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-private-networks/) and [Scaleway Serverless Jobs FAQ](https://www.scaleway.com/en/docs/serverless-jobs/faq/)
- [Hetzner Cloud](https://www.hetzner.com/cloud/) and [Hetzner data processing agreement](https://www.hetzner.com/legal/data-processing-agreement/)
- [Deploy a Node.js server](/docs/guides/nodejs-server), [Containers and static sites](/docs/containers), [Plans and limits](/docs/plans), [Eurobase pricing](/pricing), [Eurobase DPA](/legal/dpa) and [Eurobase subprocessors](/legal/subprocessors)
