
Frameworks · · 9 min read
Where to host a Streamlit app in Europe in 2026
Streamlit on European platforms: the start command, the WebSocket timeout and the monthly price of a small dashboard on each host.
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.websocketPingIntervaloption 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_uploaderaccepts 200 MB by default throughserver.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.
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 list the build, port and connection rules, and Plans and limits 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.
- 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
- A dashboard with no database of its own: Eurobase, starting on the Free plan.
- Postgres plus several web containers: Scalingo, with Sticky Sessions turned on.
- Per-second billing from a French provider: Clever Cloud, after a WebSocket test.
- Custom system libraries or helper containers: Sliplane with Streamlit's Dockerfile.
- 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 and FastAPI hosting in 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 or another provider from managed Postgres in Europe.
Sources
- Streamlit config.toml reference, Deploy Streamlit using Docker, Community Cloud: manage your app and Community Cloud trust and security
- Scalingo pricing, Scalingo Python docs and Scalingo routing
- Clever Cloud Python runtime and Clever Cloud pricing
- Sliplane pricing
- Upsun Python docs, Upsun pricing and Upsun regions
- Hetzner Cloud
- Eurobase containers, Plans and limits, Eurobase + Supabase and Eurobase subprocessors
Keep reading
Hosting an edtech app with student data in Europe: what the rules ask in 2026The GDPR duties that change when your users are pupils, what a school will ask you to sign, and which European hosts cover the app, the database and the paperwork.Sovereignty8 min read
What is a subprocessor list and how do you read one?The GDPR rules behind a subprocessor list, the columns that matter, the warning signs and a worked reading of two real hosting lists.Sovereignty8 min read
