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
Location
Sign in as admin. Admin → Locations → create a location if you do not have one (for exampleus-east). - 2
New node
Admin → Nodes → New node. Name it, set the FQDN to this machine’s hostname or public IP, leave scheme ashttpunless you put TLS in front of the daemon yourself, and match memory / disk / CPU to the box. - 3
Copy credentials
Save, then copy the node id (24-character hex) and the fullflt_…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.
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| Placeholder | Value |
|---|---|
| https://panel.example.com | The URL you open in the browser |
| flt_PASTE_THE_TOKEN | Token from Admin → Nodes |
| PASTE_THE_NODE_ID | Node id from Admin → Nodes |
| THIS_SERVER_PUBLIC_IP | Public 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:
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:8080Firewall
# 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 statusIf UFW is off, open the same ports on the cloud security group.
Confirm it is online
systemctl status flutter-daemon
journalctl -u flutter-daemon -fYou 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
| Flag | Meaning |
|---|---|
| --panel-url URL | Public panel URL |
| --token TOKEN | flt_… token from Admin → Nodes |
| --node ID | Node id from Admin → Nodes |
| --listen-url URL | URL the panel uses to reach this daemon |
| --port PORT | Daemon listen port (default 8080) |
| --host HOST | Bind address (default 0.0.0.0) |
| --prefix DIR | Install directory (default /opt/flutter-node) |
| --data-dir DIR | Game files (default /var/lib/flutter) |
| --yes | Do not prompt |
| --force | Allow distros other than Ubuntu 24.04 |
| --skip-configure | Install only; configure later with flutter-node-configure |
Rewrite config
Without reinstalling:
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