Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eyespy

A lightweight solution for auto-scaling Minecraft servers on fly.io.

Overview

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

How it functions

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.

How to deploy

nix build .#packages.x86_64-linux.container
docker 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

Environment variables

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

About

Proxy for Minecraft server running on fly.io accessed via Tailscale.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages