Move from Cloudflare Pages to Eurobase

This guide moves a site from Cloudflare Pages to Eurobase: build settings, environment variables, redirects and headers, functions and the domain. Eurobase builds frameworks with the same Cloudflare adapters and runs them on the open-source Workers runtime.

What moves where

On Cloudflare PagesOn Eurobase
Project from a Git repositoryProject from the same GitHub repository
Build command and output directoryDetected from your framework; plain HTML needs no build
Variables and secretsSecrets, available when your code runs
_redirects and _headersRead from the static output of apps on V8 isolates
Pages Functions in /functionsRoutes of your framework, or Eurobase Functions (TypeScript)
Preview deploymentsNot available yet: one branch per project

Step 1: Collect your variables and secrets

Plain-text variables are in your Pages project's settings, or under vars in its Wrangler config. Cloudflare doesn't show secret values again, so take them from where you keep them. To list their names:

npx wrangler pages secret list --project-name <your-project>

Step 2: Remove the Pages Wrangler config

A Wrangler config with pages_build_output_dir makes Eurobase build the project as a container instead of running it on V8 isolates. Delete that file before you create the project; Eurobase adds the framework adapter during the build without changing your repository. Add its vars as secrets in step 4.

Step 3: 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 4: 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.

Step 5: Check redirects and headers

Apps 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 6: Move your Pages Functions

Eurobase doesn't run the /functions directory. Move each handler into a server route of your framework, such as an Astro endpoint or a Next.js route handler, or rewrite it as a Eurobase Function in TypeScript. KV, R2, Durable Objects and queues bindings aren't available. D1 databases are: see 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

  • Preview deployments for other branches and pull requests.
  • A plain HTML site without a build is served as-is: no _redirects, _headers, custom 404 page or single-page-app fallback.
  • Cloudflare features outside the runtime, such as Web Analytics and Access.

After the move

  • Every push to the project's branch deploys; roll back from Deployment history.
  • Stuck? Write to support@eurobase.dev.