GitHub

Cloudflare設定

Cloudflareでセルフホストする人向けのページです。Takosumiなどの管理ホスト で動かす場合は、この設定を使いません。

管理ホストを使う場合は デプロイガイドdeploy/takoform の手順へ進んでください。

用意するもの

設定方法を選ぶ

状況 使うファイル
必要なリソースを新しくまとめて作る ルートのmain.tf
作成済みのリソースへWorkerを接続する wrangler.jsonc

main.tfwrangler.jsonc は、同時に使うことを前提にした手順ではありません。どちらがリソースと Workerの設定を管理するか、先に決めてください。

ルートのOpenTofu設定は、Cloudflare上の変更を初期状態では行いません。 作成内容を確認したうえで enable_cloudflare_resources=trueenable_cloudflare_worker_script=true を指定します。

必要なCloudflareサービス

サービス 役割 Workerから見える名前
Workers Web画面とAPIを実行 -
D1 アカウント、投稿、メッセージなどを保存 DB
R2 画像と動画を保存 MEDIA
Workers KV セッションや試行回数を保存 KV
Queues ActivityPubの配信と、失敗した配信の退避 DELIVERY_QUEUEDELIVERY_DLQ
Cron Triggers 期限切れデータを定期的に整理 1時間ごとの実行

認証を確認する

bunx wrangler login
bunx wrangler whoami

CIやOpenTofuでAPIトークンを使う場合は、必要な操作だけに権限を絞り、 リポジトリへ保存しません。実行前に対象のCloudflareアカウントを 確認してください。

公開URLとログインを設定する

本番で最低限必要な設定は次のとおりです。

公開してよい値とシークレットを分けます。Wranglerを使う場合、 シークレットは次のように対話形式で登録できます。

bunx wrangler secret put ENCRYPTION_KEY
bunx wrangler secret put AUTH_PASSWORD_HASH

Secretの登録はWorkerの新しいバージョンを作ります。すでに運用中の Workerでは、対象と戻し方を確認してから実行してください。OpenTofuを 使う場合は、main.tf の機密入力として渡します。

データベースを別に扱う

Workerの公開だけではD1のマイグレーションは実行されません。既存環境では マイグレーション履歴を確認し、バックアップと復旧方法を用意してから スキーマを変更してください。コード公開とデータベース更新を一度に 試し直さないようにします。

動作確認

  1. 公開URLを開く
  2. /healthzの本文を確認する
  3. /readyzが準備完了を返すことを確認する
  4. ログイン、投稿、画像アップロードを試す
  5. キューの配信と失敗キューを確認する

トラブルシューティング

認証エラーが出る

bunx wrangler whoami でログイン中のアカウントを確認します。APIトークンを使う場合は、 アカウントIDと権限の対象が一致しているか確認します。

接続が不足している

/healthzmissingBindings と、Workerに設定した名前を比べます。D1は DB、R2は MEDIA、Workers KVは KV です。

外部サーバーへの配信が止まる

通常の配信キューと失敗キューの両方を確認します。手動で何度も再送する 前に、失敗理由と試行回数を記録してください。