2.8 KiB
2.8 KiB
Cloudflare Pages & Workers Setup — Linear Void
Linear Void uses two Cloudflare products:
| Product | Purpose | What |
|---|---|---|
| Pages | Static SPA hosting | Vite-built frontend (frontend/dist) deployed via Git integration or Direct Upload |
| Workers | Edge cache logic | infrastructure/cloudflare/worker.js — adds immutable cache headers to HLS segments |
Both are managed under Workers & Pages in the Cloudflare dashboard.
Dashboard URLs
| Resource | URL |
|---|---|
| Workers & Pages overview | https://dash.cloudflare.com/{accountId}/workers-and-pages |
| Worker: linearvoid | https://dash.cloudflare.com/{accountId}/workers/services/view/linearvoid/production/settings |
| Pages project | https://dash.cloudflare.com/{accountId}/pages/view/linearvoid |
| API tokens | https://dash.cloudflare.com/profile/api-tokens |
1) Worker: linearvoid (edge cache headers)
The Worker at infrastructure/cloudflare/worker.js runs on the linearvoid Workers service. It intercepts requests and adds immutable Cache-Control headers to .m4s segment files.
Deploy via Wrangler CLI:
npx wrangler deploy infrastructure/cloudflare/worker.js
Or paste into the Workers dashboard at the URL above (Quick Edit).
2) Pages: Static frontend
Two approaches — pick one:
Option A: Git integration (recommended)
Connect the Gitea repository directly in Cloudflare Pages:
- Pages → Create a project → Connect to Git
- Link
git.allucanget.biz/zwitschi/linearvoid - Build command:
cd frontend && npm run build - Output directory:
frontend/dist - Add custom domain:
linearvoid.tv
Cloudflare handles builds and deploys automatically on push.
Option B: Direct Upload via Gitea Actions
Use .gitea/workflows/pages-deploy.yml to build in Gitea Actions and upload via the Cloudflare API.
See gitea-cloudflare-pages.md for the workflow.
3) Custom domains
linearvoid.tv→ Pages projectwww.linearvoid.tv→ redirect tolinearvoid.tvmedia.linearvoid.tv→ R2 bucket (separate; not Pages)