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. 1

    Admin → Servers → New server

    Pick the Online node and one allocation.
  2. 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. 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:

bash
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