# cemeeckhout/docker-minecraft-server architecture

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

- Interactive diagram: https://gitdiagram.com/cemeeckhout/docker-minecraft-server
- Repository: https://github.com/cemeeckhout/docker-minecraft-server

## Overview

This repository packages a configurable Minecraft Java server as a Docker container. The main workflow is an operator starting the container with environment settings and persistent `/data`; startup prepares the requested server variant and version, then runs the server. README and directory names document additional setup and management capabilities, but no source excerpts were provided, so internal dispatch and provider-specific wiring are not asserted.

Main entry points: [`scripts/start`](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start) (Startup entry), [`scripts/start-finalExec`](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-finalExec) (Minecraft server), [`scripts/start-setupMounts`](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupMounts) (Mounted data), [`files/auto`](https://github.com/cemeeckhout/docker-minecraft-server/tree/master/files/auto) (Autopause and autostop)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_startup["Startup and setup"]
  node_entry["Startup entry"]
  node_environment["Environment setup"]
  node_configuration["Configuration setup"]
end

subgraph group_server["Server variants"]
  node_servertypes["Server type deployment"]
  node_version["Version selection"]
  node_minecraft["Minecraft server"]
end

subgraph group_content["Content and data"]
  node_modpacks["Modpack setup"]
  node_mods["Mods and plugins"]
  node_world["World setup"]
  node_mounts["Mounted data"]
  node_data[("Persistent server data")]
end

subgraph group_operations["Runtime operations"]
  node_autopause["Autopause and autostop"]
  node_rcon["RCON commands"]
  node_health["Health checks"]
end

node_operator(("Container operator"))
node_release{{"Server release source"}}

node_operator -->|"starts container"| node_entry
node_entry -->|"downloads version"| node_release
node_entry -->|"starts server"| node_minecraft
node_entry -->|"selects type"| node_servertypes
node_entry -->|"reads settings"| node_environment
node_entry -->|"configures server"| node_configuration
node_entry -->|"sets up pack"| node_modpacks
node_entry -->|"sets up content"| node_mods
node_entry -->|"sets up world"| node_world
node_entry -->|"prepares mounts"| node_mounts
node_mounts -->|"uses /data"| node_data
node_minecraft -->|"persists files"| node_data
node_operator -->|"sends commands"| node_rcon
node_operator -->|"checks status"| node_health
node_autopause -.->|"pauses or stops"| node_minecraft

click node_entry "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start"
click node_environment "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupEnvVariables"
click node_configuration "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-configuration"
click node_servertypes "https://github.com/cemeeckhout/docker-minecraft-server/tree/master/scripts"
click node_version "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-deployVanilla"
click node_modpacks "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupModpack"
click node_mods "https://github.com/cemeeckhout/docker-minecraft-server/tree/master/scripts"
click node_world "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupWorld"
click node_mounts "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupMounts"
click node_minecraft "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-finalExec"
click node_autopause "https://github.com/cemeeckhout/docker-minecraft-server/tree/master/files/auto"
click node_rcon "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-rconcmds"
click node_health "https://github.com/cemeeckhout/docker-minecraft-server/blob/master/bin/mc-health"

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_entry,node_environment,node_configuration toneBlue
class node_servertypes,node_version,node_minecraft toneAmber
class node_modpacks,node_mods,node_world,node_mounts,node_data,node_release toneMint
class node_autopause,node_rcon,node_health toneRose
class node_operator toneIndigo
```

## Components

### Startup and setup

- [Startup entry](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start): `scripts/start`
- [Environment setup](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupEnvVariables): `scripts/start-setupEnvVariables`
- [Configuration setup](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-configuration): `scripts/start-configuration`

### Server variants

- [Server type deployment](https://github.com/cemeeckhout/docker-minecraft-server/tree/master/scripts): `scripts`
- [Version selection](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-deployVanilla): `scripts/start-deployVanilla`
- [Minecraft server](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-finalExec): `scripts/start-finalExec`

### Content and data

- [Modpack setup](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupModpack): `scripts/start-setupModpack`
- [Mods and plugins](https://github.com/cemeeckhout/docker-minecraft-server/tree/master/scripts): `scripts`
- [World setup](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupWorld): `scripts/start-setupWorld`
- [Mounted data](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-setupMounts): `scripts/start-setupMounts`
- **Persistent server data**

### Runtime operations

- [Autopause and autostop](https://github.com/cemeeckhout/docker-minecraft-server/tree/master/files/auto): `files/auto`
- [RCON commands](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/scripts/start-rconcmds): `scripts/start-rconcmds`
- [Health checks](https://github.com/cemeeckhout/docker-minecraft-server/blob/master/bin/mc-health): `bin/mc-health`

### Other components

- **Container operator**
- **Server release source**

## Connections

- Container operator → Startup entry: starts container
- Startup entry → Server release source: downloads version
- Startup entry → Minecraft server: starts server
- Startup entry → Server type deployment: selects type
- Startup entry → Environment setup: reads settings
- Startup entry → Configuration setup: configures server
- Startup entry → Modpack setup: sets up pack
- Startup entry → Mods and plugins: sets up content
- Startup entry → World setup: sets up world
- Startup entry → Mounted data: prepares mounts
- Mounted data → Persistent server data: uses /data
- Minecraft server → Persistent server data: persists files
- Container operator → RCON commands: sends commands
- Container operator → Health checks: checks status
- Autopause and autostop → Minecraft server: pauses or stops
