NEW v1.0 · Production-ready release

Kubernetes for Minecraft,
finally.

A self-hosted control plane for Minecraft server fleets. mTLS bootstrap from a single join token. Cosign-signed modules verified offline against Rekor. Apache 2.0, yours to run.

$ curl -fsSL prexor.cloud/install.sh | sh
~ · prexorctl status
# overview · context: default
$ prexorctl status

 controller        https://controller.local:8080
 state.store       mongo · available
 coordination      valkey · available

# nodes
NAME            STATE     INSTANCES   UPTIME
node-eu-1       ready     7           14d
node-eu-2       ready     5           9d
node-us-1       ready     3           2d
Example output from prexorctl status.

Three things it does really well.

What is PrexorCloud
Schedule
Real scheduling.

Place instances on nodes by RAM, region, tags, or any constraint you encode. The scheduler is plain Java — read the code, fork it, replace it. No black-box bin-packing.

Observe
Real telemetry.

Crash loops, draining nodes, player-count time-series, p99 latencies. Prometheus scrape endpoint when you want it; everything's already streamed live to the dashboard over SSE.

Extend
Signed extension.

Modules are JVM artifacts loaded by the controller. Every release is cosign-signed (keyless OIDC) and verified offline against the Rekor transparency log. No vendor SDK — the API is REST + gRPC.

How it's built

Three processes, one cluster.

No daemon-of-daemons, no central queue, no required sidecars. A controller, an agent per host, and the surfaces operators actually touch.

topology
                ┌──────────────────────┐
                │     Controller       │
                │  REST · gRPC · SSE   │
                │  Scheduler · Events  │
                └──┬───────────┬───────┘
       mTLS / gRPC │           │ JWT / REST + SSE
        ┌──────────┘           └────────────┐
        v                                   v
   ┌─────────┐                       ┌──────────────┐
   │ Daemon  │  (one per node)      │ Dashboard /  │
   │ Agent   │                       │ prexorctl    │
   └────┬────┘                       └──────────────┘
        │
        v
   Minecraft instances
  • mTLS bootstrap from one join token. Daemons exchange a single-use token for a per-node cert issued by the controller's internal CA. Certs rotate without restart.
  • Modules signed end-to-end. Cosign keyless (GitHub Actions OIDC) on the artifact; offline Rekor SET enforcement in modules.signing.rekor.policy=REQUIRE_SET.
  • Nightly DR drill and perf baselines. Backup-restore round-trip runs in CI every night; p99 latencies are CI gates, not dashboards-to-check.
  • Apache 2.0, no phone-home. Self-hosted by design. The CLI talks to your controller and nothing else.
Install

One line, then prexorctl setup.

The installer downloads a single signed binary, verifies its cosign signature + SHA-256, and (by default) launches prexorctl setup — a browser-based wizard that generates a versioned controller.yml you commit to your infra repo.

Read the install guide
~ · install
# Linux / macOS
$ curl -fsSL prexor.cloud/install.sh | sh

# …or Windows (PowerShell)
PS> irm prexor.cloud/install.ps1 | iex

# the wizard answers three questions, then:
 controller up on :8080
 daemon up on :9090
 bootstrap admin password written (one-time)

Run it on a Raspberry Pi.
Run it on a thousand cores.

One static binary per role. No daemon-of-daemons. The same system whether you're running a single closet node or a fleet across data centres — the only thing that changes is how many prexorctl token create you've run.