CGT3SlideCloudflarePagesGitHub
前回のハンズオンでは、Claude Codeから Wrangler コマンドでCloudflare Pagesにデプロイする方法を扱った。今回はその先として、Cloudflare Pages の Git連携で GitHub リポジトリとつなぎ、GitHubに変更を反映するだけで自動デプロイされる仕組みを作る。Cloudflareダッシュボードでリポジトリを選ぶだけで設定が完了し、以降は変更履歴を残しつつ GitHub 経由で公開できる。
今回のハンズオンでは、一人完結型Webアプリ(参考)を作って、Cloudflare Pages の Git連携で公開する。
GitHubアカウントの作成、リポジトリの作成、Gitインストール、SSH設定、cloneまではGitHubとGitのセットアップを参照のこと。
次章以降は以下の状態(GitHubとGitのセットアップ終了後の状態)から進める。
my-first-site 作成済みmy-first-site と出てきたら自分のリポジトリ名に読み替える~/Desktop/claude/my-first-site に clone 済み~/Desktop/claude/my-first-site/index.html がすでにあるClaudeデスクトップアプリを起動。
Code(Claude Code)を選択 → New session をクリック → 作業フォルダを指定(~/Desktop/claude/my-first-site)
公開ファイル(HTMLなど)は ./public フォルダに置く構成にする。設定ファイルや作業用ファイルが公開されないようにするため。
まずは公開ファイル用のフォルダを準備する(リポジトリのルートにある既存の index.html は不要なので削除)。
public フォルダを作って。公開ファイルは public 配下だけに置く構成にする。
リポジトリのルートにある index.html は不要なので削除して。
次に、./public/index.html を作る。プロンプト例:
HTML+JavaScriptでポモドーロタイマーを作って!
public/index.html 1ファイルで作って。
複利計算機をHTML+JavaScriptで作って!
構成はHTMLファイル(public/index.html)が1つ。
最大60秒のカウントダウンタイマーをHTML+JavaScriptで作って!
秒数を入力してスタート・リセットできるようにしたい。
HTMLファイル1つ(public/index.html)にまとめて。
TODOリストをHTML+JavaScriptで作って!
項目の追加・削除ができて、ページを閉じても消えないようにしたい。
public/index.html に書いて。ファイルは1つで。
右上のところからプレビューを選ぶと表示される(自動で表示されることも)。
Claude Codeでポモドーロタイマーを作成
なお、途中、操作の許可を求めてくることがあるので対応する。
Cloudflare PagesにGitHubリポジトリを連携すると、リポジトリに変更がpushされるたびに自動でビルド・デプロイが実行される。この章ではその連携を設定する。
Cloudflareアカウントがなければ作る。 こちらの手順(1-1)を参照のこと。
まず、ここまでの作業内容をGitHubにpushしておく(Cloudflare側がリポジトリの中身を読み取ってビルドするため、先にpushされている必要がある)。Claude Codeに依頼する:
変更をgitでコミットしてpushして(git push -u origin main で)
途中、操作の許可を求めてくることがあるので対応する。
次に Cloudflare ダッシュボード を開き、左メニューの Compute → Workers & Pages をクリック、右上の Create application をクリック。
Create application
そこから Import an existing Git repository の Get started をクリック。初回はGitHubとの連携認可を求められるので、Cloudflare GitHub App をインストールしてリポジトリへのアクセスを許可する(すべて、または my-first-site のみでもよい)。
Get started
リポジトリ一覧から my-first-site を選び、Begin setup をクリック。
Select a repository
Set up builds and deployments のページが開く。設定するのは以下の2項目:
thisisapen)を入れる。公開URLの一部になる(https://プロジェクト名.pages.dev)。リポジトリ名と揃える必要はないが、揃えると分かりやすい入力欄の直下に割り当てられるURLが表示される。
thisisapen.pages.devのように入力した名前がそのままならば競合なし。thisisapen-abc.pages.devのように末尾に文字が付く場合はすでにthisisapen.pages.devが使われているので、別の名前に変えてもよい。
public と入力 — デプロイ対象を ./public に絞るためその他の項目(Build command、Build output directory など)は空欄のままで構わない。./public 配下の静的ファイルがそのまま配信される。
Save and Deploy をクリックするとビルドが始まる。完了すると公開URL(https://プロジェクト名.pages.dev)が表示されるのでアクセスして確認する。
Save and Deploy
ここまでで、GitHubのmainブランチにpushすると Cloudflare Pages が自動でビルド・デプロイする仕組みが整った。以降は Claude Code で修正 → push → 自動デプロイ の繰り返しになる。
公開URLや過去のデプロイ履歴は Compute → Workers & Pages → プロジェクト名 で確認できる。
修正依頼プロンプト例:
背景をもっと明るくしてください
数値入力をスライダーにしてください
ボタンの間隔をもっと広げて
途中、操作の許可を求めてくることがあるので対応する。
納得したら、アップを依頼:
変更をgitでコミットしてpushして
しばらく(1〜2分)待ってから公開URLにアクセスして確認。
このように修正と反映を繰り返して、Webアプリを仕上げよう!
ここまでで作ったのは一人完結型Webアプリ——データが自分の端末に保存される、シンプルな構成。静的なWebサイト・Webアプリの運用だけならここまでで十分。ここから先はデータベースを使うような、もう一歩進んだ応用編。
次の山場は、チャットやランキングのように複数人でデータを共有するデータ共有型Webアプリ。データベースとバックエンドが必要になり、デプロイのたびにDBスキーマ更新(マイグレーション)などの処理を自動実行したくなる。
その準備として、デプロイの仕組みを Cloudflare Pages の Git連携から GitHub Actions に切り替えておく。Git連携は静的ファイルを置くだけの公開には手軽である一方、データ共有型のような「デプロイ時に何かを実行したい」用途には最適とは言い難い。切り替えにはすこし手間がかかるが、GitHub Actions ならワークフローファイル(YAML)にデプロイ手順をコード管理できるので、マイグレーション等の前処理を後から差し込みやすい。
my-first-site だけに絞ってもよい。あとから Cloudflare側で対象リポジトリを追加・変更できるpages.dev のプロジェクト名は再取得できない場合がある2026-05-17 タツヲ (yto)