A lightweight solution for auto-scaling Minecraft servers on fly.io.
- Works with any version of Minecraft that supports RCON.
- Opens the proxy via tailscale for maximum security.
- Auto shutdown when no active connections.
- Dissuade single player activity.
- Discord webhook integration.
- Low RAM and CPU usage.
When eyespy is started, the tailscale server will listen on ports 25565 and 25575
respectively. When a connection is started on either ports it will proxy them to
the real server using a flycast address. Fly Proxy will then wake up the server
and create a connection to it.
When there is only a single player on the server for more than 5 minutes,
keepInventory will be disabled. This dissuades single player activitiy, but
still allow gameplay if it is neccessary. keepInventory will be enabled again
instantly if there are more than 2 players.
If there are no active connections for more than 5 minutes, eyespy will send a
/stop command via RCON to the server, saving server resources.
nix build .#packages.x86_64-linux.containerdocker load < result
and docker image tag eyespy:latest registry.fly.io/eyespy:latest
and fly auth docker
and docker push registry.fly.io/eyespy
and fly deploy| Variable | Description |
|---|---|
| APP_NAME | Name of the app the Minecraft server is running on |
| RCON_PASSWORD | Password for RCON |
| DC_WEBHOOK | URL of the Discord webhook |
| DC_MESSAGEID | Message ID the webhook will edit |
| TS_AUTHKEY | Auth key for tailscale |
| IDLE_TIMEOUT_MINUTES | Time in minutes until server is stopped for inactivity |