GameCTL logo

GameCTL

Self-hosted game server orchestration for Kubernetes — deploy, manage and watch dedicated game servers from one Go binary. 24 games, live control panels, no YAML.

Public beta · v0.0.50-beta
curl -fsSL https://gamectl.cc/install.sh | bash

Runs against your current kubectl context. Zero config. Built and tested on k3s — any conformant Kubernetes works.

24games
4live panels
1Go binary
0YAML

See it

A real dashboard — game hub, guided deploy wizard, storage, monitoring, backups.

GameCTL game hub — running servers
The hub — every game you're running, with an hour of uptime, latency, CPU and RAM on each card. One click to manage.
Deploy wizard
The deploy wizard — per-game steps with sane defaults, an assigned instance name, and port fields checked against every Service already in your cluster.
Monitoring page
Monitoring — what the background sampler is watching right now, per-server status and latency, expandable to the full history. Alerts go to a Discord webhook when reachability changes.
Scheduled backups
Scheduled backups — pick a folder, interval and retention; restore any snapshot in one click.

Manage the server while it's running

Not just deploy-and-forget. The manage screen talks to the live server over RCON, so the roster, the map, the gametype and the bots are things you change from a browser tab while people are playing.

Counter-Strike 2 manage screen
Every server's manage screen — pods and readiness, CPU/RAM against their limits, an uptime heartbeat with latency, networking, and lifecycle buttons. CS2 adds its own live panel: game modes, bots, workshop maps and plugin diagnostics.
CS2 live configuration panel
Change the config without a restart — switch game mode live (it execs that mode's cfg and loads its map over RCON, no pod restart), set the in-game hostname and welcome message, and store a Steam Web API key. Bots, cheats, warmup and map loads are buttons. Plugin diagnostics confirm Metamod and CounterStrikeSharp actually loaded, which is the first thing you want to know when a plugin misbehaves.
CS2 workshop map cache
Workshop maps, cached ahead of time — every subscribed map tracked with its size and cache state (here 146 of 150, 32 GB on NFS). A sidecar fetches missing ones in the background using the API key, so maps are already on disk when someone votes for one — instead of the stock host_workshop_map path, which kicks everyone while it downloads.

Live panels exist for CS2, IW4X, Minecraft and Wreckfest 2. Every game gets an RCON console — Valve's Source protocol over TCP, and the idTech3 UDP dialect for IW4X and Quake 3.

Why GameCTL

Turns “deploy a game server on Kubernetes” from a wall of YAML into a few clicks.

One binary

API + embedded UI in a single container. Nothing else to host.

Guided deploys

Per-game wizards with sane, overridable defaults — no manifests to hand-write.

Watchable ops

Every apply and delete is a tracked background task with phase-by-phase status.

In-app diagnostics

Scheduling, image-pull and crash reasons surface in the UI — not in kubectl.

Self-update

One-click in-place rolling update that keeps your auth and game data.

Honest lifecycle

Deletes truly clean up and only ever touch resources GameCTL owns.

First-party images

Most games run GameCTL's own from-scratch server images, built in public and published to GHCR.

Live control panels

Roster, maps, gametypes, bots and settings changed on the running server over RCON — CS2, IW4X, Minecraft and Wreckfest 2. No restart.

Scheduled backups

Snapshot save data on a schedule, keep the newest N, restore in one click.

Windows-only servers

Games with no Linux dedicated server run under Wine in GameCTL's own images — Wreckfest 2 and IW4X today.

Uptime & alerts

A background sampler probes every server; uptime shows as heartbeat bars, and a Discord webhook fires when reachability changes.

Public stats API

A separate read-only, token-gated /api/stats/servers lists only the instances you flag as public — plus a ready-made promo page you can deploy against it.

Games

24 games deployable today — most on GameCTL's own first-party server images, built in public and published to GHCR.

IW4X (Modern Warfare 2)Palworld MinecraftCounter-Strike 2SPT + Fika (Tarkov co-op) Insurgency: SandstormSatisfactoryValheim Factorio7 Days to DieCore Keeper TerrariaProject ZomboidNecesseBarotrauma Quake 3 ArenaLeft 4 DeadLeft 4 Dead 2 Sons of the ForestAbiotic FactorUnturned BeamMPWreckfestWreckfest 2

IW4X and Wreckfest 2 are Windows-only servers and run under Wine. IW4X downloads nothing — you supply your own legally owned MW2 install, and the wizard prints the exact copy commands. DayZ has been withdrawn for now: it was the only game still running on a third-party image and the only one that needed your personal Steam account, so it is out of the deploy list until its own first-party image lands.

Put it on the internet — securely

ProxyCTL

GameCTL's sibling publishes your servers to the world without opening a single router port — raw game ports over WireGuard through a cheap VPS, web apps as Cloudflare Tunnel ingress rules. It sees the Services GameCTL creates: pick one, pick the ports, Apply. GameCTL's manage screen drives it directly, so publishing a server is a button on the server.

curl -fsSL https://proxyctl.cc/install.sh | bash

proxyctl.cc ↗ — same single-binary design, same one-command install.