Cloud Quickstart
Bring up ingest, dashboard, and report downloads using Worker + R2 + Supabase.
Required Services
- Cloudflare Worker (ingest and signed download endpoints)
- Cloudflare R2 bucket (
cb-reports-raw) - Supabase US project (data plane)
- Supabase EU project (data plane)
- Supabase control-plane project (keys, projects, usage)
Configure Worker Secrets
text
wrangler secret put US_SUPABASE_SERVICE_ROLE_KEY
wrangler secret put EU_SUPABASE_SERVICE_ROLE_KEY
wrangler secret put CONTROL_SUPABASE_SERVICE_ROLE_KEY
wrangler secret put DASHBOARD_WORKER_TOKEN
wrangler secret put DASHBOARD_SHARED_SECRET
# Optional synthetic alert webhook
wrangler secret put SYNTHETIC_ALERT_WEBHOOK_URL
Deploy Worker
text
cd cloud/circlebox-cloud/edge/worker
npm install
npm run deploy
Or from repo root:
text
scripts/deploy_phase3_cloud.sh --ingest-key "<ingest_key_from_/app/projects/.../keys>"
Dashboard Env
Set these in cloud/dashboard/.env.local:
DASHBOARD_DEFAULT_PROJECT_ID(optional)DASHBOARD_DEFAULT_REGIONDASHBOARD_US_SUPABASE_URLDASHBOARD_US_SUPABASE_SERVICE_ROLE_KEYDASHBOARD_EU_SUPABASE_URLDASHBOARD_EU_SUPABASE_SERVICE_ROLE_KEYDASHBOARD_WORKER_BASE_URLDASHBOARD_WORKER_TOKENDASHBOARD_PUBLIC_BASE_URLDASHBOARD_CONTROL_SUPABASE_URLDASHBOARD_CONTROL_SUPABASE_SERVICE_ROLE_KEYDASHBOARD_APP_SESSION_SECRET
Control Plane Onboarding
- Open
/signupand create your account. - On
/app/onboarding, choose:- Create New Project
- Join Existing Project (invite token)
- Copy generated
ingestkey from/app/projects/<project_id>/keys. - Configure SDK cloud uploader with worker endpoint + ingest key.
- Open
/app/projects/<project_id>/keysto rotate/revoke/create additional keys. - Owners create token invites from
/app/projects/<project_id>/invites; teammates accept on/app/invites/accept.
CLI Alternative
You can manage projects and keys without UI:
text
scripts/cli/circlebox.sh auth login --control-url "<url>" --service-role "<key>"
scripts/cli/circlebox.sh project create --organization-id "<org_id>" --name "My App" --region us
scripts/cli/circlebox.sh key create --project-id "<project_id>" --type ingest
Validate End-to-End
- Ingest one report from any SDK uploader.
- Open
/dashboard/crashes. - Open detail row.
- Download raw report from dashboard action.