Server
Do this once, on the Linux box that will host your games. It's the same shape as a Sitehoster server (Caddy out front, a localhost-only service behind it), but it speaks WebSockets and runs your games.
Get a server & note its IP
Any Linux box with systemd; a small VPS is plenty for a first game. Note its public IP address: the client and your game domains will point at it.
Install Caddy & Node v20+
From your package manager: Caddy (so its systemd unit exists) and Node. The installer only checks for these.
Ubuntu & Debian
Caddy comes from its official apt repository (so you get the systemd unit); Node v20 from NodeSource.
# Caddy — official apt repository
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install -y caddy
# Node v20 — NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Arch Linux
Both are in the official repositories, and Caddy ships with its systemd unit.
sudo pacman -S --needed caddy nodejs npm
On any distro, confirm you are ready with caddy version and
node --version (expect v20 or newer).
Run the installer
Pipe it straight to root, or download and verify it first; both produce an identical server.
curl -fsSL https://gamehoster.org/install.sh | sudo bash
Point your game domains at it
Add an A record for each game domain → your server's IP. Caddy issues a real
certificate on the first connection, and each game goes live at
wss://<domain>/<game>.
Manage the service with sudo deploy/start.sh / sudo deploy/stop.sh.
Upgrade by re-running the installer (it keeps your token and games); remove everything with
sudo deploy/uninstall.sh.
Next steps
With the server up, you're ready to sync your first game folder to it.