Skip to content

What is CommandBlock? ​

CommandBlock is a self-hosted manager for Minecraft (Java) servers. Pick a loader, click Create, and you get a running server in an isolated container - reachable by its own hostname through a single public port.

  • Create in one click. Vanilla, Paper, Purpur, Fabric, Quilt, Forge, NeoForge or Spigot, on any Minecraft version that ships a server jar.
  • One port, many servers. Every server is reached on 25565. The built-in router reads the address from the Minecraft handshake and forwards to the matching server - so smp.example.com and modded.example.com share one open port.
  • Backups & cloning. World or full-server snapshots to an S3 bucket such as SeaweedFS - restore in place, schedule them with cron, or spin up a brand-new server from a backup.
  • Wake on join, sleep when idle. Stop a server once it sits idle, and start it again the moment someone tries to join - holding the player until it's ready so they don't have to reconnect. Works on every version and every mod loader.
  • Any client version. Optionally install the Via stack so clients from 1.8 up to current can join the same server, without touching authentication.
  • Edit from the UI. A per-server settings modal: server.properties with a live MOTD editor, Java/memory runtime, the Minecraft version, a custom icon, and rename.
  • Lifecycle controls. Start, stop, restart and delete from the UI, with live vitals per server - CPU, memory, uptime and players - and sleeping servers told apart from crashed ones.
  • Bring your own auth. OIDC with any provider (Pocket ID, Authentik, Auth0…), or the bundled mock server for local development.

Architecture ​

Each server is provisioned as an isolated sibling container (itzg/minecraft-server) on the Docker host - not a child of CommandBlock - which is why CommandBlock mounts the Docker socket. Provisioned servers join CommandBlock's Docker network and publish no host port of their own; only the router's port is exposed.

Player --TCP 25565--> Router (in CommandBlock) --> mc-container (by hostname)

The control plane is the whole app: the Angular UI, the ASP.NET Core API, its Postgres metadata database, and the router.

Get started ​

Made with care by PianoNic.