Cloudflare (ut-code のアカウント `ut.code();`) で、デプロイとプレビューを設定する。デプロイは GitHub の CI ではなく、Cloudflare の **Workers Builds** が行う。手順と設定値は [`docs/deploy.md`](https://github.com/ut-code/kanban/blob/main/docs/deploy.md)。 ## 済み - [x] リソースの作成: D1 (`kanban-db`、`kanban-db-preview`)、R2 (`kanban-files`、`kanban-files-preview`)、キュー 4 つ。名前はすべて `kanban-` で始める (#35、#37) - [x] D1 のマイグレーション: 本番とプレビューの両方に適用済み。`main` に入るたびに、本番のデプロイの前に自動で適用する - [x] `BETTER_AUTH_SECRET` (本番、全プレビュー共通) と `BETTER_AUTH_URL` の設定 (#38) - [x] **main への push で本番デプロイ**: `kanban-web` と `kanban-reminder-worker` の両方。#40 のマージで、初めての自動デプロイが成功した - 本番: https://kanban-web.ut-code.workers.dev - [x] **PR ごとにプレビューデプロイ**: Worker Previews を使う (別の Worker は使わない)。ブランチごとに `https://<ブランチ名>-kanban-web.ut-code.workers.dev`。PR のコメントに URL が出る。ログインもできる (#40) - Durable Objects はプレビューごとに別。D1、R2、キューはプレビュー用のもの (全プレビューで共有) - [x] ビルドのトークンを kanban 専用にした (`kanban-deploy`、`kanban-reminder-deploy`) - [x] リモートのマージ済みのブランチを削除し、マージしたらブランチを自動で削除する設定にした ## 残り - [ ] リマインドの cron が本番で動いていることを確認する (ダッシュボードの Triggers で実行の履歴を見る) - [ ] メールが届くことの確認 (#8 の Resend の設定が先)。それまで、本番のメールの送信は失敗して、デッドレターキュー (`kanban-mail-dead-letter`) に溜まる - [ ] 独自ドメインを使うか決める (使うなら、`BETTER_AUTH_URL` と `APP_URL` も変える) ## メモ - Workers Builds の設定は、`cf builds workers get <Worker のタグ>` で、保存された値を直接確かめられる。ダッシュボードの表示と、実際の値が食い違っていたことがあった - ブランチの最初のビルドのときに、そのときの設定 (コマンド、トークン) が、そのブランチのプレビュー専用のトリガーに写される。あとから Worker の設定を変えても、既存のブランチには効かない - Worker Previews と `cf` は、どちらもベータ
Activity
tknkaa commentedon Oct 2, 2026
#32 で、設定と手順を用意した。リポジトリでできる部分は済み、残りは Cloudflare のアカウントでの作業 (この issue は閉じない)。
済み:
env.preview): 別の Worker、別の D1 / R2 / キューpnpm check:deploy(設定が正しく読めることの確認。CI でも実行)docs/deploy.md: リソースの作り方、シークレット、Workers Builds の設定値残り (手順は
docs/deploy.md):database_idをwrangler.jsoncに書く (本番とプレビュー)BETTER_AUTH_SECRETとBETTER_AUTH_URLを設定するtodo-web、todo-reminder-worker)mainへのマージで本番にデプロイされ、マイグレーションが適用されることを確認するtknkaa commentedon Oct 2, 2026
本文を、いまの進み具合に合わせて書き直した。上のコメントにある「プレビュー用の別の Worker (
env.preview)」の方式はやめて、Worker Previews に切り替えた (#40)。残りは、cron の動作の確認、メールの確認 (#8)、独自ドメインの判断。