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 WorkersOn Eurobase
Worker deployed with WranglerProject from your GitHub repository, built with Wrangler
vars in the Wrangler configKept, in env
SecretsSecrets, in env
Static assets and the ASSETS bindingServed from your project's address
D1 databasesA SQLite database of the project, with your migrations
KV, R2, Durable Objects, queuesNot 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_flags such as nodejs_compat, vars, assets and d1_databases.
  • Remove KV, R2, Durable Objects, queues and service bindings to other Workers: any of them fails the build with unsupported_binding.
  • The compatibility_date can't be later than today, and experimental or unsafe flags 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

  1. Create an account, connect GitHub and install the Eurobase GitHub App on the repository.
  2. In Projects, select New project, choose the repository and its root directory, and check what Eurobase detected.
  3. 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

  1. Before the move, lower the TTL of your domain's DNS records so the switch spreads quickly.
  2. In Eurobase, open Domains in the sidebar, select Connect domain, enter your domain and choose the project. Only the workspace owner can connect domains.
  3. Add the DNS records Eurobase shows at your DNS provider, then wait until Eurobase marks the domain ready.
  4. 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.