1 Operations
darask edited this page 2026-10-19 15:15:24 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

運用・更新・バックアップ

管理API

Hostingで組み立てたbackendを作業ディレクトリにします。TWA_ADMIN_URL に自分のHTTPS APIを設定し、TWA_ADMIN_TOKEN に自分のWorkerのADMIN_TOKENを安全な入力方法で設定してください。管理トークンをURL、Git、スクリーンショットへ含めません。

node scripts/admin.mjs maintenance status
node scripts/admin.mjs maintenance on --message "更新作業中"
node scripts/admin.mjs announce list
node scripts/admin.mjs min-version status
node scripts/admin.mjs users --limit 20
node scripts/admin.mjs battles --limit 20
# 特定の対戦を調べる場合
node scripts/admin.mjs battle-diagnostics BATTLE_ID
# 受入確認が終わった後
node scripts/admin.mjs maintenance off

BATTLE_ID は実際の対象IDへ置換します。その他のban/unban/suspend/kickは実装のusageを確認し、対象PUID・理由・証拠参照を残します。アカウントの表示名からPUIDを推測しないでください。

npm run invite:local -- 24 はローカルDBだけに招待を作る開発用コマンドです。クラウドへ招待を発行したことにはなりません。公開登録をopenへ切り替える時は、Worker設定とEpic側の外部アカウント利用範囲の両方を確認します。

更新の順序

  1. 配備中のWorker版、ソースcommit、DBのmigration一覧、署名済みmanifest、各本体ハッシュを記録する。
  2. D1を退避し、CONTROL・DOの状態と配布objectの保持方針を決める。必要ならメンテナンスを有効にする。
  3. 別のstaging資源で新候補を検査し、クライアント・catalog・DB・protocolの互換性を確認する。
  4. 不変の版付きobjectを配置し、署名を検証してからmanifestを切り替える。最低版を先に上げて既存クライアントを閉め出さない。
  5. 実ログイン、再ログイン、マッチ、結果保存、更新の再実行で差分ゼロまで確認し、メンテナンスを解除する。

DBバックアップの例(実資源が入った配備コピーで実行):

npx wrangler d1 export DB --remote --output ../my-twa-users-before-update.sql

バックアップにはアカウント等のデータが含まれます。公開リポジトリへ追加せず、アクセスを制限して保管します。D1のSQLだけではKV、DO、R2、運営秘密値は復元できません。それぞれの状態・設定を扱い、別環境で復元できることを確認してください。Wranglerコマンド

Workerの旧版へ戻すだけでDBスキーマが戻るわけではありません。DB変更を伴う場合は旧版が新スキーマを読めるか、退避したDBへ戻す必要があるかを判断します。旧manifestとobjectは、利用中のクライアントが更新できる期間は保持してください。

対戦の受入記録

完成物ごとに、配布commit・launcher版・5ファイルのハッシュ・Worker版・マップ・部隊・参加人数を固定して記録します。

確認 合格の根拠
認証 組織外のEpicアカウントで初回登録・再ログイン・期限更新が通る
本体 検査を緩めずに起動する。初回取得と差分更新が通る
通常対戦 2台が同じ対戦へ入り、同期・終了・勝敗表示を確認
保存 結果・精算・配信が1回だけ確定し、再送でも重複しない
Private Room 招待・開始・終了・再戦を通常キューとは別に確認
障害 切断復帰、途中離脱、長時間、更新失敗を記録

health 成功、20本のWebSocket接続、CPU代行の試験だけで、この全項目を満たしたとは扱いません。

開発基盤との境界

git.darask.meのForgejoバックアップはGit・Wiki・ForgejoのDB・設定を対象にします。ゲーム用D1やDOのバックアップとは別です。Git LFS本体は専用R2バケットにあるため、Forgejoの復元時にもそのバケットを保持します。ゲームを運営する人は、自分のゲームAPIと配布環境も個別に退避してください。