Parked sites in this workspace deploy as Cloudflare Pages projects. From the umbrella root, the vocabulary command is deploy <repo-name> — it runs ./scripts/deploy-repo.sh, which reads the Pages project name and output directory from that site's wrangler.toml.
The template playground is special: deploy template runs ./scripts/deploy-template-preview.sh (not deploy-repo.sh). That path composes the CMS overlay, syncs content/ into seed, and can re-seed D1.
What the deploy script does
npm run checkwhen the site has that script (skip with--skip-check).- Applies D1 migrations for every configured database that has a
migrations_dir. npm run buildwhen a build script exists.npx wrangler pages deployusingpages_build_output_dir(build/for static,.svelte-kit/cloudflarefor CMS).
Config that must be real
namematches the Cloudflare Pages project.database_idis a real D1 id, notPLACEHOLDER-D1-DATABASE-ID(contacts DB on every site; CMS sites also have a content database and R2 media).- Turnstile keys are the shared org widget — add the production hostname in the Turnstile dashboard.
MAILGUN_API_KEYis per-site. - CMS
/adminexpects Cloudflare Access on parked sites. Do not copyCMS_PREVIEW_BYPASSonto production.
Local preview
test <repo-name> means check + build, then a local wrangler pages dry-run. Vite npm run dev does not load Turnstile; use a built preview to exercise the widget. Access-gated member routes and CMS admin need the matching bypass vars only on localhost.