mcpField
C
cloudflare-pages

cloudflare-pages

github.com/genericserviceクラウド・DevOps093 回インストール24 週間前に更新
リポジトリ

cloudflare-pages について

cloudflare-pages は、静的サイトを Cloudflare Pages にデプロイするスキルです。プロジェクトやドメイン、配信パイプラインを管理する開発者向けに、Wrangler の手順とドメイン設定・デプロイ検証用スクリプトを提供します。

主な機能

  1. 01Cloudflare Pages プロジェクトの作成
  2. 02Wrangler による静的ビルド成果物のデプロイ
  3. 03カスタムドメイン登録と CNAME 設定
  4. 04GitHub Actions CI/CD テンプレートの利用
  5. 05デプロイ状態、SSL、HTTP 応答の確認

活用シーン

  1. 01ビルド済み静的サイトの Pages への公開
  2. 02Pages プロジェクトへのカスタムドメイン接続
  3. 03GitHub Actions のデプロイワークフロー設定
  4. 04デプロイ状態と最近のリリースの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/genericservice/claude-skills --skill cloudflare-pages

インストール後、Claude Code で/cloudflare-pagesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
ci-cd-templates.md
scripts/
add-custom-domain.sh
setup-pages-project.sh
verify-deployment.sh

詳細

Cloudflare Pages

静的サイトを Cloudflare Pages にデプロイできます。プロジェクトの作成、カスタムドメインの追加、CI/CD の設定、デプロイの確認に対応しています。フレームワークを問いません。Hugo、Astro、Next.js、Nuxt、SvelteKit、または静的出力を生成する任意のビルドツールで利用できます。

前提条件

要件入手方法
wrangler CLInpm i -g wrangler を実行し、その後 wrangler login を実行します(ブラウザーで OAuth が開きます)
Cloudflare アカウントdash.cloudflare.com — 無料プランで利用できます
アカウント IDダッシュボード → 任意のゾーン → サイドバーの Overview、または wrangler whoami
API トークン(CI/CD)ダッシュボード → API Tokens → 「Edit Cloudflare Workers」テンプレート(Pages を含みます)
DNS API トークンダッシュボード → API Tokens → Custom → Zone:DNS:Edit(API 経由でカスタムドメインを追加する場合のみ)
ゾーン IDダッシュボード → ドメイン → サイドバーの Overview(カスタムドメインの場合のみ)

クイックデプロイ

CI/CD をまだ設定していない場合に、手動で一度だけデプロイする方法です。

# 1. Build your site
<your-build-command>          # e.g. hugo --minify, npm run build

# 2. Deploy output directory
wrangler pages deploy <output-dir> --project-name <project-name>

デプロイごとに一意のプレビュー URL が発行されます。production ブランチへの最新のデプロイが、<project>.pages.dev のライブサイトになります。

セットアップの全手順

ステップ 1 — Pages プロジェクトを作成する
bash scripts/setup-pages-project.sh <project-name> "<build-command>" <output-dir> [branch]

wrangler pages project create を実行し、生成された *.pages.dev の URL を表示します。branch 引数のデフォルトは main です。

手動で行う場合:

wrangler pages project create <project-name> --production-branch main
ステップ 2 — デプロイする

ビルドしてデプロイします:

<your-build-command>
wrangler pages deploy <output-dir> --project-name <project-name>
ステップ 3 — カスタムドメインを追加する
# Set required environment variables
export CLOUDFLARE_ACCOUNT_ID="<your-account-id>"
export CLOUDFLARE_API_TOKEN="<pages-edit-token>"
export CLOUDFLARE_ZONE_ID="<your-zone-id>"
export CLOUDFLARE_DNS_TOKEN="<dns-edit-token>"   # optional, falls back to API_TOKEN

bash scripts/add-custom-domain.sh <custom-domain> <project-name>

スクリプトは次の 2 つの操作を実行します:

  1. Cloudflare API 経由で、Pages プロジェクトにドメインを 登録 します
  2. <project>.pages.dev を参照するプロキシ済み CNAME DNS レコードを 作成 します

どちらの操作も冪等で、何度でも安全に再実行できます。

ステップ 4 — CI/CD を設定する

Hugo、Astro、Next.js、汎用 npm ビルド向けの GitHub Actions ワークフロー全体については、references/ci-cd-templates.md を参照してください。

必要な GitHub シークレット:

シークレット値
CLOUDFLARE_API_TOKEN「Edit Cloudflare Workers」権限を持つ API トークン
CLOUDFLARE_ACCOUNT_IDCloudflare アカウント ID

次の場所で設定します:Repository → Settings → Secrets and variables → Actions → New repository secret

ロールバック

# List recent deployments
wrangler pages deployment list --project-name <project-name>

# Rollback: checkout previous commit, rebuild, redeploy
git checkout <commit-hash>
<your-build-command>
wrangler pages deploy <output-dir> --project-name <project-name>

# Return to latest
git checkout main

デプロイを確認する

export CLOUDFLARE_ACCOUNT_ID="<your-account-id>"
export CLOUDFLARE_API_TOKEN="<your-token>"

bash scripts/verify-deployment.sh <project-name> [custom-domain]

以下が表示されます:最新のデプロイ状況(色分け表示)、直近 5 件のデプロイ一覧、カスタムドメインの SSL 状況、*.pages.dev への HTTP 200 チェック。

スクリプトの一覧

スクリプト用途必須の環境変数
setup-pages-project.shwrangler 経由で Pages プロジェクトを作成CLOUDFLARE_ACCOUNT_ID
add-custom-domain.shドメインを登録し、CNAME を作成CLOUDFLARE_ACCOUNT_ID、CLOUDFLARE_API_TOKEN、CLOUDFLARE_ZONE_ID
verify-deployment.shデプロイ状況、SSL、HTTP を確認CLOUDFLARE_ACCOUNT_ID、CLOUDFLARE_API_TOKEN

トークン一覧

操作必要なトークンスコープ使用場所
wrangler pages deployWrangler OAuthwrangler login 経由で自動設定ローカル CLI、CI/CD
Pages にカスタムドメインを登録API トークンAccount:Cloudflare Pages:Editadd-custom-domain.sh
CNAME DNS レコードを作成DNS API トークンZone:DNS:Editadd-custom-domain.sh
CI/CD デプロイ(GitHub Actions)API トークン「Edit Cloudflare Workers」テンプレートGitHub Secrets
デプロイを照会API トークンAccount:Cloudflare Pages:Readverify-deployment.sh

ヒント: よりシンプルに設定するには、Pages:Edit と DNS:Edit の両方のスコープを持つ単一の API トークンを使用できます。その場合は CLOUDFLARE_API_TOKEN を設定し、CLOUDFLARE_DNS_TOKEN は省略してください。

トラブルシューティング

問題原因対処方法
wrangler: command not foundwrangler がインストールされていませんnpm i -g wrangler
Authentication errorOAuth の有効期限切れ、またはトークンが正しくありませんwrangler login(再認証)
カスタムドメインが「pending」のままCNAME レコードがない、または正しくありませんDNS を確認します。CNAME は <project>.pages.dev を指す必要があります
SSL がプロビジョニングされないドメインが Cloudflare 経由でプロキシされていませんCNAME プロキシを「Proxied」(オレンジ色の雲)に設定します
カスタムドメインで 522 エラーが発生するDNS レコードは存在しますが、ターゲットが正しくありません古いレコードを削除し、add-custom-domain.sh を再実行します
デプロイは成功するが、サイトが 404 になる出力ディレクトリが正しくありませんビルド出力ディレクトリがデプロイ先と一致していることを確認します
CI/CD デプロイが失敗するGitHub シークレットがありませんCLOUDFLARE_API_TOKEN と CLOUDFLARE_ACCOUNT_ID を追加します

エージェント型ワークフローとバイブコーディング

  • 反復的なデプロイ: 初回の実行で CI/CD の設定や DNS の反映が完璧になるとは限りません。設定案を作成するか、手動でデプロイし、Cloudflare Pages のログやステータスチェックを確認します。特定のビルドエラーやプロキシの問題を切り分け、設定を一度に 1 つだけ変更して、サイトが公開されるまで再デプロイします。
  • バイブコーディング: デプロイ用スクリプトと GitHub Actions のワークフローは、ライブリポジトリでテストする前にローカルでコミットしておきます。これにより、パイプラインが壊れた場合に簡単にロールバックできます。

アンチパターン

  • Cloudflare の Git 統合は使用しないでください — 直接アップロードには wrangler pages deploy を使用します。Git 統合はこのワークフローにメリットがない一方で、複雑さを増します。
  • 同じサイトに対して複数のプロジェクトを作成しないでください — 1 つのプロジェクトに複数のカスタムドメインを設定できます。
  • CNAME の手順を省略しないでください — DNS レコードを設定せずに Pages にドメインを登録すると、「pending」のままになり、いつまでも解消されません。
  • プロキシされていない CNAME レコードは使用しないでください — Cloudflare の SSL と CDN は、オレンジ色の雲(プロキシ)が有効な場合にのみ機能します。
  • スクリプトにアカウント ID をハードコードしないでください — 必ず環境変数を使用します。

コメント