Linux
Adding a Linux node
A node is a machine that runs game servers. It runs the NGCP agent, which connects out to
the controller over mutual TLS. Adding a Linux node takes one command. What is the same on every
system (tokens, agent.yaml, managing nodes) is in Adding a node.
Before you start
-
The node needs Debian / Ubuntu or the RHEL family, amd64 or arm64, with systemd.
-
The node must reach the controller’s public URL (port 8080 or your HTTPS port) and the AgentLink address (port 8443). Check from the node:
curl -fsS https://panel.example.com/healthz nc -vz panel.example.com 8443 -
You need root rights on the node.
-
Nodes that will run SteamCMD games (ArmA 3, CS2, Valheim) need SteamCMD’s 32-bit libraries. On Debian or Ubuntu install them once:
sudo dpkg --add-architecture i386 sudo apt update sudo apt install lib32gcc-s1 lib32stdc++6
1. Create an enrollment token
- In the panel open Nodes and choose Add a node.
- Pick the datacenter (or create one inline) and type the node’s name.
- Keep the default validity of one hour (at most seven days).
The panel shows the token once, together with the CA hash (sha256:...) and a ready-made
command for Linux. The token works one time only. More about tokens and the CA hash:
Create an enrollment token.
2. Run the one-line installer
The panel serves an installer script that downloads the agent package from the panel, checks its SHA-256, installs it and enrolls the node. As root:
curl -fsSL https://panel.example.com/install/agent.sh | sudo bash -s -- \
--token ngcpe_... --ca-hash sha256:...
Optional: --services-dir /srv/games puts game servers somewhere other than the default.
The script is only as trustworthy as the connection to the panel: serve the panel over HTTPS.
3. Check
The node appears as Online within a few seconds and shows CPU, memory and disks.
If it does not come online, see If the node does not come online.
With the appliance
The Linux appliance with the role Game servers only: paste the Linux command from Add a node into its first-boot setup (or later: server menu, Join a panel). On an appliance with Panel and game servers, the panel’s setup offers This server runs game servers too and the agent joins by itself; no token needed.
With the agent package
Install the package, then enroll with the command the panel showed:
sudo apt install ./ngcp-agent_X.Y.Z_amd64.deb # or: sudo dnf install ./ngcp-agent-X.Y.Z-1.x86_64.rpm
sudo ngcp-agent enroll --controller https://panel.example.com --token ngcpe_... --ca-hash sha256:...
sudo systemctl restart ngcp-agent
The packaged service waits until the node is enrolled, so the order does not matter.
With the bare binary
As root:
sudo install -m 0755 ngcp-agent /usr/local/bin/ngcp-agent
sudo ngcp-agent enroll --controller https://panel.example.com --token ngcpe_... --ca-hash sha256:...
sudo ngcp-agent service install
service install registers and starts the systemd unit. Use
ngcp-agent service status|stop|start|uninstall to manage it. To replace an existing
enrollment, add --force to enroll.
What the agent creates
| What | On Linux |
|---|---|
| Service | ngcp-agent.service, root, Restart=always, Delegate=yes |
Data folder (agent.yaml, certificate, private key, log, stored specs) |
/var/lib/ngcp, mode 0700 |
| Game servers | /opt/ngcp/services/svc-<id> |
| SteamCMD | /opt/ngcp/steamcmd (owned by ngcp_steam) |
| Accounts | ngcp_s<id> per service, ngcp_steam for SteamCMD, as system users |
| Firewall | ufw / firewalld rules when one is active |
| Log | journalctl -u ngcp-agent, also /var/lib/ngcp/agent.log (UTC) |
ufw and firewalld
| Port | From | Opened by |
|---|---|---|
| Game ports of each service | Players | The agent, per service (ufw or firewalld, when active) |
| 2022/tcp (SFTP) | Your users | The agent (NGCP svc-0) |
| Outbound 8080 or 443, and 8443 | The node to the controller | Your network |
Rules are managed through ufw or firewalld when one of them is active. Without either, the agent changes nothing and you open the ports yourself; direct nftables / iptables management is not implemented. Switch firewall management off for a node in its settings if you manage the firewall yourself.
Next: your first game server. Running a Linux node day to day: Linux notes.