Documentation

Game node (VPS)

Use this when the panel is already running and a second Ubuntu machine with a public IPv4 will host game containers.

Create the node in the panel

  1. 1

    Location

    Sign in as admin. Admin → Locations → create a location if you do not have one (for example us-east).
  2. 2

    New node

    Admin → Nodes → New node. Name it, set the FQDN to this machine’s hostname or public IP, leave scheme as http unless you put TLS in front of the daemon yourself, and match memory / disk / CPU to the box.
  3. 3

    Copy credentials

    Save, then copy the node id (24-character hex) and the full flt_… token. The token is shown once — use the clipboard button, not a truncated preview.

Add allocations (the IP and ports players connect to) after the node is Online.

Install on the VPS

You need root SSH, a public IPv4, port 8080/tcp reachable from the panel host, and game ports open to the internet.

bash
apt-get update && apt-get install -y git
git clone https://github.com/Flutter-Software/Flutter-Panel.git /usr/local/src/flutter-panel
cd /usr/local/src/flutter-panel

sudo bash install/ubuntu-node.sh --yes \
  --panel-url https://panel.example.com \
  --token flt_PASTE_THE_TOKEN \
  --node PASTE_THE_NODE_ID \
  --listen-url http://THIS_SERVER_PUBLIC_IP:8080
PlaceholderValue
https://panel.example.comThe URL you open in the browser
flt_PASTE_THE_TOKENToken from Admin → Nodes
PASTE_THE_NODE_IDNode id from Admin → Nodes
THIS_SERVER_PUBLIC_IPPublic IPv4 of this machine, not the panel

If the checkout came from Windows, strip line endings and pass --force on anything that is not Ubuntu 24.04:

bash
sed -i 's/\r$//' install/*.sh
sudo bash install/ubuntu-node.sh --yes --force \
  --panel-url https://panel.example.com \
  --token flt_PASTE_THE_TOKEN \
  --node PASTE_THE_NODE_ID \
  --listen-url http://THIS_SERVER_PUBLIC_IP:8080

Firewall

bash
# daemon: panel → this node
sudo ufw allow from PANEL_PUBLIC_IP to any port 8080 proto tcp
# example Minecraft port (repeat per allocation)
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status

If UFW is off, open the same ports on the cloud security group.

Confirm it is online

bash
systemctl status flutter-daemon
journalctl -u flutter-daemon -f

You should see a successful heartbeat. In the panel, Admin → Nodes should show Online within about 15 seconds (Offline after 120s without a heartbeat). Then add allocations and create a server — see First game server.

ubuntu-node.sh flags

FlagMeaning
--panel-url URLPublic panel URL
--token TOKENflt_… token from Admin → Nodes
--node IDNode id from Admin → Nodes
--listen-url URLURL the panel uses to reach this daemon
--port PORTDaemon listen port (default 8080)
--host HOSTBind address (default 0.0.0.0)
--prefix DIRInstall directory (default /opt/flutter-node)
--data-dir DIRGame files (default /var/lib/flutter)
--yesDo not prompt
--forceAllow distros other than Ubuntu 24.04
--skip-configureInstall only; configure later with flutter-node-configure

Rewrite config

Without reinstalling:

bash
sudo flutter-node-configure \
  --panel-url https://panel.example.com \
  --token flt_PASTE_THE_TOKEN \
  --node PASTE_THE_NODE_ID \
  --listen-url http://THIS_SERVER_PUBLIC_IP:8080
sudo systemctl restart flutter-daemon