Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Camera Plot

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 dev

Static Assets は .assetsignore で index.html と default-layout.json のみに限定しています。

本番デプロイ

本番設定は wrangler.jsonc の production 環境に分離しています。 Cloudflare Workers Builds が main への更新を検知し、次の順で自動反映します。

  1. npx wrangler d1 migrations apply DB --env production --remote
  2. npx 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

新しいCloudflare環境を作る場合

新しいアカウントや障害復旧先へ再構築する場合は、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件です。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages