Cloudflare Workers の Static Assets と D1 を使って、配置図をブラウザからクラウド保存できます。D1・Workers ともに小規模利用なら無料枠内で運用できます。
Node.js 22 以降が必要です。ローカル D1 にマイグレーションを適用してから起動します。
トップレベル設定は camera-plot-dev と無効なゼロUUIDを使う開発専用設定で、本番リソースには接続しません。
npm ci
npx wrangler d1 migrations apply DB --local
npx wrangler devStatic Assets は .assetsignore で index.html と default-layout.json のみに限定しています。
本番設定は wrangler.jsonc の production 環境に分離しています。
Cloudflare Workers Builds が main への更新を検知し、次の順で自動反映します。
npx wrangler d1 migrations apply DB --env production --remotenpx wrangler deploy --env production
非本番ブランチのBuildは無効です。通常はPRを main にマージするだけで、D1マイグレーションとWorkerデプロイが実行されます。
マイグレーションに失敗した場合はデプロイへ進みません。
D1マイグレーションとWorkerデプロイは一体のトランザクションではありません。マイグレーション成功後にデプロイが失敗すると、新しいスキーマ上で現在のWorkerが動き続けます。そのため、本番マイグレーションは、現在デプロイされているWorkerとの後方互換性を必ず維持してください。同じリリースで既存のテーブルやカラムを削除・改名するなどの破壊的変更は行わず、まず追加的な変更と新旧両方のスキーマに対応するWorkerをデプロイし、古いWorkerへ戻す必要がなくなった後のリリースで不要な要素を削除します。
Workers Buildsで使うWranglerは package.json に完全なバージョンを指定し、package-lock.json で固定しています。Wranglerを更新する場合はlockfileも更新し、ローカルで検証してから反映してください。
Cloudflare側のBuild設定を復旧する場合は、Build commandとDeploy commandに上記コマンドを設定し、Production branchを main にします。
自動Buildを手動で再試行できない場合のみ、更新済みの main から次を実行します。
git switch main
git pull --ff-only
npx wrangler login
npx wrangler d1 migrations apply DB --env production --remote
npx wrangler deploy --env production新しいアカウントや障害復旧先へ再構築する場合は、D1を作成します。
npx wrangler login
npx wrangler d1 create camera-plot-db表示された account_id と database_id を使い、wrangler.jsonc の env.production をコピーして、例えば recovery という別名の環境を追加します。
追加した環境名を指定してマイグレーションとデプロイを実行してください。
npx wrangler d1 migrations apply DB --env recovery --remote
npx wrangler deploy --env recovery- 配置図本体は D1 の
plotsテーブルに保存されます。 - 同じデプロイURLを開いたメンバーは、全員が同じ配置図を参照・保存・削除できます。
- 保存時に「バンド名」と「プロファイル名」を指定します。1つのバンドに複数のプロファイルを保存でき、一覧はバンド単位で表示されます。
- 同じバンド内ではプロファイル名は重複できません。既存データを読み込むと、明示的な上書き保存が利用できます。
- 一覧は100件ずつ読み込み、保存件数が多い場合は「さらに読み込む」から続きを取得できます。
- このアプリ自体にはユーザー認証を設けていません。身内以外からの閲覧・変更を防ぐ場合は、Workerの前段に Cloudflare Access を設定し、許可するメールアドレスを限定してください。
- 重要な配置図は従来の JSON 書き出しでもバックアップしてください。1配置図の API 上限は 1 MiB、一覧は最大500件です。