コンテンツにスキップ

Claude Codeで作ったWebアプリをCloudflare Pagesにデプロイする4つの方法

手動アップロード / Wrangler / Git連携 / GitHub Actions

Claude Codeで作ったWebアプリをCloudflare Pagesに公開する方法は、大きく4つある。ブラウザで手動アップロードする方法、Wranglerで直接デプロイする方法、Cloudflare PagesのGit連携を使う方法、GitHub ActionsからWranglerを実行する方法。

この記事では、4つのデプロイ方法の違い、向いている場面、無料枠やD1への発展を見据えた選び方を整理する。

Cloudflareへのデプロイ方法4つ

Cloudflareへのデプロイ方法4つ

1. Cloudflare Pagesへのデプロイは4種類ある

Section titled “1. Cloudflare Pagesへのデプロイは4種類ある”

Cloudflare Pages へのデプロイ方法は主要なもので 4種類 ある。手軽な順に並べる。

  • ブラウザでドラッグ&ドロップ
  • Wrangler CLI
  • Cloudflare Pages の Git連携
  • GitHub Actions + Wrangler

以下、それぞれを順に見ていく。

1-1. ブラウザでドラッグ&ドロップ

Section titled “1-1. ブラウザでドラッグ&ドロップ”

Cloudflareダッシュボードのプロジェクト画面に、HTMLファイルなどをドラッグ&ドロップするとそのままデプロイされる。

  • メリット: アカウント作成だけで使える。GitHubもターミナルも不要
  • デメリット: 更新のたびに手でアップロードする必要がある
  • 向いているとき: とにかく試しに公開してみたい、シンプルな静的サイトの初回公開

Cloudflare公式のCLIツール wrangler を、ローカル(Claude Code経由など)から実行してデプロイする。

  • メリット: Claude Codeに「デプロイして」と頼むだけで反映できる
  • デメリット: Node.js のインストールが必要。デプロイのたびに手動でコマンド実行
  • 向いているとき: ローカルで開発しながら、自分のタイミングでコマンド一発で本番反映したい

Cloudflareダッシュボード上で GitHub リポジトリを連携すると、リポジトリへのpushを検知して Cloudflare側でビルド・デプロイが実行される。

  • メリット: 設定が最短。ダッシュボードでリポジトリを選ぶだけ。後述のGitHub ActionsのようなAPIトークン作成もワークフローファイル(YAML)作成も不要
  • デメリット: Cloudflare無料プランではビルド回数に上限あり(月500回まで)
  • 向いているとき: GitHubでバージョン管理しつつ、最短で自動デプロイを使いたい

GitHub Actions のワークフローファイル(YAML)に wrangler pages deploy を書き、GitHubへのpushで GitHub Actions側から Cloudflare へデプロイする。

  • メリット: デプロイ手順を YAML にコード管理できる。テストやマイグレーションなどの前処理を後から差し込みやすい。Cloudflare側のビルド枠を消費しない
  • デメリット: APIトークン作成、Secrets登録、YAML作成など初期セットアップが多い
  • 向いているとき: デプロイ前にやりたい処理(テスト、ビルド、マイグレーション等)があるとき、CI/CDをコード管理したいとき
観点ブラウザでドラッグ&ドロップWrangler CLIGit連携GitHub Actions
事前準備アカウントのみ+ Node.js+ GitHub+ GitHub・APIトークン・YAML
公開操作手動アップロード手動コマンドgit pushgit push
デプロイ自動化××
デプロイ前処理××工夫すれば可
D1への発展不向き手動なら可工夫が必要向いている
Cloudflareビルド枠消費しない消費しない消費する(無料500回/月)消費しない
初学者向け

迷ったときの目安:

4種類のデプロイ方法は、大きく Wrangler 系(手元から直接Cloudflareに流す)と GitHub 系(GitHubへのpushをきっかけにCloudflareに反映する)の2つに分けられる。

系統含まれる方法デプロイ起点コード管理
Wrangler 系1-2. Wrangler CLI手元自分で(Git使うかは自由)
GitHub 系1-3. Git連携 / 1-4. GitHub ActionsGitHub への pushGitHub(履歴・差分が残る)

1-1. ブラウザでドラッグ&ドロップは、ダッシュボード操作だけで完結する別系統。試し公開向け。

Wranglerは Node.js さえ入っていればよく、Claude Code に「デプロイして」と頼めばすぐ反映できる。GitHubアカウントもAPIトークンもYAMLも不要で、導入が一番気軽。試行錯誤しながらサクッと公開したい個人開発に向いている。

一方で、コードのバージョン管理は自分でやる必要がある(Gitを使うかどうかも自由)。あとから履歴を追ったり共同編集したりする段階になると、GitHub側に乗せ替えるか、別途Git管理を始めることになる。

2-2. コード管理とデプロイを連携させるならGitHub

Section titled “2-2. コード管理とデプロイを連携させるならGitHub”

GitHubにコードを置く前提で、リポジトリへのpushをデプロイトリガーにする。コードのバージョン管理・履歴・差分レビューが自然にでき、その上に Git連携や GitHub Actions の自動デプロイが乗る形になる。事故時のロールバックや変更追跡もやりやすい。

ただし、GitHubアカウントや gh のセットアップなど最初の準備が必要(→ Git と GitHub の基本)。継続的に作っていく場合や、複数の環境・自動処理を組み合わせたい場合は、最初に整えておくと以降の運用が楽になる。

2-3. D1(データ共有型Webアプリ)はどちらでも

Section titled “2-3. D1(データ共有型Webアプリ)はどちらでも”

D1(Cloudflareのデータベース)を使うデータ共有型Webアプリも、Wrangler/GitHub のどちらの系統からでも構築できる。本サイトでは両方のハンズオンを用意している。

本サイトのロードマップでは GitHub 経由のほうを採用している。コード管理とデプロイが GitHub に集約されることで、あとから運用を広げるときに引き継ぎやすいため。

  • 手軽に試したい、コード管理は自分でやれる → Wrangler
  • 継続的に運用していく、コード管理とデプロイを連携させたい → GitHub

4つの中で、CGT(Git連携)と CGA(GitHub Actions)は「pushすると自動でデプロイされる」点が共通していて、最初は使い分けに迷いやすい。 ここでは少しだけ詳細に検討する。

静的ファイルだけで完結するWebアプリなら、Cloudflare PagesのGit連携が一番手軽。Cloudflare DashboardでGitHubリポジトリを選べば、pushだけで自動デプロイできる。APIトークンやGitHub ActionsのYAMLは不要。

一方で、D1マイグレーション、テスト、ビルド前処理などをデプロイ前に実行したい場合は、GitHub Actions + Wranglerの方が扱いやすい。処理の順番をYAMLに明示できるため、あとからD1を使うデータ共有型Webアプリへ発展させやすい。

ただし GitHub Actions は事前準備(APIトークン作成、Secrets登録、YAML作成)の手間がかかる。静的サイトを自動デプロイしたいだけなら、Git連携の方が早い。

Cloudflare Pages の Git連携では、Cloudflare側で build が走るため、Cloudflare Pages の build 回数を消費する。Free plan では月500回の上限がある(参考)。

GitHub Actions + Wrangler では、build や deploy コマンドの実行場所が GitHub Actions 側になるため、Cloudflare Pages の build 回数は消費しない。GitHub Actions Free の実行時間枠は Public リポジトリなら無制限、Private でも月2,000分(参考)。個人開発の通常運用(デプロイ1回あたり1〜2分程度)なら月1,000〜2,000回はデプロイできる計算で、上限に届くことはまずない。

つまり、無料枠の余裕という観点では GitHub Actions の方が有利。

3-3. D1まで見据えるならGitHub Actions

Section titled “3-3. D1まで見据えるならGitHub Actions”

Cloudflare D1を使うデータ共有型Webアプリでは、デプロイ前にDBスキーマ更新(マイグレーション)を実行することがある。Cloudflare PagesのGit連携でもD1操作は可能だが、GitHub Actionsの設定と同じくらいの手間がかかり、手軽とは言い難い。

GitHub Actionsなら、d1 migrations applypages deploy を別々のステップとして書ける。何をどの順番で実行しているかが見えやすく、失敗時の切り分けもしやすい。

そのため、本サイトのロードマップでは、D1を使う データ共有型Webアプリ の前に、GitHub ActionsでCloudflareに公開する 手順を体験する構成にしている。

  • 静的サイトを最短で自動デプロイしたい → Git連携
  • 無料枠の余裕・D1マイグレーション・テストやビルド前処理を組み込みたい → GitHub Actions

4. 本サイトのハンズオンで順番に体験する

Section titled “4. 本サイトのハンズオンで順番に体験する”

本サイトには、Claude Code を使ってWebアプリを作り Cloudflare に公開する一連のハンズオンがロードマップとして並んでいる。順に進めることで、手動デプロイ、CLIデプロイ、Cloudflare側の自動デプロイ、GitHub Actions側の自動デプロイを段階的に体験できる構成にしている。

  1. ブラウザにドラッグ&ドロップ
  1. Wrangler CLI
  1. Cloudflare PagesのGit連携
  1. Github Action (静的サイト)
  1. Github Action (D1を使うデータ共有型Webアプリ)

すでに経験済みの方法がある場合は、その次のステップから始めてもよい。