Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Deploy to Cloudflare ボタン

最終更新 Markdown で表示Agent セットアップ

Workers アプリケーションを構築し、ほかの開発者と共有したい場合は、README、ブログ記事、ドキュメントに Deploy to Cloudflare ボタンを埋め込めます。ほかの開発者は、自分の Cloudflare アカウントへアプリケーションをすばやくデプロイできます。Deploy to Cloudflare ボタンがあれば複雑なセットアップは不要です。公開 GitHub または GitLab リポジトリから、数回のクリックで始められます。

Cloudflare にデプロイ

Deploy to Cloudflare ボタンとは

Deploy to Cloudflare ボタンは、Workers アプリケーションのデプロイを簡単にします。Cloudflare は次を行います。

  • Git リポジトリのクローン: Cloudflare はソースリポジトリを、ユーザーの GitHub / GitLab アカウントへクローンします。デプロイ後も、そのアカウントで開発を続けられます。
  • プロジェクトの設定: リポジトリ名、Worker 名、必要なリソース名などの主要項目を、1 つのセットアップページでカスタマイズできます。カスタマイズ内容は、新しく作成された Git リポジトリに反映されます。
  • ビルドとデプロイ: Cloudflare は Workers Builds でアプリケーションをビルドし、Cloudflare ネットワークへデプロイします。必要なリソースは自動でプロビジョニングされ、追加設定なしで Worker にバインドされます。
Deploy to Cloudflare のフロー

Deploy to Cloudflare ボタンを設定する

Deploy to Cloudflare ボタンは、開発者がプロジェクトを起動しそうな場所ならどこにでも埋め込めます。ボタンを追加するには、次のスニペットをコピーし、Git リポジトリ URL を自分のプロジェクトの URL に置き換えます。サブディレクトリを指定することもできます。

[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=<your git repo URL>)
<a href="https://deploy.workers.cloudflare.com/?url=<YOUR_REPO_URL>"><img src="https://deploy.workers.cloudflare.com/button" alt="Deploy to Cloudflare"/></a>
https://deploy.workers.cloudflare.com/?url=<YOUR_REPO_URL>

すでに Workers Builds でアプリケーションをデプロイしている場合は、Cloudflare ダッシュボードから Deploy to Cloudflare ボタンを直接生成できます。Worker の詳細にある共有ボタンを選び、表示されたスニペットをコピーします。

アプリケーションを共有する

スニペットを用意したら、ボタンを表示したい場所へ貼り付けます。

リソースの自動プロビジョニング

Worker アプリケーションが Cloudflare リソースを必要とする場合、デプロイ時に自動でプロビジョニングされます。現在対応しているリソースは次のとおりです。

Cloudflare はソースリポジトリの Wrangler 設定ファイルを読み、アプリケーションに必要なリソースを判断します。デプロイ中に必要なリソースをプロビジョニングし、新しく作成したリソース(データベース ID や名前空間 ID など)に合わせて、該当する場合は Wrangler 設定を更新します。デプロイを成功させるため、ソースリポジトリには、各バインディングのリソース名、リソース ID、そのほかのプロパティのデフォルト値を含めてください。

Worker の環境変数とシークレット

Worker の環境変数 は、通常どおり Wrangler 設定ファイルで定義できます。

{
  "name": "my-worker",
  "main": "./src/index.ts",
	// Set this to today's date
	"compatibility_date": "2026-09-20",
  "vars": {
    "API_HOST": "https://example.com",
  },
}
name = "my-worker"
main = "./src/index.ts"
# Set this to today's date
compatibility_date = "2026-09-20"

[vars]
API_HOST = "https://example.com"

Worker のシークレット は、.dev.vars.example または .env.example ファイルに dotenv 形式で定義できます。

.dev.vars.exampleini
COOKIE_SIGNING_KEY=my-secret # comment

Secrets Store のシークレットは、通常どおり Wrangler 設定ファイルで設定できます。

{
  "name": "my-worker",
  "main": "./src/index.ts",
	// Set this to today's date
	"compatibility_date": "2026-09-20",
	"secrets_store_secrets": [
		{
			"binding": "API_KEY",
			"store_id": "demo",
			"secret_name": "api-key"
		}
	]
}
name = "my-worker"
main = "./src/index.ts"
# Set this to today's date
compatibility_date = "2026-09-20"

[[secrets_store_secrets]]
binding = "API_KEY"
store_id = "demo"
secret_name = "api-key"

ベストプラクティス

ビルド / デプロイコマンドの設定: package.json でカスタムの build および deploy スクリプトを使っている場合(フルスタックフレームワークの利用や D1 マイグレーションの実行など)、Cloudflare はビルドとデプロイのフィールドを自動検出し、あらかじめ入力します。ユーザーはデプロイ設定時に、カスタムコマンドを変更するか、そのまま使うかを選べます。

deploy スクリプトが指定されていない場合、Cloudflare はデフォルトで npx wrangler deploy を事前設定します。build スクリプトが指定されていない場合、このフィールドは空のままです。

D1 マイグレーションの実行: セットアップの一部としてマイグレーションを実行したい場合は、package.jsondeploy スクリプト内でマイグレーションを実行するように指定します。マイグレーションコマンドは、データベース名ではなくバインディング名を参照してください。ユーザーがソースリポジトリと異なるデータベース名を指定しても、マイグレーションが成功するようにするためです。package.json の scripts セクションの例は次のとおりです。

{
	"scripts": {
		"build": "astro build",
		"deploy": "npm run db:migrations:apply && wrangler deploy",
		"db:migrations:apply": "wrangler d1 migrations apply DB_BINDING --remote"
	}
}

バインディングの説明を用意する: バインディングについて追加情報を伝えたい場合(このテンプレートで必要な理由や、値の設定方法の提案など)は、package.json に説明を書けます。環境変数やシークレットでは、ユーザーが Cloudflare の外で値を探す必要があることが多く、特に役立ちます。

インライン Markdown の `code`**bold**__italics__[links](https://example.com) に対応しています。

package.jsonjson
{
	"name": "my-worker",
	"private": true,
	"cloudflare": {
		"bindings": {
			"API_KEY": {
				"description": "Select your company's [API key](https://example.com/) for connecting to the example service."
			},
			"COOKIE_SIGNING_KEY": {
				"description": "Generate a random string using `openssl rand -hex 32`."
			}
		}
	}
}

制限事項

  • モノレポ: Cloudflare はモノレポを完全にはサポートしていません
    • リポジトリ URL にサブディレクトリが含まれる場合、依存関係を含め、アプリケーションはそのサブディレクトリ内で完結している必要があります。そうでないとビルドは失敗します。Cloudflare は、このサブディレクトリを、デプロイ処理で作成する新しいリポジトリのルートとして扱います。
    • さらに、複数の Workers アプリケーションを含むモノレポでは、それらをまとめてデプロイしません。アプリケーションごとに、別の Deploy to Cloudflare ボタンを設定する必要があります。ユーザーは、サブディレクトリごとに別の Workers アプリケーションを手動で作成します。
  • Pages アプリケーション: Deploy to Cloudflare ボタンは Workers アプリケーションのみに対応しています。
  • GitHub / GitLab 以外のリポジトリ: github.com と gitlab.com 以外のソースリポジトリには対応していません。セルフホスト版の GitHub と GitLab にも対応していません。
  • プライベートリポジトリ: ほかの人が Deploy to Cloudflare ボタンを正しく使うには、リポジトリが公開である必要があります。

役に立ちましたか?