Cloudflare: First Cloudberrie Website Deployment
Type: RunbookStatus: Ready for ReviewOwner: Cloudberrie StudioVersion: 4.2.0Updated: 2026-07-17
On this page: PurposePrerequisitesGitHubCloudflare Pagespages.dev testDNS migrationCustom domainVerificationRollback
Purpose & Expected Result
Deploy the Cloudberrie public website as the first Cloudflare Pages project, validate it on a temporary Pages URL, move DNS safely, then make cloudberrie.com the production domain.
Local website folder→GitHub private repository→Cloudflare Pages→pages.dev→cloudberrie.com
Prerequisites
Final Cloudberrie website folder ready Git installed GitHub account and organization available Cloudflare account with 2FA Domain registrar access Google Workspace Gmail is active Existing DNS records exported A non-domain email available for outage testing
Do not change nameservers first. Deploy and test on the pages.dev URL before touching DNS.
1. Create the Website Repository
Create the repository
Inside the Cloudberrie GitHub organization, create a private repository such as cloudberrie-website. Leave README, .gitignore, and license unchecked if local files already exist.
Push the website
git init\ngit add .\ngit commit -m "Initial commit: Cloudberrie website"\ngit branch -M main\ngit remote add origin https://github.com/cloudberrie-studio/cloudberrie-website.git\ngit push -u origin main
Verify GitHub
Open the repository and confirm the website files are visible, the repository is private, and no secrets or credentials were committed.
2. Create the Cloudflare Pages Project
Connect GitHub
Cloudflare Dashboard → Workers & Pages → Create → Pages → Connect to Git. Authorize the Cloudflare GitHub App only for the required organization/repositories.
Select repository
Choose cloudberrie-website and the main production branch.
Configure the build
| Setting | Value for static site |
|---|---|
| Framework preset | None |
| Build command | Leave blank |
| Build output directory | / or the folder containing index.html |
| Environment variables | None unless the site explicitly needs them |
Deploy
Start deployment and wait for a successful status. Cloudflare creates a URL similar to cloudberrie-website.pages.dev.
3. Test the pages.dev Deployment
Home page loads over HTTPS Header, navigation, and footer work Images and fonts load Mobile layout is correct Contact links and forms work No console errors No local file paths remain Metadata and favicon are correct
Gate: do not connect cloudberrie.com until this temporary deployment is approved.
4. Prepare and Move DNS Safely
Export the current zone
Capture every existing record from the current DNS provider before making changes.
| Record group | Why it matters |
|---|---|
| MX | Controls where @cloudberrie.com email is delivered |
| SPF TXT | Authorizes email senders |
| DKIM TXT | Signs outgoing Workspace email |
| DMARC TXT | Defines authentication policy and reporting |
| Verification TXT | Google, Search Console, Meta, and third-party ownership |
| A / AAAA / CNAME | Existing website and subdomain routing |
Add the zone to Cloudflare
- Cloudflare → Add a domain/site → enter cloudberrie.com.
- Select the intended plan.
- Review Cloudflare’s imported DNS records line by line against the export.
- Add any missing Google Workspace and verification records before changing nameservers.
Email protection rule: the Cloudflare orange proxy must not be applied to MX or mail-related records. DNS-only is required where applicable.
Change nameservers
- Copy the two Cloudflare nameservers.
- Open the registrar where cloudberrie.com is registered.
- Replace the existing authoritative nameservers.
- Save and wait for Cloudflare to show the zone as active.
5. Connect the Production Domain
Add custom domain
Cloudflare Pages project → Custom domains → Set up a custom domain → enter cloudberrie.com.
Add www
Add www.cloudberrie.com as well. Choose a canonical domain and redirect the other version to it.
Wait for SSL
Cloudflare provisions certificates automatically. Do not declare completion until both root and www load securely without warnings.
6. Post-Deployment Verification
Website
cloudberrie.com loads www redirects correctly HTTPS is valid pages.dev remains available for diagnosis Forms and links work Mobile and desktop approved
Email
Send external email to hello@ Send external email to admin@ Reply from hello@ Confirm MX using Admin Console or DNS checker Confirm SPF/DKIM/DMARC remain published No unexpected bounce or spam placement
Completion rule: the website deployment is not complete until website and email tests both pass.
7. Rollback & Troubleshooting
| Problem | Likely cause | Action |
|---|---|---|
| Website works on pages.dev but not custom domain | DNS/custom-domain provisioning | Review Pages custom domain status, DNS records, and SSL issuance |
| Email stopped after nameserver change | Missing or incorrect MX/TXT records | Restore exported Workspace records immediately; verify DNS-only |
| Old website still appears | DNS cache or stale A/CNAME | Remove conflicting records and allow propagation |
| Build failed | Wrong output directory or unsupported build | Confirm index.html location and static-site settings |
Rollback option: if critical email or website issues cannot be resolved promptly, restore the previous nameservers at the registrar using the original DNS provider’s zone. Keep the exported DNS records and prior nameservers in the deployment record.
Release Record
Record repository URL, Pages project name, pages.dev URL, production domain, DNS change date, approver, Cloudflare account owner, registrar, and final verification result.