Deployment workflow
Canonical reference: ../guides/domains.md
Environments
| Environment | API | Product SPA | Notes |
|---|---|---|---|
| Local | localhost:8787 | localhost:5173 | pnpm dev |
| Production | api.cepatedge.com | app.cepatedge.com | Custom domains on Pages/Worker |
Staging *.zamdev.dev and bare *.pages.dev URLs are deprecated for auth/CORS configuration. Use custom .com domains in Cloudflare; Pages redirects handle default hostnames.
CI / manual deploy order
pnpm worker:deploy— API first (schema + secrets must exist)pnpm landing:deploy— marketingpnpm web:deploy— demo SPApnpm docs:deploy— documentationpnpm git:deploy— git analytics (optional)
GitHub Actions
- CI:
.github/workflows/ci.yml— typecheck, tests, builds (no deploy) - Deploy:
.github/workflows/deploy.yml— path-filtered parallel jobs for worker / web / git / docs- Pages:
app-cepatedge,git-cepatedge,docs-cepatedge - Worker:
cepatedge(api.cepatedge.com) - Manual: Actions → Deploy → choose app (
all/ one surface) - Landing stays manual:
pnpm landing:deploy
- Pages:
Add IndexNow ping after successful public Pages deploys when needed (see maintainer/shipped/platform.md and pnpm seo:indexnow).
Rollback
Pages: wrangler pages deployment list --project-name=<name> → rollback to prior deployment ID.
Worker: redeploy previous git tag or wrangler rollback per Cloudflare docs.