# Where to host a Streamlit app in Europe in 2026

Last updated: 2026-11-10

For a Streamlit dashboard that reads its data from files or an external database, **Eurobase** runs it as a container in Europe for free or a flat €10 a month, once you type the `streamlit run` command yourself. **Scalingo** suits an app that needs Postgres next to it and several web containers with sticky sessions. **Clever Cloud** runs Streamlit through a custom run command, **Sliplane** takes the Dockerfile from Streamlit's own tutorial, and **Upsun** suits teams that spin up a complete environment, databases included, for every branch.

## Streamlit hosts at a glance

| Platform | Company | How Streamlit starts | WebSockets | Smallest paid option |
|---|---|---|---|---|
| Eurobase | Warsaw, Poland | Your start command or a `Procfile` `web:` line | Yes, closed after 60 s without data | €10 a month + VAT, whole workspace |
| Scalingo | Strasbourg, France | `web:` line in a `Procfile`, bound to `$PORT` | Yes, by default | €7.20 a month for 256 MB, excl. VAT |
| Clever Cloud | France | `CC_RUN_COMMAND` on port 9000 | Not documented | Per-second billing, no fixed plan price |
| Sliplane | Berlin, Germany | Your Dockerfile | Not documented | €9 per server, excl. VAT |
| Upsun | Paris, France | Start command in `.upsun/config.yaml` | Not documented | €9 per project + €10 per user a month, plus resources |

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

## What to check before you deploy Streamlit

- **The WebSocket.** A Streamlit page talks to the server over one long-lived WebSocket. Every host's proxy has an idle cutoff, so the server's `server.websocketPingInterval` option has to keep traffic flowing more often than that.
- **One session, one process.** Session state lives in the Python process. Streamlit's config reference says that with load balancing or replication you must turn on session stickiness in the proxy, or a reconnect can land on a fresh session.
- **Memory.** Pandas, Plotly and a cached dataset add up quickly. Check the container sizes before you pick the cheapest one.
- **Upload size.** `st.file_uploader` accepts 200 MB by default through `server.maxUploadSize`, which can be larger than what the platform's proxy lets through.
- **The company behind the region.** A European data centre run by a US firm still answers to US law. Read who signs your terms, and see [EU region vs EU company](/i/eu-region-vs-eu-company-cloud-act).

## 1. Eurobase

Eurobase builds Python apps from GitHub, GitLab, Codeberg, Forgejo or Gitea when it finds `requirements.txt` or another Python manifest, and runs the result as a container that scales to zero between visits. It prefills a command only for FastAPI and Flask, so for Streamlit you enter one, such as `streamlit run app.py --server.port 3000 --server.address 0.0.0.0`, matching the Port setting. Set the Health path to `/_stcore/health`, the endpoint Streamlit's Docker tutorial checks. Coding agents can create and deploy the project through the MCP server and CLI.

Three platform rules shape the config. Eurobase closes a WebSocket after 60 seconds without data from your app, so set `websocketPingInterval` well under that. A request body above 100 MiB gets a 413, so lower `maxUploadSize` to match. The Free plan runs one instance per app and Starter up to two, and the docs don't mention sticky sessions.

- **Best for:** an internal dashboard or a public data app whose data sits in files, an API or a database elsewhere, at a fixed monthly price.
- **Price:** the Free plan covers 250 container hours each month. Starter costs €10 and Pro €20 a month + VAT, covering every project in the workspace. Free allows sizes up to 0.25 vCPU with 512 MB, and paid plans go up to 1 vCPU with 2 GB. There are no usage charges today: work over a limit is refused, and containers keep serving.
- **What it lacks:** managed Postgres, MySQL or Redis, Dockerfile builds, background workers and scheduled jobs. The first visit after an idle spell waits for Python to import Streamlit. ISO 27001 and SOC 2 audits are under way, so neither certificate is held yet.

The [containers docs](/docs/containers) list the build, port and connection rules, and [Plans and limits](/docs/plans) the sizes.

## 2. Scalingo

Scalingo is a Strasbourg company that detects a Python app from its dependency files and supports Python 3.11 to 3.15. You declare `web: streamlit run app.py --server.port $PORT --server.address 0.0.0.0` in a `Procfile`, since its Python guide asks apps to bind the port in `$PORT`. Its routing docs say WebSockets work by default, but the app must send data at least once every 59 seconds, and a Sticky Sessions feature pins a visitor to one web container when you run several.

- **Best for:** a Streamlit app with managed Postgres from the same vendor, or one that needs more than one web container.
- **Price:** an S container with 256 MB is €7.20 a month and an M with 512 MB €14.40, excl. VAT, or €8.64 for S in the SecNumCloud region. Postgres starts at €7.20 a month excl. VAT for 512 MB and 10 GB of storage, and you can try everything free for 30 days.
- **What it lacks:** sleeping containers. Its pricing page says containers never sleep, so a dashboard used once a week is billed for the whole month.

## 3. Clever Cloud

Clever Cloud, based in France, builds and deploys your code each time you push to its Git remote. Its Python docs describe `CC_RUN_COMMAND` for launching an app with a custom command, with Nginx kept in front, so Streamlit must listen on port 9000. Pass `--server.port 9000` or set `PORT=9000`. Accepted versions run from Python 3.10 to 3.14.

- **Best for:** a team that wants managed databases and per-second billing from a French provider.
- **Price:** resources are billed by the second up to a ceiling you set, with free credits at sign-up.
- **What it lacks:** a Streamlit guide in its Python docs, which also don't say how the Nginx layer treats a long-lived WebSocket, so test a dashboard left open for a few minutes before you rely on it.

## 4. Sliplane

With Sliplane you pay a fixed price per server and put as many containers on it as fit. Besides detecting the framework, it accepts a Dockerfile or a prebuilt image, so the Dockerfile in Streamlit's own deployment tutorial, which exposes port 8501 and starts `streamlit run` on `0.0.0.0`, is a direct starting point. Several services share one server's CPU and memory.

- **Best for:** a Streamlit app that needs system packages, a database container or a worker beside it, on one bill.
- **Price:** €9 excl. VAT for the Starter server, which has 1 vCPU, 1 GB of memory and 20 GB of disk. Services on it cost nothing extra.
- **What it lacks:** documented WebSocket behaviour. Servers can also sit in the US or Singapore, so check the region field before you confirm.

## 5. Upsun

Upsun is Platform.sh SAS, doing business as Upsun, from Paris. A Python app declares its type and start command in `.upsun/config.yaml`, and databases run as services inside the same project. Each region sits on AWS, Azure, Google Cloud or OVHcloud infrastructure, so look up which one hosts yours on the [regions page](https://docs.upsun.com/development/regions.html).

- **Best for:** teams that test every branch against its own copy of production, data included.
- **Price:** a project fee of €9 a month and €10 a month for each user, with CPU and memory added on top and billed by the second.
- **What it lacks:** a Streamlit guide in its Python docs, and a single fixed price: the bill adds project, user and resource charges.

## How to choose

1. **A dashboard with no database of its own:** Eurobase, starting on the Free plan.
2. **Postgres plus several web containers:** Scalingo, with Sticky Sessions turned on.
3. **Per-second billing from a French provider:** Clever Cloud, after a WebSocket test.
4. **Custom system libraries or helper containers:** Sliplane with Streamlit's Dockerfile.
5. **Your own server:** Hetzner lists cloud servers from €5.49 a month excl. VAT, but its cheapest plans showed as unavailable to order on 10 November 2026, and TLS, a reverse proxy that passes WebSockets and OS updates are then yours to run.

## Frequently asked questions

### Can I host a Streamlit app in Europe for free?

Yes. Eurobase's Free plan runs one Streamlit container with 250 hours of container time a month and stops it when nobody is visiting. Scalingo offers a 30-day trial and Clever Cloud free credits rather than a lasting free tier.

### Where does Streamlit Community Cloud run my app?

Its docs say only that it runs in data centres of infrastructure-as-a-service cloud providers, without naming a region. Every user gets the same resources, roughly 0.078 to 2 CPU cores and 690 MB to 2.7 GB of memory as of February 2024, and apps sleep after 12 hours without traffic. If your data must stay with a European company, deploy on one of the hosts above instead.

### Why does my Streamlit app keep showing "Connection error"?

Usually because a proxy closed the idle WebSocket. Streamlit's config reference suggests adjusting `server.websocketPingInterval` for proxy setups that drop connections. On Eurobase, keep it below 60 seconds; on Scalingo, below 59. With more than one instance, a reconnect also needs session stickiness to find the same session.

### Do I need a Dockerfile to deploy Streamlit?

No. Eurobase, Scalingo and Clever Cloud build from `requirements.txt` and take a start command. Sliplane and your own server are where Streamlit's Dockerfile tutorial helps. For other Python frameworks, see [Python hosting in Europe](/i/python-hosting-europe) and [FastAPI hosting in Europe](/i/fastapi-hosting-europe).

### Where should the data behind a Streamlit dashboard live?

Next to the app if you can. Scalingo, Clever Cloud, Sliplane and Upsun all offer managed databases. Eurobase doesn't, so pair it with [Supabase in an EU region](/docs/supabase) or another provider from [managed Postgres in Europe](/i/managed-postgres-europe).

## Sources

- [Streamlit config.toml reference](https://docs.streamlit.io/develop/api-reference/configuration/config.toml), [Deploy Streamlit using Docker](https://docs.streamlit.io/deploy/tutorials/docker), [Community Cloud: manage your app](https://docs.streamlit.io/deploy/streamlit-community-cloud/manage-your-app) and [Community Cloud trust and security](https://docs.streamlit.io/deploy/streamlit-community-cloud/get-started/trust-and-security)
- [Scalingo pricing](https://scalingo.com/pricing), [Scalingo Python docs](https://doc.scalingo.com/languages/python/start) and [Scalingo routing](https://doc.scalingo.com/platform/internals/routing)
- [Clever Cloud Python runtime](https://www.clever.cloud/developers/doc/deploy/applications/python/) and [Clever Cloud pricing](https://www.clever.cloud/pricing/)
- [Sliplane pricing](https://sliplane.io/pricing)
- [Upsun Python docs](https://developer.upsun.com/docs/languages/python), [Upsun pricing](https://upsun.com/pricing/) and [Upsun regions](https://docs.upsun.com/development/regions.html)
- [Hetzner Cloud](https://www.hetzner.com/cloud/)
- [Eurobase containers](/docs/containers), [Plans and limits](/docs/plans), [Eurobase + Supabase](/docs/supabase) and [Eurobase subprocessors](/legal/subprocessors)
