Move from Firebase Hosting to Eurobase
This guide moves a site from Firebase Hosting to Eurobase: the public folder or the build, the rules in firebase.json, functions and the domain. Firebase services your app calls from the browser can stay where they are.
What moves where
| On Firebase Hosting | On Eurobase |
|---|---|
public folder of plain HTML | Published as-is, with that folder as the root directory |
A single-page app built before firebase deploy | Built by Eurobase from your repository |
redirects and headers in firebase.json | _redirects and _headers files in your static output |
Rewrite of every path to /index.html | Built in for Vite apps |
| Rewrites to Cloud Functions or Cloud Run | Eurobase Functions (TypeScript) or a server route of your app |
| Preview channels | Not available yet: one branch per project |
Step 1: Choose what Eurobase deploys
- Plain HTML: choose the folder you deploy, usually
public, as the root directory. It needs anindex.html; files that aren't web files are left out. - A build: choose the folder with your
package.json. Eurobase builds Vite, React Router, Next.js, Astro, SvelteKit, Nuxt and TanStack Start apps and runs them on V8 isolates. Commit exactly one lockfile.
Step 2: Rewrite your firebase.json rules
Eurobase doesn't read firebase.json. A Vite app already sends unknown paths to index.html. Write other redirects and headers as files in your build output; in a Vite app, put them in its public folder. A redirect in _redirects:
/old-page /new-page 301A header rule in _headers:
/assets/*
Cache-Control: public, max-age=31536000, immutableApps on V8 isolates read _redirects and _headers from their static output, up to 2,000 static and 100 dynamic redirects and 100 header rules. A rewrite (status 200) must point to a path on your own site, and a rule Eurobase can't read stops the build with the reason. A plain HTML site published without a build ignores these files.
Step 3: Create the project
- Create an account, connect GitHub and install the Eurobase GitHub App on the repository.
- In Projects, select New project, choose the repository and its root directory, and check what Eurobase detected.
- Select Save and Deploy.
Step 4: Move rewrites to functions
Paths that firebase.json sends to Cloud Functions or Cloud Run don't reach them from Eurobase. Rewrite each one as a Eurobase Function in TypeScript or a server route of your framework, or call the existing function by its own URL. Values your code needs at run time go in the project's Secrets.
Step 5: Keep Firebase services working
Firebase Authentication, Firestore and other services your app calls from the browser keep working from the new address. If you use Firebase Authentication, add <name>.eurobase.dev and your domain to its authorized domains in the Firebase console.
Step 6: Move your domain
- Before the move, lower the TTL of your domain's DNS records so the switch spreads quickly.
- In Eurobase, open Domains in the sidebar, select Connect domain, enter your domain and choose the project. Only the workspace owner can connect domains.
- Add the DNS records Eurobase shows at your DNS provider, then wait until Eurobase marks the domain ready.
- Once your domain serves the Eurobase app, remove it from the old platform.
What doesn’t carry over
- Preview channels and multiple Hosting sites in one project; create one Eurobase project per site.
cleanUrls,trailingSlashandi18nsettings. On a plain HTML site,/aboutservesabout/index.html, notabout.html.- A custom
404.htmlon a plain HTML site: a missing file returns a plain 404.
After the move
- Every push to the project's branch deploys; roll back from Deployment history.
- Stuck? Write to support@eurobase.dev.