Documentation
First game server
A server needs an Online node, at least one allocation, and an egg. Start with the seeded Sleep egg so you can prove power and console before you import a game.
Node must be Online
Admin → Nodes. Heartbeats land every 15 seconds. Offline after 120 seconds without one. If the node stays Offline, see Troubleshooting.
Allocations
Admin → Nodes → [this node] → Allocations. Add the IP and ports players should use:
- VPS: the public IPv4 and the game port (for example 25565)
- Home LAN: the machine’s LAN IP
- Local testing: 0.0.0.0 and 25565 is fine
Create a test server
- 1
Admin → Servers → New server
Pick the Online node and one allocation. - 2
Use nest Generic, egg Sleep
Sleep is a busybox loop (busybox:1.36). It does not need a game JAR. Start it from the dashboard and open Console — you should see a timestamp every few seconds. - 3
Start / Stop from the dashboard
Power actions talk to Docker via the daemon, never from the browser. If Start fails but the node is Online, the panel cannot reach--listen-url.
Minecraft
A Minecraft / Vanilla egg is also seeded (itzg/minecraft-server:java21). Set memory on the server to match the node, accept the EULA via the EULA=TRUE variable, and give it a few minutes on first boot to pull the image and download the server jar.
For other games, import an egg — Nests and eggs.
Daemon on the panel host
The default panel installer already configures a Local node. If you used --no-daemon, or you need another node on this host:
cd /opt/flutter
sudo -u flutter npm run daemon:configure -- \
--panel-url http://127.0.0.1:4000 \
--token <flt_token> \
--node <nodeId>
sudo systemctl enable --now flutter-daemon
# already running:
sudo systemctl restart flutter-daemon