Getting started
Documentation
Run your Cloudflare Workers and Durable Objects on Rivet with no changes to your app code.
Open Orange reads your Wrangler configuration and runs the same Worker on Node.js. Each Durable Object runs as a Rivet Actor with its own SQLite database.
- Run.
orange devruns your Worker on your machine. - Deploy.
orange deploybuilds an image of your Worker and rolls it out to a Rivet cluster.orange serveruns it on your own Rivet Engine. - Migrate.
orange migratemoves your Durable Objects and D1 databases from Cloudflare while your app serves.
Quickstart
You need a Worker project with a wrangler.jsonc, wrangler.json, or wrangler.toml, Node.js 22 or later, and pnpm. Deploying also needs Docker.
Step 1: Install
Clone Open Orange next to your project, then add it to your Worker project. Your code and your Wrangler configuration do not change.
git clone https://github.com/rivet-dev/open-orange
cd open-orange && pnpm install
cd ../my-worker && pnpm add -D ../open-orange Step 2: Run your Worker
Your Worker answers on http://localhost:8787. Each Durable Object runs as a Rivet Actor with its own SQLite database, kept in .open-orange/.
pnpm orange dev Step 3: Deploy
orange deploy builds an image of your Worker and rolls it out to a Rivet cluster, then prints its public URL. See the deploy guide.
pnpm orange login
pnpm orange link --cluster <cluster-name>
pnpm orange deploy Step 4: Move your data from Cloudflare
orange migrate moves Durable Objects and D1 databases while your app serves. Skip this step if your app has no data on Cloudflare. See the migration guide.
pnpm orange migrate prepare
pnpm orange migrate backfill --url https://app.example.com Explore the docs
- Deploy Deploy a Worker to a Rivet cluster with orange deploy, or build the image and run it on your own Rivet Engine.
- Migrate from Cloudflare Move SQLite-backed Durable Objects and D1 databases from Cloudflare to Orange while your app serves.
- Bindings Every Cloudflare binding on Open Orange: whether it runs, how, and what differs from Cloudflare.
- Binding configuration Which Wrangler bindings run on OpenOrange as is, which need a service that you supply, and which are not supported.
- Errors What Orange prints when a command fails, and what the report link holds.