デプロイ
Yurucommuのビルドとデプロイの詳細な手順です。
ビルド
フロントエンドとバックエンドをビルドします。
bun run build
これにより dist/
ディレクトリに静的ファイルが生成されます。
Takosumi install 用の worker entrypoint は CI / build service と同じ流れで生成します。
bun run build:worker
Takosumi の OpenTofu module から参照する worker entrypoint は
dist/worker.js です。
Takosumi での install について
yurucommu は Git URL / ref / module path で指定できる OpenTofu Capsule です。Takosumi では Capsule の Source を Project に登録し、cloudflare provider などにどの ProviderConnection を使うかを ProviderBinding で指定し、Plan を作成してレビューしたうえで Apply すると、Worker / storage / routing が materialize されます。
Source 登録 / Plan / Apply
本番導線は Takosumi の Run ledger です。Capsule の Source(Git URL / ref / module path)を Project に登録すると、Takosumi が Capsule を Git から読み、検証して Plan を作成します。cloudflare provider などに使う ProviderConnection を ProviderBinding で指定し、変数 / secret を入力したうえで Plan を作成します。レビューした Plan を承認して Apply すると、StateVersion・Output・AuditEvent が記録されます。
Source: https://github.com/tako0614/yurucommu.git
ref: main
modulePath: .
flow: Source 登録 -> Takosumi が Git から読み検証 -> Plan Run -> Apply Run -> StateVersion + Output
設定ファイル
Yurucommu は用途ごとに Cloudflare の設定ファイルを分けていますが、 本番 install 時の binding / env / route は Takosumi generated root が所有します。
-
wrangler.toml- contributor / low-level debug 用の参照設定 wrangler.local.toml- ローカル開発用設定
ローカルで Worker を起動する場合は
bunx wrangler dev --config wrangler.local.toml を使います
(内部では wrangler.local.toml を参照します)。production
hostname、route、D1 / R2 / KV / Queue binding は Capsule install 時の
Plan / Apply の入力と Output で確認します。
CI/CDパイプライン
CI は build / test / artifact verification を行い、deploy 実行は Takosumi の Source ref 更新、Plan の検証・レビュー、Apply approval に委譲します。GitHub Actions secret に broad Cloudflare token を置く導線は product install path ではありません。
ロールバック
問題が発生した場合は、過去の StateVersion を選び、通常の Plan / approval / Apply flow で戻します。Apply 時には Source の pinned commit と module inputs が記録されています。provider resource state の汎用 rollback は OpenTofu module の範囲です。
ログの確認
Run logs、Activity、Apply Run の evidence を Takosumi dashboard / operator observability で確認します。ローカル開発時だけ Wrangler tail を debug 補助として使います。
よくあるエラー
「Script too large」エラー
Workerのサイズ制限(1MB)を超えている場合:
- 不要な依存関係を削除
- コードの最適化
- Workers有料プランにアップグレード(10MB制限)
「D1 database not found」エラー
wrangler.toml
のデータベースIDが正しいか確認してください。
「R2 bucket not found」エラー
バケット名が正しいか、作成済みか確認してください。