The website for celld-operator — the Kubernetes operator that runs celld fleets, so you can host Cloudflare Workers and Durable Objects on your own cluster. Landing page plus 13 documentation pages, live at celld-operator.io.
Plain HTML, one stylesheet, no JavaScript, no framework. The only build step assembles documentation pages from content fragments so every page shares one chrome; you can serve the repository root directly from any static host.
git clone https://github.com/ezgamehost/celld-operator.io
cd celld-operator.io
python3 -m http.server 8080 # http://localhost:8080Edit a docs page, regenerate, refresh:
$EDITOR build/content/quick-start.html
python3 build/build.pybuild.py needs only the Python 3 standard library.
| Path | What it is | Edit? |
|---|---|---|
index.html |
Landing page | Yes — hand-maintained |
build/content/*.html |
Body fragments for the 13 docs pages | Yes — this is where docs live |
build/build.py |
Assembles fragments into pages; owns chrome, nav, and metadata | Yes — for structure and templates |
assets/style.css |
The single shared stylesheet | Yes |
docs/**/index.html |
Generated docs pages | No — regenerated by build.py |
sitemap.xml, 404.html |
Generated | No |
assets/og.png, favicon.svg |
Social-preview image and favicon | Rarely |
CNAME |
Custom domain for GitHub Pages | Rarely |
A fragment is just the page body: headings, prose, tables, and
<pre class="code"> blocks. Everything around it — <head> and metadata, header,
sidebar navigation, breadcrumbs, prev/next pager, footer, JSON-LD — comes from
build.py, so pages stay consistent and a chrome change lands everywhere at once.
- Write
build/content/<slug>.html(body only). - Register it in the
PAGESlist near the top ofbuild/build.py:
("<slug>", "<sidebar group>", "<nav title>", "<html title>", "<meta description>")Groups, in order: Getting started, Concepts, Guides, Reference. Position
within PAGES sets both the sidebar order and the prev/next pager.
- Run
python3 build/build.py. The page, its sidebar entry, breadcrumbs, pager links, andsitemap.xmlentry all appear. - Bump
LASTMODinbuild.pywhen publishing meaningful changes.
Every push to main triggers .github/workflows/deploy.yml, which regenerates the docs
pages before publishing to GitHub Pages — so the deployed site always matches the
fragments even if someone forgets to run build.py. build/, README.md, and
.github/ are excluded from what ships.
The documentation aims to be accurate rather than promotional, because it describes an alpha operator for an alpha runtime:
- Verify claims against source. Operator behavior lives in
celld-operator (CRD fields in
api/v1alpha1/workerapp_types.go, flags incmd/main.go, reconciled resources ininternal/controller/); celld's own behavior lives in denoland/celld. Prefer citing what the code does over what a design once intended. - Name limits explicitly. Unsupported Cloudflare APIs, disqualified object stores, and unimplemented fields belong in the docs, not omitted from them.
- Keep examples runnable. YAML examples use the real API group
(
celld-operator.io/v1alpha1) and real field names; commands should work if pasted. - Version-sensitive facts drift. Defaults, flags, and the Cloudflare compatibility matrix change upstream — re-check them when celld or the operator releases.
Site content is © the celld-operator authors, under the repository's Apache-2.0 license. celld is a project of Deno Land Inc. Cloudflare, Cloudflare Workers, and Durable Objects are trademarks of Cloudflare, Inc. This site describes compatibility and is not affiliated with, sponsored by, or endorsed by Deno Land or Cloudflare.
- Operator source: ezgamehost/celld-operator
- Upstream runtime: denoland/celld