Nodes (LAN + cloud)

Add spare PCs or any VPS as compute — PlayOn configures WireGuard for cloud so players still join on the LAN.

What a node is

Home is the control plane (admin UI, agents, /play). A node is a machine that can run game servers.

KindTypical machineTunnel
LocalThe same box as Home (optional)None
Remote (LAN)Spare PC / mini-PC on your networkNone
CloudAny VPS you can SSH toWireGuard (PlayOn sets this up)

You do not pick a cloud vendor inside PlayOn. Bring your own VPS (or spare PC), then Add node.

1. Decide if Home hosts games

Settings → Nodes

  • Leave Also host game servers on this machine on if the install box can run games.
  • Turn it off for a laptop-only control plane (all runtimes on added nodes).

2. Add a node

Same flow for LAN and cloud:

  1. Choose On my LAN or In the cloud.
  2. Prefer Add via SSH (host, username, password or key). PlayOn installs the node-agent for you.
  3. Or use Copy one-liner instead and paste it in a root shell on the target (for cloud, enter the VPS public IP first).

Within about 15 seconds the Dashboard → Nodes list should show the machine online.

Cloud specifics

  • Install WireGuard tools on Home once: wireguard-tools (Linux) or WireGuard for Windows.
  • PlayOn generates keys, brings up the tunnel, and points the node-agent at the overlay.
  • When a game runs on a cloud node, Home publishes LAN ports and forwards them over WireGuard. The player panel still shows your LAN join address — guests do not need the VPS public IP.

LAN specifics

  • No WireGuard.
  • The node must reach Home’s API on the LAN (PLAYON_ADVERTISE_HOST / auto-detected IP).

3. Place servers

When you create a server (chat or UI), PlayOn ranks eligible nodes. Badges look like:

  • Local
  • Remote · basement-pc
  • Cloud · vps-1

You can move a stopped server between nodes later (snapshot + data copy).

3b. Manage an existing install on a node

If a node already has a game install (Steam//opt/servers trees):

  1. Open the Dashboard map and click that host’s pad.
  2. Scan — PlayOn looks for known launchers (Minecraft, Rust, Valheim, Terraria, Factorio, Project Zomboid, UT99, …).
  3. Manage — copies the install into PlayOn’s jail on that host (original left in place). For games that keep worlds outside the install (e.g. Zomboid ~/Zomboid, Valheim/Terraria under XDG), PlayOn also copies that world/config when it can read it, and picks up systemd launch args like -servername / -world.
  4. Stop the old host service/unit yourself, then Start the server in PlayOn (cutover needs a maintenance window).

The node-agent user must be able to read the previous service user’s data directory when worlds live under $HOME. After updating Home, use Settings → Nodes → Update so remote agents get the latest Manage/cutover support.

4. Remove a node

Move or delete servers on that node first, then Remove under Settings → Nodes. For cloud, PlayOn tears down the WireGuard peer; your VPS keeps running until you destroy it at the provider.

Docker on nodes

Many catalog games need Docker on the machine that runs them. On Linux, Add-node and Home service install can install Engine automatically. If a node is online without Docker, open Settings → Nodes → Install Docker (SSH or copyable one-liner). Full guide: Docker on nodes.

Tips

  • Heavy modpacks → prefer a strong LAN box or cloud node; keep voice/proxy Local if you want.
  • Air-gapped LANs: use Local + LAN nodes only (cloud Add node needs outbound SSH and WireGuard).
  • Agents can call nodes_add / nodes_remove / placement_suggest / servers_relocate over MCP once connected.