GitHub

デプロイ

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 が所有します。

ローカルで 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)を超えている場合:

「D1 database not found」エラー

wrangler.toml のデータベースIDが正しいか確認してください。

「R2 bucket not found」エラー

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