NGCP Game server control panel

In development · not released yet

Your game servers, your machines, one panel.

NGCP is a self-hosted control panel for game servers. Install the panel on your own hardware and add the Windows and Linux machines that run your servers. Then handle installs, updates, consoles, schedules and backups from your browser.

There are no downloads yet. See what will be offered.

A Minecraft server in NGCP: running, with its live console, player count, Stop, Restart and Kill, and the common tasks for this server.
A game server in the panel, with its live console. Every screenshot on this site is the real panel running demo data.
Nodes
Windows and Linux
Node link
Mutual TLS, opened by the node
Game servers
Native processes, no Docker
Panel
Web UI, REST API, PostgreSQL

Made by Mark V. Larson to run the Clan of Brothers' ArmA 3 servers, and built for anyone who hosts their own.

How it fits together

Nodes dial out. Nothing dials in.

NGCP has two parts. The panel serves the web interface and the REST API and keeps everything in PostgreSQL. A small agent on each game-server machine opens a mutual-TLS connection out to the panel.

  • Nodes can sit behind NAT. There is no inbound management port to open.
  • Windows and Linux nodes are both first-class.
  • Game servers run as native processes. No Docker needed.
  • Restart the panel whenever you like: game servers keep running and the agents reconnect by themselves.

Read the concepts

How NGCP connects The NGCP panel sits at the top. Three nodes, one Windows and two Linux, sit behind a NAT boundary and each opens a mutual TLS connection out to the panel. No connection goes from the panel into the nodes. NGCP panel web UI · REST API · PostgreSQL NAT / firewall: no inbound management port mTLS, opened by the node game-01 Windows · agent ArmA 3 + 2 HC Counter-Strike 2 game-02 Linux · agent Minecraft (Paper) Valheim game-03 Linux · agent ArmA 3 How NGCP connects The NGCP panel sits at the top. Three nodes, one Windows and two Linux, sit behind a NAT boundary and each opens a mutual TLS connection out to the panel. No connection goes from the panel into the nodes. NGCP panel web UI · REST API · PostgreSQL mTLS, opened by the node game-01 Windows · agent ArmA 3 + 2 HC, Counter-Strike 2 game-02 Linux · agent Minecraft (Paper), Valheim game-03 Linux · agent · ArmA 3 NAT / firewall: no inbound port
Each node's agent opens the connection to the panel. Node names are examples.

Games

Four games ship with it. Yours is a YAML file away.

  • ArmA 3Headless clients, Steam Workshop mods with the -mod line built for you, BattlEye RCON.
  • Counter-Strike 2SteamCMD installs and updates, Source RCON.
  • Minecraft JavaPaper server and its Java runtime, downloaded for you, Minecraft RCON.
  • ValheimAnonymous SteamCMD install, player counts from the game's status query.

Shipped games and what is tested

A game definition is one YAML file: install steps, ports, startup variables, config forms, the console and status query, and what to back up.

gamedefs/valheim/game.yamlexcerpt

install:
  linux:
    - {type: steamcmd, name: Valheim server, app_id: 896660, login: anonymous, validate: true}

ports:
  - {role: game, proto: udp, default: 2456, offset: 0}
  - {role: query, proto: udp, default: 2457, offset: 1}

variables:
  - {key: server_name, label: Server name, type: string, default: "My Valheim Server", user_editable: true}
  - {key: password, label: "Password (5+ characters, not part of the name)", type: password, generate: true}

processes:
  - role: main
    linux: {exe: valheim_server.x86_64}
    ready_regex: "Game server connected"

query: {type: a2s, port: "{port.query}"}
backup:
  include: ["saves/**"]

Shortened from the Valheim definition that ships with NGCP. Writing game definitions

Day to day

The work you do every week, in one place.

Live status, console and RCON

CPU, memory and player charts update live, and the console shows the server's output as it happens. RCON speaks Source, BattlEye, Minecraft and TeamSpeak ServerQuery; the player count comes from the game's own status query.

RCON and player counts

The overview of a game server in NGCP: CPU, memory and players over the last 60 minutes.

Steam Workshop mods, in load order

Add mods by Workshop id or link in the Mods tab, or add a whole collection. The list order is the load order. Run Update and NGCP downloads each mod. On ArmA 3 it also copies the .bikey files into the server's keys folder and builds the -mod line.

Steam Workshop in detail

The Mods tab of an ArmA 3 server in NGCP: Workshop mods in load order, each with its title, Workshop id and folder name.

Schedules run on the node, even when the panel is down

Restart, update, back up, send an RCON command, run a script or send a notification on a cron schedule. Each node keeps its own copy, so the 06:00 restart still happens while the panel is offline. A crashed server is restarted automatically, with back-off.

Scheduled tasks

Scheduled tasks for a game server: a nightly restart with player warnings and a daily backup.

Backups with retention and one-click restore

Back up to a local folder, SFTP or S3-compatible storage. Retention rules prune old backups for you, and restoring one is a single click.

Backups

The backups of a game server, with their size, target and a restore action.

Ready for hosting

Packages, resellers with their own quotas and branding, and sub-users per server. A billing API and a WHMCS module connect your billing: orders create servers, overdue invoices suspend them, and customers get a one-click “Log in to the game panel”.

Resellers and packages

Hosting packages in NGCP, each with a game, slot range and resource limits.

Isolation and accounts

Every game server in its own box.

One OS user per server

Each game server runs as its own operating-system user, with resource limits (Job Objects on Windows, cgroups on Linux) and its own firewall rules. One server cannot read another's files.

Accounts you can account for

Roles from SuperAdmin to sub-user, two-step verification (TOTP), API keys, an admin IP allow-list and an audit log of every change.

Security

Installing

Installs like an application.

Windows

NGCP Setup

One installer for the panel, the game servers or both. PostgreSQL is included.

Linux

.deb and .rpm packages

For Debian and Ubuntu, and for RHEL, Rocky and Alma.

Linux appliance

ISO, Hyper-V and VMware

An Ubuntu-based installer ISO plus Hyper-V and VMware images, with a first-boot setup on the server's screen.

Add a Linux node: the panel gives you this line with a one-time token

curl -fsSL https://panel.example.com/install/agent.sh | sudo bash -s -- \
  --token ngcpe_... --ca-hash sha256:...

Windows nodes get the same as one PowerShell line. A node on the panel's own server joins by itself. Adding a node

NGCP is in development.

It is not released yet, so there is nothing to download today. The documentation is public, and the changelog shows what each development phase added.