Repolode
denoland

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. 1

    Run the official install script from the README to install the celld binary

  2. 2

    Install esbuild and put it on PATH, since Worker projects need it

  3. 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