Skip to content

Deploy to Cloudflare

Provision D1 + KV, wire the resource IDs, and deploy the Worker and status page to Cloudflare.

Updated View as Markdown

StatusBeam runs entirely on Cloudflare: a Cron Worker for checks and an Astro site for the page, backed by D1 (time-series) and KV (current snapshot). The repo ships a scripted path and a manual one — the outline below mirrors the repo’s DEPLOYMENT.md, which is the authoritative reference.

Steps

  1. Provision D1 + KV. Create the D1 database and KV namespace in your Cloudflare account.

  2. Wire the resource IDs into each app’s wrangler.jsonc (the database_id and KV id placeholders).

  3. Write your config — see Configuration.

  4. Apply the D1 schema to create the time-series and incident tables.

  5. Upload the config to KV under the config key.

  6. Set secrets for optional integrations (Slack/webhook URLs live inside the KV config, cache-purge credentials as Worker secrets).

  7. Deploy.

    bun run deploy

    This deploys the check Worker and the web app to Cloudflare.

  8. Verify the first cron run has populated D1/KV and the page renders.

Deploying these docs

This documentation site is a separate app (apps/docs). It is a fully static Nimbus (Astro) build deployed to a Cloudflare Pages project (statusbeam-docs) — no D1/KV, no server adapter:

bun run --filter '@statusbeam/docs' deploy

The site is reached at docs.statusbeam.dev (a custom domain on the Pages project), while its bundled assets (_astro/* JS, CSS, fonts) load from the project’s own statusbeam-docs.pages.dev origin. That split is configured via Astro’s build.assetsPrefix in astro.config.ts; the cross-origin assets are made CORS-readable by public/_headers.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close