# デプロイ・運用 Web アプリ(SvelteKit + Cloudflare Workers Static Assets)を自分で動かすための、ローカル開発から本番デプロイまでの手順をまとめます。 ## 動作サンプル サンプルデプロイ: **** そのままご利用いただけます(個人データはブラウザの localStorage にのみ保存・サーバ送信なし)。フォークして別 URL で運用したい場合は、以下の手順を参考にしてください。 ## 必要な環境 - Node.js 22+ - pnpm ## ローカル開発 ホットリロードで素早く反復するための開発モード。CSP 等のセキュリティヘッダは反映されません。 ```sh cd web pnpm install pnpm dev # http://localhost:5173/ ``` ## ローカル本番相当(Cloudflare Workers エミュレーション) セキュリティヘッダ(CSP 等)も含めて本番と同じ動作を確認したい場合は、Vite ビルドの成果物を `wrangler dev` で配信します。 ```sh cd web pnpm preview # vite build → wrangler dev → http://localhost:8787/ ``` 別ターミナルでヘッダを検証: ```sh curl -I http://localhost:8787/ ``` 期待される主要ヘッダ: - `Content-Security-Policy`(HTML 内 meta tag・sha256 hash 付き) - `X-Frame-Options: DENY` - `Referrer-Policy: no-referrer` - `Permissions-Policy: ...` - `X-Content-Type-Options: nosniff` ## Cloudflare Workers にデプロイ ### 初回のみ — Cloudflare 認証 ```sh cd web pnpm exec wrangler login # ブラウザで Cloudflare 認証 ``` ### 通常のデプロイ ```sh cd web pnpm deploy # vite build → wrangler deploy ``` デプロイ完了後、出力される URL でアクセス可能: ``` https://solo-shaho..workers.dev ``` ### 本番のセキュリティヘッダ検証 ```sh curl -I https://solo-shaho..workers.dev/ curl -s https://solo-shaho..workers.dev/ | grep -i content-security-policy ``` ## Workers Builds(GitHub 連携・自動デプロイ) Cloudflare ダッシュボードで Workers Builds を有効にすると、`main` への push で自動デプロイ + PR ごとにプレビュー URL が発行されます。 ```{list-table} :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 + コメントで通知されます。