Web アプリ(SvelteKit + Cloudflare Workers Static Assets)を自分で動かすための、ローカル開発から本番デプロイまでの手順をまとめます。
サンプルデプロイ: https://solo-shaho.quokka.trade/
そのままご利用いただけます(個人データはブラウザの localStorage にのみ保存・サーバ送信なし)。フォークして別 URL で運用したい場合は、以下の手順を参考にしてください。
- Node.js 22+
- pnpm
ホットリロードで素早く反復するための開発モード。CSP 等のセキュリティヘッダは反映されません。
cd web
pnpm install
pnpm dev # http://localhost:5173/セキュリティヘッダ(CSP 等)も含めて本番と同じ動作を確認したい場合は、Vite ビルドの成果物を wrangler dev で配信します。
cd web
pnpm preview # vite build → wrangler dev → http://localhost:8787/別ターミナルでヘッダを検証:
curl -I http://localhost:8787/期待される主要ヘッダ:
Content-Security-Policy(HTML 内 meta tag・sha256 hash 付き)X-Frame-Options: DENYReferrer-Policy: no-referrerPermissions-Policy: ...X-Content-Type-Options: nosniff
cd web
pnpm exec wrangler login # ブラウザで Cloudflare 認証cd web
pnpm deploy # vite build → wrangler deployデプロイ完了後、出力される URL でアクセス可能:
https://solo-shaho.<your-account>.workers.dev
curl -I https://solo-shaho.<your-account>.workers.dev/
curl -s https://solo-shaho.<your-account>.workers.dev/ | grep -i content-security-policyCloudflare ダッシュボードで Workers Builds を有効にすると、main への push で自動デプロイ + PR ごとにプレビュー URL が発行されます。
:header-rows: 1
:widths: 30 70
* - 項目
- 値
* - Repository
- GitHub リポジトリ
* - Root directory
- `web`
* - Build watch path
- `web/**`
* - Build command
- `pnpm install --frozen-lockfile && pnpm typecheck && pnpm lint && pnpm test && pnpm build`
* - Deploy command
- `pnpm exec wrangler deploy`
* - Production branch
- `main`
* - Non-production branch builds
- enabled(PR ごとにプレビュー URL を発行)
* - Node.js version
- 22
ビルドのいずれかのステップ(typecheck / lint / test / build)が失敗するとデプロイされず、PR には Check Run + コメントで通知されます。