7
約12分で読める
デプロイしよう
無料で公開する方法(Cloudflare Pages・Vercel・Netlify)と CI/CD の基本を解説。
このステップで学ぶこと
- 静的サイトを無料でデプロイできる
- Cloudflare Pages へのデプロイ手順を理解する
- GitHub Actions による自動デプロイを設定できる
- プレビューデプロイを活用できる
ホスティングサービスの比較
| サービス | 無料枠 | 強み | 弱み |
|---|---|---|---|
| Cloudflare Pages | 無制限(帯域・リクエスト) | CDN最速、無料枠が最大 | 設定がやや複雑 |
| Vercel | 100GB/月 | Next.js 親和性最高 | 商用利用は要課金 |
| Netlify | 100GB/月 | フォーム機能が便利 | 速度はやや劣る |
| GitHub Pages | 1GB | 完全無料、GitHub連携 | 動的機能なし |
Cloudflare Pages へのデプロイ(推奨)
手動デプロイ(まず試す)
# 1. ビルド
pnpm build
# 2. Wrangler CLI でデプロイ
npx wrangler pages deploy dist --project-name=my-project
初回は Cloudflare アカウントへのログインが求められます。
GitHub Actions による自動デプロイ
以下のファイルをプロジェクトルートに作成:
# .github/workflows/deploy.yml
name: Deploy to Cloudflare Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: latest
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm build
- name: Deploy to Cloudflare Pages
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy dist --project-name=my-project
GitHub Secrets の設定
- Cloudflare ダッシュボードで API トークンを発行
- 「マイプロフィール」→「APIトークン」→「Cloudflare Pages 編集」
- GitHub リポジトリの「Settings」→「Secrets」→「New repository secret」
CLOUDFLARE_API_TOKEN: 発行したトークンCLOUDFLARE_ACCOUNT_ID: Cloudflare のアカウントID
プレビューデプロイの設定
Pull Request ごとにプレビュー URL が自動生成されます。Cloudflare Pages はデフォルトでこの機能が有効です。
独自ドメインの設定
Cloudflare Pages の場合:
- ダッシュボード → プロジェクト → 「カスタムドメイン」
- ドメインを入力して追加
- DNS レコードが自動設定される
よくある問題
ビルドが失敗する
ローカルで pnpm build を実行して、エラーがないか確認します。
ページが真っ白になる ブラウザの Console でエラーを確認します。
フォントが読み込まれない Content Security Policy (CSP) の設定を確認します。