A self-hosted, Cloudflare Workers-compatible platform packaged as a single Rust binary for running Workers, KV, D1, R2 and more on one machine.
denoland/celld
A self-hosted daemon that runs Cloudflare Workers applications and Durable Objects on your own machines, with state stored in an S3, GCS, or Azure bucket.
Open-source alternative to:Cloudflare Workers
- Stars
- 6,057
- Forks
- 408
- Open issues
- 71
- Last commit
- 20 hours ago
What is it?
celld runs a Cloudflare Workers application on your own machines. It deploys directly from an existing wrangler.json and supports Workers, Durable Objects, KV, Queues, D1, R2, Workflows, Cron Triggers, and static assets. Each Durable Object becomes a named cell with its own SQLite database, and long-term state lives in an S3-compatible, Google Cloud Storage, or Azure Blob Storage bucket.
Each node is a single celld process that embeds V8 and executes Wrangler bundles. Nodes sharing one bucket form a fleet. Ownership of each cell is claimed with a conditional bucket write, so only one node owns a cell at a time, and no separate consensus or control plane service is required. With two or more nodes, committed SQLite writes are replicated to peers before the bucket upload, which lowers write latency compared with a single node that waits on the bucket.
The project also provides CLI commands for operating a deployed fleet, including diagnose, cell listing, D1 migrations, KV bulk import, R2 object access, and Queue control. Local development is available through celld dev without a cloud bucket.
Key features
- 01Runs Workers, Durable Objects, KV, Queues, D1, R2, Workflows and Cron Triggers on your own nodes.
- 02Deploys from an existing wrangler.json, with esbuild used for Worker code.
- 03Gives each Durable Object its own SQLite database, with ownership claimed through bucket writes.
- 04Stores long-term state in S3-compatible, Google Cloud Storage, or Azure Blob Storage buckets.
- 05Replicates writes to peer nodes to reduce write latency in multi-node fleets.
- 06Provides a local dev mode that runs without a cloud bucket.
Use cases
- Running a Cloudflare Workers-style backend on your own infrastructure.
- Hosting stateful Durable Object applications with data kept in your own object storage.
- Migrating existing Wrangler projects away from the hosted Cloudflare platform.
- Testing Workers and Durable Objects locally before deployment.
Quick start
- 1
Run the official install script from the README to install the celld binary
- 2
Install esbuild and put it on PATH, since Worker projects need it
- 3
Run the application locally without a cloud bucket
celld dev
Things to know
- Worker projects also need esbuild on PATH.
- A single node waits for the bucket on every write, so writes are much slower; two or more nodes are recommended for latency.
- Services that need the Cloudflare network, a GPU, or a browser farm are out of scope.
- Containers support is marked experimental.
In collections
Topics
FAQ
- What is celld?
- A self-hosted daemon that runs Cloudflare Workers applications and Durable Objects on your own machines, with state stored in an S3, GCS, or Azure bucket. celld runs a Cloudflare Workers application on your own machines. It deploys directly from an existing wrangler.json and supports Workers, Durable Objects, KV, Queues, D1, R2, Workflows, Cron Triggers, and static assets. Each Durable Object becomes a named cell with its own SQLite database, and long-term state lives in an S3-compatible, Google Cloud Storage, or Azure Blob Storage bucket.
- Is celld free to use? What license does it have?
- celld is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is celld still maintained?
- Actively maintained. The last commit to celld was on Oct 21, 2026.
- What can I use celld for?
- Running a Cloudflare Workers-style backend on your own infrastructure. Hosting stateful Durable Object applications with data kept in your own object storage. Migrating existing Wrangler projects away from the hosted Cloudflare platform. Testing Workers and Durable Objects locally before deployment.
- How do I install celld?
- Run the official install script from the README to install the celld binary Install esbuild and put it on PATH, since Worker projects need it Run the application locally without a cloud bucket: celld dev
- Where can I get celld?
- The source code and installation instructions are on GitHub: https://github.com/denoland/celld
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A git server where each repository is a Durable Object, running on Cloudflare Workers or self-hosted on celld.
A TypeScript SDK for building persistent, stateful AI agents on Cloudflare Durable Objects, with real-time state sync, scheduling, and MCP support.
An open-source agentic platform for building and deploying full-stack apps from natural-language prompts, running entirely on Cloudflare.
A minimal Cloudflare Worker that serves one AI-generated markdown essay per domain per UTC day, cached to keep model calls to one per day.
S3-compatible distributed object storage for small-to-medium self-hosted clusters spread across multiple physical locations.