diff --git a/.planning/phases/09-botfights-platform-upgrade/09-CONTEXT.md b/.planning/phases/09-botfights-platform-upgrade/09-CONTEXT.md index fa557cea..85e6e9d4 100644 --- a/.planning/phases/09-botfights-platform-upgrade/09-CONTEXT.md +++ b/.planning/phases/09-botfights-platform-upgrade/09-CONTEXT.md @@ -17,6 +17,16 @@ BotFights is a standalone app (separate repo) distributed to Archipelago nodes a 3. **BOT-03 — Shared public match endpoint on VPS2.** Every node's BotFights instance must use a public arena endpoint hosted on VPS2 (146.59.87.168, docker + nginx-proxy-manager; subdomains under `archipelago-foundation.org` available, pattern: new NPM proxy host + Let's Encrypt) **by default**, so all nodes see all fighters and battle across nodes. Node-local instance remains the runtime but match/fighter state is the shared public arena. 4. **BOT-04 — Registry/manifest update.** New app version: build + push new image to the vps2 registry, bump `apps/botfights/manifest.yml`, regenerate + re-sign + republish the signed catalog (catalog manifest overlay supremacy — disk edits don't apply to catalog-covered apps). +## Architecture Decision (user, 2026-07-30): Arena-as-relay + +BOT-03 is built and DOCUMENTED as a decentralized "arena = nostr relay" model, per project philosophy: +- **Any node can host a public arena** — it is the same app image; a public arena is just a BotFights instance without `ARENA_UPSTREAM_URL` that others point at. +- **Each node chooses its arena community** via `ARENA_UPSTREAM_URL` (env/manifest); unset = standalone. +- **The Foundation's VPS2 arena (`http://146.59.87.168:9100`) is only the well-known default**, like the vps2 FIPS anchor — a rendezvous, not an authority. Nothing in the code hardcodes a center. +- The game UI is always served from the user's own node; only match/fighter state lives on the chosen arena. +- The unified AI prompt + docs (BOT-02) and `docs/arena-deployment.md` MUST present it this way, including "how to host your own arena" as a first-class section. +- Later phase (roadmap note): nostr-event-based fighter/arena discovery across multiple arenas. + ## Claude's Discretion - Exact architecture for BOT-03 (thin-client mode vs sync/federation protocol) — chosen during planning based on research; bias toward the simplest thing that makes "all nodes see all fighters" true.