Move from Cloudflare Workers to Eurobase
This guide moves a Worker from Cloudflare to Eurobase: the Wrangler config, variables and secrets, bindings and the domain. Eurobase builds it with Wrangler and runs it on the open-source Workers runtime.
What moves where
| On Cloudflare Workers | On Eurobase |
|---|---|
| Worker deployed with Wrangler | Project from your GitHub repository, built with Wrangler |
vars in the Wrangler config | Kept, in env |
| Secrets | Secrets, in env |
Static assets and the ASSETS binding | Served from your project's address |
| D1 databases | A SQLite database of the project, with your migrations |
| KV, R2, Durable Objects, queues | Not available: the build fails |
workers.dev URLs, routes and custom domains | <name>.eurobase.dev and Domains |
Step 1: Check your Worker’s framework
Eurobase runs Workers built with Next.js, Astro, SvelteKit, Nuxt, React Router, TanStack Start, Vite or Hono; see Supported frameworks. A Hono Worker needs its wrangler.json, wrangler.jsonc or wrangler.toml. A Worker written without a framework doesn't run on V8 isolates yet. Move its routes into a Hono app, which has the same fetch export:
import { Hono } from 'hono';
const app = new Hono();
app.get('/', (c) => c.text('Hello from Eurobase'));
export default app;Step 2: Check your Wrangler config
- Keep
main,compatibility_date,compatibility_flagssuch asnodejs_compat,vars,assetsandd1_databases. - Remove KV, R2, Durable Objects, queues and service bindings to other Workers: any of them fails the build with
unsupported_binding. - The
compatibility_datecan't be later than today, andexperimentalorunsafeflags aren't accepted. - Routes, custom domains and Cron Triggers in the config aren't used.
- Commit exactly one lockfile.
Step 3: Collect your secrets
Your vars move with the Wrangler config. Cloudflare doesn't show secret values again, so take them from where you keep them. To list their names:
npx wrangler secret list --name <your-worker>Step 4: 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 5: Add your secrets
In the Eurobase project, open Secrets, add each value and choose the resources that receive it. Every value is stored encrypted. Secrets reach your code when it runs, not during the build, so values your build needs must come from your repository.
A secret can't share a name with a binding or a vars entry in your Wrangler config: rename one of them first.
Step 6: Your D1 data
Each d1_databases entry becomes a SQLite database of the project, and the SQL files in its migrations_dir run in order when a deployment goes live. The database starts empty: rows already in your Cloudflare D1 database aren't copied. Details are on Variables and bindings.
Step 7: 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
- KV, R2, Durable Objects, queues, Workers AI and other Cloudflare services.
- Cron Triggers and other scheduled work.
- The Cache API accepts calls but stores nothing.
- Preview URLs, versions and gradual deployments; roll back from Deployment history instead.
- Limits differ: check memory, CPU per request and outbound requests on Runtime limits.
After the move
- Every push to the project's branch deploys; roll back from Deployment history.
- Stuck? Write to support@eurobase.dev.