# anefzaoui/minecraft-server-manager architecture

> Architecture diagram of the GitHub repository anefzaoui/minecraft-server-manager, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/anefzaoui/minecraft-server-manager
- Repository: https://github.com/anefzaoui/minecraft-server-manager

## Overview

Minecraft Server Manager is a self-hosted web control panel for Dockerized Minecraft servers. The primary workflow is a user managing a server through the browser: the web application handles requests, server services coordinate operations with Docker, and the panel presents live status and results. Separate product branches cover guided setup, mod and pack management, backups, player and world tools, and analytics. The sampled excerpts confirm the web entry points, event ingestion, WebSocket streaming, and selected supporting behavior; unsampled feature wiring is represented only where the README documents the capability.

Main entry points: [`src/web/routes`](https://github.com/anefzaoui/minecraft-server-manager/tree/main/src/web/routes) (Web routes), [`public/js/app.js`](https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/app.js) (Panel browser), [`src/docker`](https://github.com/anefzaoui/minecraft-server-manager/tree/main/src/docker) (Docker runtime), [`src/db/index.js`](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/db/index.js) (Panel database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Panel access"]
  node_browser["Panel browser<br/>[app.js]"]
  node_webapp["Web application<br/>[app.js]"]
  node_routes["Web routes"]
  node_auth["Authentication and permissions<br/>[auth.js]"]
end

subgraph group_operations["Server operations"]
  node_serverui["Server controls<br/>[dashboard.js]"]
  node_servers["Server lifecycle<br/>[servers.js]"]
  node_docker["Docker runtime"]
  node_consoleui["Console and metrics UI<br/>[console.js]"]
  node_websockets["Live streams<br/>[index.js]"]
  node_backups["Backups and schedules<br/>[backups.js]"]
  node_players["Player management<br/>[players.js]"]
  node_worlds["World tools and map<br/>[worlds.js]"]
end

subgraph group_content["Content and setup"]
  node_wizard["Guided setup<br/>[wizard.js]"]
  node_packs["Packs and mods<br/>[packs.js]"]
  node_registries["Content registries<br/>[modrinthApi.js]"]
  node_blueprints["Blueprint exchange<br/>[index.js]"]
end

subgraph group_insight["History and insight"]
  node_analytics["Player analytics<br/>[ingest.js]"]
  node_crashes["Crash forensics<br/>[index.js]"]
  node_events["Activity history<br/>[index.js]"]
  node_storage["Storage analytics<br/>[indexer.js]"]
  node_database[("Panel database<br/>[index.js]")]
end

subgraph group_integrations["External integrations"]
  node_discord["Discord alerts<br/>[discord.js]"]
  node_statuspage["Public status page<br/>[statusPage.js]"]
end

node_user(("Panel user"))
node_game{{"Minecraft container"}}
node_providers{{"Mod providers"}}

node_user -->|"uses"| node_browser
node_browser -->|"requests pages and APIs"| node_webapp
node_webapp -->|"checks sessions"| node_auth
node_webapp -->|"dispatches requests"| node_routes
node_routes -->|"manages servers"| node_servers
node_servers -->|"controls containers"| node_docker
node_docker -->|"runs server"| node_game
node_browser -->|"uses controls"| node_serverui
node_browser -->|"opens live console"| node_consoleui
node_websockets -->|"streams logs and stats"| node_docker
node_websockets -->|"sends live updates"| node_browser
node_routes -->|"runs setup"| node_wizard
node_routes -->|"manages packs and mods"| node_packs
node_packs -->|"queries provider APIs"| node_registries
node_registries -.->|"fetches content"| node_providers
node_routes -->|"imports and exports"| node_blueprints
node_routes -->|"manages backups"| node_backups
node_routes -->|"manages players"| node_players
node_routes -->|"manages worlds"| node_worlds
node_analytics -->|"reads server logs"| node_docker
node_analytics -->|"stores player events"| node_database
node_crashes -->|"indexes crash reports"| node_database
node_events -->|"records activity"| node_database
node_storage -->|"stores scan results"| node_database
node_routes -->|"serves analytics"| node_analytics
node_routes -->|"serves crash reports"| node_crashes
node_routes -->|"serves history"| node_events
node_routes -->|"serves storage tools"| node_storage
node_events -.->|"dispatches alerts"| node_discord
node_routes -.->|"serves status"| node_statuspage

click node_browser "https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/app.js"
click node_webapp "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/web/app.js"
click node_routes "https://github.com/anefzaoui/minecraft-server-manager/tree/main/src/web/routes"
click node_auth "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/auth.js"
click node_serverui "https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/pages/dashboard.js"
click node_servers "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/servers.js"
click node_docker "https://github.com/anefzaoui/minecraft-server-manager/tree/main/src/docker"
click node_consoleui "https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/pages/console.js"
click node_websockets "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/ws/index.js"
click node_wizard "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/wizard.js"
click node_packs "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/packs.js"
click node_registries "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/modrinthApi.js"
click node_blueprints "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/blueprints/index.js"
click node_backups "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/backups.js"
click node_players "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/players.js"
click node_worlds "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/worlds.js"
click node_analytics "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/analytics/ingest.js"
click node_crashes "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/crashes/index.js"
click node_events "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/events/index.js"
click node_storage "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/storage/indexer.js"
click node_database "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/db/index.js"
click node_discord "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/integrations/discord.js"
click node_statuspage "https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/integrations/statusPage.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_browser,node_webapp,node_routes,node_auth,node_user toneBlue
class node_serverui,node_servers,node_docker,node_consoleui,node_websockets,node_backups,node_players,node_worlds toneAmber
class node_wizard,node_packs,node_registries,node_blueprints toneMint
class node_analytics,node_crashes,node_events,node_storage,node_database toneRose
class node_discord,node_statuspage,node_game,node_providers toneIndigo
```

## Components

### Panel access

- [Panel browser](https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/app.js): `public/js/app.js`
- [Web application](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/web/app.js): `src/web/app.js`
- [Web routes](https://github.com/anefzaoui/minecraft-server-manager/tree/main/src/web/routes): `src/web/routes`
- [Authentication and permissions](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/auth.js): `src/services/auth.js`

### Server operations

- [Server controls](https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/pages/dashboard.js): `public/js/pages/dashboard.js`
- [Server lifecycle](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/servers.js): `src/services/servers.js`
- [Docker runtime](https://github.com/anefzaoui/minecraft-server-manager/tree/main/src/docker): `src/docker`
- [Console and metrics UI](https://github.com/anefzaoui/minecraft-server-manager/blob/main/public/js/pages/console.js): `public/js/pages/console.js`
- [Live streams](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/ws/index.js): `src/ws/index.js`
- [Backups and schedules](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/backups.js): `src/services/backups.js`
- [Player management](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/players.js): `src/services/players.js`
- [World tools and map](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/worlds.js): `src/services/worlds.js`

### Content and setup

- [Guided setup](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/wizard.js): `src/services/wizard.js`
- [Packs and mods](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/packs.js): `src/services/packs.js`
- [Content registries](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/services/modrinthApi.js): `src/services/modrinthApi.js`
- [Blueprint exchange](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/blueprints/index.js): `src/blueprints/index.js`

### History and insight

- [Player analytics](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/analytics/ingest.js): `src/analytics/ingest.js`
- [Crash forensics](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/crashes/index.js): `src/crashes/index.js`
- [Activity history](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/events/index.js): `src/events/index.js`
- [Storage analytics](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/storage/indexer.js): `src/storage/indexer.js`
- [Panel database](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/db/index.js): `src/db/index.js`

### External integrations

- [Discord alerts](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/integrations/discord.js): `src/integrations/discord.js`
- [Public status page](https://github.com/anefzaoui/minecraft-server-manager/blob/main/src/integrations/statusPage.js): `src/integrations/statusPage.js`

### Other components

- **Panel user**
- **Minecraft container**
- **Mod providers**

## Connections

- Panel user → Panel browser: uses
- Panel browser → Web application: requests pages and APIs
- Web application → Authentication and permissions: checks sessions
- Web application → Web routes: dispatches requests
- Web routes → Server lifecycle: manages servers
- Server lifecycle → Docker runtime: controls containers
- Docker runtime → Minecraft container: runs server
- Panel browser → Server controls: uses controls
- Panel browser → Console and metrics UI: opens live console
- Live streams → Docker runtime: streams logs and stats
- Live streams → Panel browser: sends live updates
- Web routes → Guided setup: runs setup
- Web routes → Packs and mods: manages packs and mods
- Packs and mods → Content registries: queries provider APIs
- Content registries → Mod providers: fetches content
- Web routes → Blueprint exchange: imports and exports
- Web routes → Backups and schedules: manages backups
- Web routes → Player management: manages players
- Web routes → World tools and map: manages worlds
- Player analytics → Docker runtime: reads server logs
- Player analytics → Panel database: stores player events
- Crash forensics → Panel database: indexes crash reports
- Activity history → Panel database: records activity
- Storage analytics → Panel database: stores scan results
- Web routes → Player analytics: serves analytics
- Web routes → Crash forensics: serves crash reports
- Web routes → Activity history: serves history
- Web routes → Storage analytics: serves storage tools
- Activity history → Discord alerts: dispatches alerts
- Web routes → Public status page: serves status
