Skip to content

Instantly share code, notes, and snippets.

@DJStompZone
Last active August 18, 2025 18:20
Show Gist options
  • Save DJStompZone/8166f04c5260728d4322573b45eec3cc to your computer and use it in GitHub Desktop.
Save DJStompZone/8166f04c5260728d4322573b45eec3cc to your computer and use it in GitHub Desktop.
Moose Panel API Surfaces
flowchart TD

    subgraph CLIENT[Client]

      A["POHJC\n(Plain Old HTML/JS/CSS)"]

      AJS["navigator.credentials\n(WebAuthn / Passkeys)"]

      A --> AJS

    end

    subgraph EDGE[Edge / Proxy]

      RP["Reverse Proxy (nginx / Caddy)\nTLS, compression, rate limit"]

    end

    subgraph API["Flask API"]

      B["Flask App\n(/auth, /pm2, /mc, /logs)"]

      S["Redis Sessions"]

      WA["WebAuthn Server"]

      WS["WebSocket / Socket.IO\n(live logs / status)"]

      B --> S

      B <--> WA

      B <--> WS

    end

    subgraph CTRL["Control Plane"]

      PM2["PM2\n(process manager)"]

      LOGP["PM2 Logs"]

      PM2 --> LOGP

    end

    subgraph DATA["Game Plane"]

      MC["Minecraft Server"]

      LOGL["MC Logs"]

      MC --> LOGL

    end

    subgraph OBS["Observability"]

      LA["Log Aggregator\n(Loki / ELK)"]

      METRICS["Metrics\n(Prometheus)"]

      LOGP --> LA

      LOGL --> LA

      PM2 --> METRICS

    end

    A <--> RP

    RP <--> B

    B <--> PM2

    B -->|pm2 send| PM2

    PM2 --> MC

    A <-->|WS: logs| WS

    LA --> B

    B --> A
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment