pcbjam/scripts/deploy
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Viktor Vaczi df38ebafb7 feat(deploy/site): serve the apex from the same Pages project, no redirect rule
Vercel was doing the apex->www 308 itself (its "redirect to www" project
setting), so nothing about Cloudflare requires a redirect — the behaviour
just disappears with Vercel. Rather than rebuild it with a zone Redirect
Rule plus a proxied placeholder record, attach pcbjam.com as a SECOND
custom domain on pcbjam-site. Both hosts serve the site and the pages
already emit canonical=www, which is what consolidates them for search.

That drops the riskiest artefact in the migration. Redirect Rules are
zone-scoped and run BEFORE Workers/Pages routing, so a `contains` match
instead of `eq` would 308 app./editor./demo./api. to www — breaking the
product API, not just a marketing page. The sibling hosts are also the
reason this was worth avoiding rather than merely guarding.

APEX_MODE (lib/common.sh) selects the topology, defaulting to `serve`.
08-verify-prod.sh now dispatches through assert_apex: in serve mode it
requires the apex to answer 200 with no hop, to not be a stale Vercel
response, to declare canonical=www, and to expose /api/waitlist. The
`redirect` mode and 07's rules/apex phases are kept for the alternative.

08 also checks the attached domains via wrangler rather than the REST API,
so the whole serve-mode path needs only `wrangler login` — no zone scopes
at all.

Comments that explained themselves via the old redirect are corrected:
astro.config.mjs, web/standalone/src/lib/config.ts and
scripts/deploy/build-demo.mjs. The demo keeps posting to www — not because
the apex redirects, but because a CORS preflight cannot follow one, so
aiming at a host that might ever redirect is a latent breakage.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LAmkjM7okPdScp9XLW1JVr
2026-07-27 14:34:16 +02:00
..
lib perf(cdn): publish demo WASM as brotli-q11 + no-transform 2026-07-01 12:21:54 +02:00
build-demo.mjs feat(deploy/site): serve the apex from the same Pages project, no redirect rule 2026-07-27 14:34:16 +02:00
build-editor.mjs standalone-hardening 0006: redirect non-editor routes to the mgmt app 2026-07-16 17:24:37 +02:00
dev-demo.mjs feat(libs): eeschema symbol-chooser footprint selector + preview via publish-time fp-index 2026-07-07 21:09:21 +02:00
publish-content.mjs feat(demo): demo.pcbjam.com deploy — versioned WASM CDN + static gallery + tag CI 2026-06-19 11:39:09 +02:00
publish-libs.ts feat(libs): eeschema symbol-chooser footprint selector + preview via publish-time fp-index 2026-07-07 21:09:21 +02:00
publish-models.ts feat(3d): lazy 3D model delivery R2→IDB→WASM 2026-07-02 11:35:36 +02:00
publish-wasm.mjs eeschema simulator: lazy ngspice_service worker — static sharedspice (XSPICE registry + CIDER), init_dll ifdef, e2e both engines 2026-07-19 15:59:21 +02:00
upload-models-r2.sh feat(3d): live models CDN — 10.0.3 publish wiring + wrl→step fallback 2026-07-02 11:35:37 +02:00
wasm-cache-hash.mjs plugins 0002: kicad_tools --ipc356 + --fab-components fab exporters 2026-07-27 14:01:30 +02:00