Skip to content
This repository was archived by the owner on Aug 6, 2026. It is now read-only.

docs: ship asobi_admin as a self-host console + deployment-mode honesty - #2

Merged
Taure merged 1 commit into
mainfrom
docs/ship-selfhost-console
Jul 23, 2026
Merged

docs: ship asobi_admin as a self-host console + deployment-mode honesty#2
Taure merged 1 commit into
mainfrom
docs/ship-selfhost-console

Conversation

@Taure

@Taure Taure commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Makes asobi_admin usable and deployable by self-hosters (the engine guardian's "option D"), and closes the guardian's core concern that live-plane endpoints could silently report wrong data.

README

Documents what the console is and, crucially, where to run it:

  • Data-plane (players, economy, tournaments, match/chat history) reads Postgres directly - works from any node sharing the backend's DB.
  • Live-plane (online presence, matchmaker queue, /system BEAM stats) reads local node state - only correct when asobi_admin runs in the same release as the asobi backend.

Leads with the same-release deployment (full functionality), documents auth (ASOBI_ADMIN_TOKEN, websocket in-protocol auth, RELEASE_COOKIE), and enumerates the API.

Deployment-mode honesty

New asobi_admin_runtime: deployment_mode (embedded|standalone, env ASOBI_ADMIN_DEPLOYMENT_MODE, safe default standalone). /admin/api/dashboard and /admin/api/system now return deployment_mode + live_plane_authoritative, so a consumer can tell whether an online count of zero is real or just means the console isn't co-located with the runtime. No more silently-wrong live figures.

Deferred (not this PR)

The managed, per-environment console that runs out-of-process (option C) needs asobi to expose presence/matchmaker snapshots on its public API first (so the live-plane can be read remotely without clustering). That's the asobi-architecture-guardian's prerequisite list; this PR ships the self-host path honestly in the meantime. No web UI yet - noted as a possible follow-up.

Testing

26 eunit (incl. 6 new runtime-mode tests), fmt/xref/dialyzer clean, eqwalize NO ERRORS on the touched modules.

Adds the README that makes asobi_admin usable by self-hosters, and a
deployment-mode signal so live-plane figures never silently lie.

- README documents the two endpoint classes (data-plane works from any
  node sharing the DB; live-plane - presence, matchmaker, system stats -
  reads local node state), and leads with the same-release deployment as
  the supported way to get the full console. Auth (ASOBI_ADMIN_TOKEN, ws
  in-protocol auth) and the RELEASE_COOKIE requirement are documented.
- asobi_admin_runtime exposes deployment_mode (embedded|standalone, env
  ASOBI_ADMIN_DEPLOYMENT_MODE, safe default standalone). /dashboard and
  /system now return deployment_mode + live_plane_authoritative so a
  consumer can tell whether online counts / matchmaker / VM stats reflect
  the real game runtime or the console's own idle node.

The managed per-environment console that runs out-of-process (option C)
stays deferred: it needs asobi to expose presence/matchmaker snapshots on
its public API first. This ships the self-host path (option D) honestly.
@Taure
Taure merged commit 920b7fb into main Jul 23, 2026
15 checks passed
@Taure
Taure deleted the docs/ship-selfhost-console branch July 23, 2026 22:48
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant