デプロイ
Cloudflareへの直接デプロイと、Takosumiによる管理付きインストールの2つから選べます。
Cloudflareへ直接デプロイ
一番短い方法は Cloudflare の deploy 画面を使うことです。D1・KV・R2・Queue が 作成され、Worker に紐づけられます。
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.tf と outputs.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)を超えている場合:
- 不要な依存関係を削除
- コードの最適化
- Workers有料プランにアップグレード(10MB制限)
「D1 database not found」エラー
wrangler.jsoncのDB bindingと、初回に作成した
yurucommu-dbを確認してください。
「R2 bucket not found」エラー
バケット名が正しいか、作成済みか確認してください。