Nodes
A node is a machine with Docker that runs game servers. The agent on it connects out to the panel, so the node needs no open management port.
Add a node
Section titled “Add a node”- In the panel, go to Nodes → Add node. Enter a name, the address players use, and the ports for game servers (e.g.
27000-27100, on all of the node’s addresses). - The panel shows a
docker run …command with a one-time token, valid for 24 hours. Run it on the node. It contains the panel’s public URL (Admin → Settings); without one, it uses the address you opened the panel with, and the dialog says so. - The node turns online. More ports can be added on the node’s page, e.g.
25565, 2302-2310, 27016(TCP, UDP or both). Servers get one port per role from these.
Instead of the command, deploy/compose.agent.yml runs the agent with AGENT_PANEL_URL and AGENT_ENROLLMENT_TOKEN.
Data directory
Section titled “Data directory”/var/lib/panel-agent holds the server files, backups, console logs and the node’s identity (agent.json).
It must be mounted at the same path inside the agent container, because game containers bind-mount their folders from it.
The agent serves SFTP on port 2022, so players can use FileZilla, WinSCP and the like. Players need to reach it: open or forward it like the game ports.
AGENT_SFTP_PORTchanges the port. Use the same number inside and outside the container, because the panel shows it.AGENT_SFTP_PORT=offturns SFTP off.- The host key is created on first start in the data directory; its fingerprint is shown in the panel.
- When the router forwards another port, set the address users see on the node’s page.
How people sign in: Files and SFTP.
Images
Section titled “Images”- A node pulls an image when it is missing.
- Installs, reinstalls and updates also check the game’s, the install script’s and the Steam image for a newer version, so a moved
:latestarrives. If the registry is unreachable then, the copy on the node is used. - A plain start never waits for a registry.
Private registries
Section titled “Private registries”Add a login in Admin → Settings → Registries: the host as in image names, a user, and a password or a read-only token.
Nodes get it over their panel connection, keep it in memory only, and use it for pulls. Containers never see it.
Update the agent
Section titled “Update the agent”Pull the new image and recreate the container; it keeps its identity.
If a node is lost or compromised, New enrollment token on the node’s page replaces its identity: the old agent can no longer connect.
Move a server to another node
Section titled “Move a server to another node”Move to another node on a server’s Settings tab (operators). The server stays the same: its id, settings, members’ access, schedules and backups.
- It stops (if it runs) and is backed up.
- Every backup is copied to the new node.
- It gets ports on the new node, with the same numbers where they are free there. Without enough free ports, the move is refused and says which are missing.
- It is removed from the old node, restored on the new one and started again if it ran.
The console shows each step. Until the switch, a failure leaves the server where it was. Players need the new node’s address.
Move files and backups off: for a node that is gone. The server is installed fresh on the new node; its files and backups are lost.
Removing a node: move its servers first; a node with servers can’t be deleted.
- Hardening a node for untrusted tenants
- Port forwarding