Cloudflare Workers/Wrangler app for hexoboards.com with a Vercel proxy layer in front of Cloudflare because DNS remains on Vercel.
- Static site content in
public/ - Imported strategy app from
hex-tic-tac-toe/hex-tic-tac-toe.github.io - Worker entrypoint in
src/index.js - Wrangler config in
wrangler.jsonc - GitHub Actions deploy workflow in
.github/workflows/deploy.yml - Vercel proxy project in
vercel-proxy/
- Cloudflare production worker:
https://hexoboards.mteam88.workers.dev - Cloudflare staging worker:
https://hexoboards-staging.mteam88.workers.dev - Public production URL:
https://hexoboards.com - Public staging URL:
https://staging.hexoboards.com
The root path / now serves the strategy app directly. /strategies/ redirects back to /.
The Cloudflare worker rewrites canonical and og:url metadata using forwarded host/proto headers. The Vercel proxy forwards requests to the correct Cloudflare worker based on the incoming hostname.
maindeploys the production Cloudflare Workerstagingdeploys the staging Cloudflare Worker
npm install
npm run devnpm testThis runs a local Wrangler smoke test for the Durable Object share flow.
npm run deploy
npm run deploy:stagingGitHub Actions expects these repository secrets:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
- local Wrangler via
npm cloudflare/wrangler-action@v3in CI- separate Wrangler
stagingenvironment - Workers static assets via
assets.directory - Durable Objects for first-party hosted game snapshots
not_found_handling: "404-page"observability.enabled: true- Vercel proxy project in front of Cloudflare while DNS remains on Vercel
The Cloudflare deploy pipeline is wired up. The open PR from staging to main still needs review/merge because main is protected.