Skip to main content

Studio Board Deployment

Type: RunbookStatus: DraftOwner: Cloudberrie StudioVersion: 4.2.0Updated: 2026-07-17

Architectureโ€‹

accounts@โ†’GitHub org + private repoโ†’Cloudflare Pagesโ†’Firebase Auth + Firestore

One-Time Setupโ€‹

Create GitHub accountโ€‹

Use accounts@cloudberrie.com; recommended username cb-engops. Verify email and turn on 2FA.

Create GitHub organizationโ€‹

Create cloudberrie-studio and use accounts@ as contact email.

Create private repositoryโ€‹

Name: cloudberrie-studio-board. Leave README, .gitignore, and license unchecked if files already exist locally.

Push codeโ€‹

git init\ngit add .\ngit commit -m "Initial commit: Cloudberrie Studio Board"\ngit branch -M main\ngit remote add origin https://github.com/cloudberrie-studio/cloudberrie-studio-board.git\ngit push -u origin main

Create Cloudflare accountโ€‹

Use accounts@cloudberrie.com and enable 2FA.

Deploy to Pagesโ€‹

Workers & Pages โ†’ Create โ†’ Pages โ†’ Connect to Git. Static settings: Framework None, build command blank, output directory /.

Protect stagingโ€‹

Use Cloudflare Access / Zero Trust to allow only @cloudberrie.com identities.

Publish Firestore rulesโ€‹

Firebase Console โ†’ Firestore Database โ†’ Rules โ†’ paste firestore.rules โ†’ Publish. Cloudflare never deploys Firestore rules.

Staging vs Productionโ€‹

StagingProduction
pages.dev URL, Cloudflare Access, review and testingboard.cloudberrie.com after cloudberrie.com DNS is safely managed in Cloudflare
Realistic test data onlyReal Firestore records only; no sample data
Rules and authentication verifiedMonitoring, backup, permissions, and release approval required

Production rule: do not show sample or demo records when logged into production mode. Only Firestore production records may be displayed.

Checklistโ€‹

GitHub account + 2FA Cloudflare account + 2FA GitHub organization Private repository Code pushed to main Pages deployment successful Access policy enabled Firestore rules published Auth and permissions tested Production contains no sample data