Overview
Cube is a single-binary, self-hosted control panel for running Minecraft servers. One process provisions, supervises, and monitors each server as a managed Java child process, and serves a web UI to operate them — no database server, no Docker required, no external services.
What it does
- Provisions servers by downloading and verifying the
server.jarfor a chosen Minecraft version from Mojang's launcher manifest. - Supervises the JVM — start, stop, restart, and a live view of each server's lifecycle state.
- Streams the console over Server-Sent Events and relays commands straight to the running server.
- Caps resources with hard CPU and memory ceilings, and graphs live usage.
- Schedules daily restarts with an in-game countdown for players.
- Browses and edits files confined to each server's directory.
- Controls access with global accounts and per-server roles, including a delegated moderator.
How it's built
A single process runs three layers: an orchestrator that owns the catalogue and persistence, an in-process node that supervises each Minecraft server as a child JVM, and a server-rendered web UI (HTML templates + HTMX + SSE). State lives in a local SQLite database; server working directories live on disk under the data directory.
Everything is self-contained: the only runtime requirements are java on the host (to actually run a server) and one-time outbound access to Mojang to download a jar. The web UI itself works without either.