Cloudflare
Cloudflare hosts all frontend applications and static sites, and runs the Contact Form API as a Worker.
Cloudflare Pages projects
Section titled “Cloudflare Pages projects”| Project variable | Service | Build command | Output dir |
|---|---|---|---|
CLOUDFLARE_CLOUD_APP_NAME | Cloud Frontend SPA | npm run build | dist/ |
CLOUDFLARE_MANAGE_APP_NAME | Management Frontend | npm run build | dist/ |
CLOUDFLARE_WEBSITE_NAME | Marketing Website | npm run build | dist/ |
CLOUDFLARE_CLOUD_DOCS_NAME | Public Documentation | npm run build | dist/ |
CLOUDFLARE_CLOUD_INTERNAL_DOCS_NAME | Internal Documentation (this site) | npm run build | dist/ |
Internal Documentation (this site)
Section titled “Internal Documentation (this site)”Configured in Internal-Documentation/wrangler.toml:
name = "monozu-internal-docs"pages_build_output_dir = "dist"CI/CD pipeline: Internal-Documentation/pipelines/azure-pipelines.yml — triggers on push to master, deploys to Cloudflare Pages using credentials from variable group cloudflare-cloud.
Variable group: cloudflare-cloud
Section titled “Variable group: cloudflare-cloud”Used by Azure DevOps pipelines to deploy to Cloudflare Pages. Contains:
CLOUDFLARE_API_TOKEN— Cloudflare API token with Pages deployment permissionsCLOUDFLARE_ACCOUNT_ID— Cloudflare account ID- Per-project
CLOUDFLARE_*_NAMEvariables
Cloudflare Workers — Contact Form API
Section titled “Cloudflare Workers — Contact Form API”The marketing website contact form submits to a Cloudflare Worker at WebsiteContactApi/:
| Setting | Value |
|---|---|
| Auth | None (public endpoint) |
| CAPTCHA | Cloudflare Turnstile verification |
| Resend API | |
| Deploy | wrangler deploy via Azure DevOps |
Worker secrets (Resend API key, Turnstile secret) are stored as Cloudflare Worker secrets (not in source code).
SPA routing (Pages)
Section titled “SPA routing (Pages)”React Router 6 uses client-side routing. For Cloudflare Pages to serve the SPA for all routes (and not 404 on hard refresh), a redirect rule is configured:
/* → /index.html (200)This is typically configured via _redirects file or Cloudflare Pages settings.
Custom domains
Section titled “Custom domains”| Service | Domain |
|---|---|
| Cloud Frontend | cloud.monozu.io |
| Internal Docs | docs.cloud.monozu.io |
| Marketing Website | monozu.io |
DNS is managed in Cloudflare. Custom domains are added in the Cloudflare Pages project settings.