Frameworks · · 9 min read

Where to host a Vue app in Europe in 2026

Five European homes for a Vue single-page app built with Vite, compared on price, who runs them and how each one handles Vue Router history mode.

A Vue app built with create-vue is a Vite project, so after npm run build it's a dist folder of static files. Eurobase builds it from Git and serves it from European infrastructure, with the index.html fallback for Vue Router already in place, for free or a flat €10 a month. statichost.eu is a Swedish host made only for static sites, Clever Cloud and Scalingo suit teams that want the Vue front end next to a backend and a managed database, and Coolify on Hetzner suits people who'd rather run their own server.

If your app uses server-side rendering through Nuxt, read Nuxt hosting in Europe instead.

Vue hosting in Europe at a glance

PlatformCompanyHow a Vue build is servedStarts atHistory-mode fallback
EurobaseWarsaw, PolandBuilt from Git, run on V8 isolatesFree, then €10 a month + VATBuilt in for Vite apps
statichost.euStockholm, SwedenBuilt from Git, served as static filesFree for 1 site, then €9 a monthA /* /index.html 200 rewrite
Clever CloudFranceStatic application, build command and web root set by youFree credits, then by instance sizeNot documented
ScalingoStrasbourg, FranceNode.js and Nginx buildpacks, or a small Express server€7.20 a month for 256 MB, excl. VATtry_files in your nginx.conf
Coolify on HetznerOpen source, on a German hostNixpacks build, Static site typeFree software, plus a Hetzner server from €5.49 a month excl. VAT when it can be orderedSame Static setup, per its Vue page

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

What to check before you pick a host for Vue

  • Refreshing a deep link. With createWebHistory(), Vue Router's docs warn that opening /user/42 directly returns 404 unless the server falls back to index.html. Find out how each host does that, and add a catch-all route in the router so real 404s still show a page.
  • Build-time variables. Anything in import.meta.env.VITE_* is baked into the JavaScript at build time. The host must pass those values to the build, and they're visible to every visitor, so keep secrets out of them.
  • Where the API lives. A Vue SPA usually calls a backend. A host that can also run that API, or sit next to a database, saves you a second provider and a CORS setup.
  • Who you sign with. The company on the contract decides which laws apply, not the city of the server. See EU region vs EU company.

1. Eurobase

Eurobase deploys from GitHub, GitLab, Codeberg, Forgejo or Gitea. It detects a Vite project, installs exactly what your lockfile lists and runs the build itself, with no build command or output folder to enter. Coding agents can also deploy it through the Eurobase MCP server or CLI. The result runs on V8 isolates on European infrastructure run by Scaleway, a French provider. Unknown paths already go to index.html, so Vue Router in history mode works on refresh. Redirects and headers go in _redirects and _headers files in Vite's public folder.

VITE_ values belong under Build as variables, not secrets, because Vite writes them into the bundle. If a build secret ever lands in the output, Eurobase stops the deployment rather than publish it. Vite needs to be 6.1.0 or later, and you commit exactly one lockfile.

  • Best for: Vue SPAs that may later need an API, a function or a SQLite database on the same platform, at a price that doesn't move with traffic.
  • Price: free for 2 projects. Starter costs €10 and Pro €20 a month + VAT, and that covers the whole workspace however many members join. Usage isn't billed today: work over a limit is refused, apps on V8 isolates and Functions stop until the monthly reset, and containers and static sites keep serving.
  • Company: a business registered in Warsaw, Poland.
  • What it lacks: preview deployments, Dockerfile builds, a worldwide CDN and managed Postgres, MySQL or Redis. Neither ISO 27001 nor SOC 2 is held yet, and both are in progress.

The Deploy a static site guide covers Vite builds, and Workers lists the build limits.

2. statichost.eu

statichost.eu is an independently owned host in Stockholm that only serves static files. It clones your repository from any Git provider, runs your build and publishes the output, and says every layer runs on European providers, with no AWS or Cloudflare. For a Vue SPA you add a /* /index.html 200 rewrite, which its routing docs describe as the way a client-side app should work.

  • Best for: a Vue front end whose API already lives somewhere else.
  • Price: the free Hobby plan covers 1 site, 10 GB of bandwidth and 100 build minutes, and asks for no card. Starter at €9 a month includes 500 GB, with extra traffic at €1 per 10 GB, and Professional at €49 a month raises that to 1 TB and adds a performance CDN.
  • What it lacks: server code. Its docs say server rendering isn't supported, branch preview links are marked coming soon, and the worldwide CDN is in private beta.

3. Clever Cloud

Clever Cloud, a French platform, runs static sites, Node.js apps and databases from one account. For a Vue build, you create a Static application, set CC_BUILD_COMMAND to your build and CC_WEBROOT to /dist. It serves the folder with Static Web Server, or with Caddy if you commit a Caddyfile, and an sws.toml file sets things like a 404 page or cache headers. Its infrastructure page lists datacenters around Paris and elsewhere in France, plus sites such as London and Warsaw, most of them marked ISO 27001.

  • Best for: a Vue front end that sits beside a Node.js or Python API and a managed Postgres from the same provider.
  • Price: billed by the second by instance size and count, with free credits and no card needed to start.
  • What it lacks: an index.html fallback for history mode in its static guide, so you work out the server setting yourself.

4. Scalingo

Scalingo is a Heroku-style platform run by Scalingo SAS in Strasbourg. Its docs offer two ways to serve a built front end: a small Express server that serves dist, or the Node.js and Nginx buildpacks together, where Node.js builds the app and Nginx serves it. The Nginx config in its docs already includes try_files $uri $uri/ /index.html, which is the fallback Vue Router asks for. There is a SecNumCloud region next to the standard one.

  • Best for: teams already on Scalingo for the backend, or French projects that need its SecNumCloud region.
  • Price: the 256 MB container is €7.20 a month excl. VAT, and €8.64 in the SecNumCloud region. A 30-day free trial is available.
  • What it lacks: a Vue page in its documentation. You assemble the buildpacks, nginx.conf and Procfile yourself, and a container runs all the time even for plain files.

5. Coolify on Hetzner

Coolify is an open-source dashboard that gives a server you rent Git deploys, and its docs include a Vue page. For a static SPA you pick the Nixpacks build, choose Static as the site type and set the output to dist. Its recipe for an app that uses Vue Router lists the same steps. Hetzner, a German host, rents the servers.

  • Best for: developers who are at home on Linux and want many small sites on one machine.
  • Price: self-hosted Coolify is free, and Coolify Cloud is $5 a month for 2 connected servers. A Hetzner CPX02 in Helsinki is listed at €5.49 a month excl. VAT, or €6.49 in Falkenstein or Nuremberg, but Hetzner showed its cheapest plans as unavailable to order on 10 November 2026.
  • What it lacks: someone to look after the box. Operating system patches, backups and a dead disk at 3 a.m. are your problem.

How to choose

  • Pick Eurobase if you want to push a Vite project and get a working history-mode app without touching server config, and might add an API later.
  • Pick statichost.eu if the Vue app is purely a front end and you want a small European company running every layer.
  • Pick Clever Cloud or Scalingo if the backend and its Postgres database are the bigger part of the bill and the front end just rides along.
  • Pick Coolify on Hetzner if you'd rather spend your own time than money.

Coming from another host? See Migrate from Netlify, Migrate from Vercel or Migrate from GitHub Pages.

Frequently asked questions

Why does my Vue app show 404 when I refresh a page?

Vue Router's history mode changes the URL in the browser without asking the server. When you refresh /settings, the server looks for that file, doesn't find it and answers 404. The fix is a fallback that serves index.html for unknown paths. Eurobase sets it up for Vite apps, and statichost.eu and Scalingo document the rule you add yourself.

Can I host a Vue app in Europe for free?

Yes. Eurobase has a Free plan with 2 projects, statichost.eu's Hobby plan covers 1 site, and Clever Cloud gives free credits to start. Self-hosted Coolify is free too, but you still pay for the server it runs on.

Do I need a Node.js server to run a Vue app?

Not for a single-page app. npm run build produces static files, and Vite's own docs say vite preview is only for checking the build locally, not for production. You need a Node.js server only for server-side rendering, which most teams do with Nuxt.

Where should I put my Vue app's API keys?

Not in VITE_ variables. Vite writes those into the JavaScript that every visitor downloads. Keep secret keys on a server or function that the Vue app calls, and use VITE_ only for public values such as an API address.

Sources

Deploy your app in Europe

Sign up