GitHub

デプロイ

Cloudflareへの直接デプロイと、Takosumiによる管理付きインストールの2つから選べます。

Cloudflareへ直接デプロイ

一番短い方法は Cloudflare の deploy 画面を使うことです。D1・KV・R2・Queue が 作成され、Worker に紐づけられます。

Deploy to Cloudflareを開く

CLIからデプロイ

git clone https://github.com/tako0614/yurucommu.git
cd yurucommu
bun install
bunx wrangler login
bunx wrangler d1 create yurucommu-db
bunx wrangler queues create yurucommu-delivery
bunx wrangler queues create yurucommu-delivery-dlq
bunx wrangler secret put ENCRYPTION_KEY
bunx wrangler secret put AUTH_PASSWORD_HASH
bun run deploy

wrangler.jsonc が直接経路の管理元です。KV と R2 は Wrangler が初回 deploy 時に 作成します。bun run deploy は fullstack Worker をビルドし、@takosjp/yurucommu-core の D1 マイグレーションを適用してから公開します。

Takosumiでインストール

yurucommu は Git URL・ブランチ・パスで指定できる通常の OpenTofu モジュールです。Takosumi はこれを Capsule(Takosumi が管理する 1 つのインフラ単位)として扱います。Takosumi では、取得元(Git URL・ブランチ・パス)をワークスペース内の Project に登録し、Cloudflare provider にどのクラウドアカウント接続を使うかを 割り当てます。変更内容(Plan)を作成してレビューしたうえで適用(Apply)すると、Worker・ストレージ・ルーティングが作成されます。

Source登録 / Plan / Apply

本番へのデプロイは Takosumi の履歴(Run)として記録されます。 Git URL を Project に登録すると、Takosumi がコードを 読み込み、検証して Plan を作成します。クラウドアカウントの 接続を割り当て、変数・secret を入力したうえで Plan を作成します。レビューした Plan を承認して Apply すると、復元ポイント・実行結果・履歴が記録されます。

GitAddress:
url: https://github.com/tako0614/yurucommu.git
ref: main
path: .
flow: Git URL 登録 -> Takosumi が読み込み・検証 -> Plan -> Apply -> 復元ポイント + 実行結果

2つの管理元

Cloudflare 直接経路は wrangler.jsonc、Takosumi 管理経路は main.tfoutputs.tf が管理元です。どちらも同じ dist/yurucommu-worker.js と core マイグレーションを使います。

OpenTofu は Takosumi が変更内容の確認・適用・状態・実行結果・履歴を管理するために使います。 Cloudflare へ直接デプロイするだけなら OpenTofu は必要ありません。

CI/CDパイプライン

CI ではビルド・テストと Takosumi 用のビルド成果物を検証します。Cloudflare 直接経路は Wrangler または Workers Builds、管理付き経路は Takosumi の Plan / Apply を使います。

ロールバック

Cloudflare 直接経路では Workers の version / rollback を使います。Takosumi 経路では 過去の復元ポイントと固定済みの取得元を基に Plan / Apply します。

ログの確認

直接経路は wrangler tail と Cloudflare dashboard、Takosumi 経路は実行ログと履歴を確認します。

よくあるエラー

「Script too large」エラー

Workerのサイズ制限(1MB)を超えている場合:

「D1 database not found」エラー

wrangler.jsoncDB bindingと、初回に作成した yurucommu-dbを確認してください。

「R2 bucket not found」エラー

バケット名が正しいか、作成済みか確認してください。