Files

🌲 SnarfNet Game Seed Management Plane

Declarative, GitOps-ready game server management plane for the SnarfNet dedicated gaming machine (bc:24:11:67:16:cd @ 140.44.44.80), modeled on the declarative seed pattern (arasoi/yggdrasil-releases and arasoi/yggdrasil-seeds).


🎮 Declared Game Servers

Game Steam AppID Container Image Ports RAM (Res / Limit) World Save Path
Enshrouded 2278520 skarab42/enshrouded-server:latest 15636/udp, 15637/udp 8GB / 16GB /opt/game-servers/enshrouded/savegame
Farming Simulator 25 2300320 thijsvanloef/farming-simulator-25:latest 10823/tcp, 10823/udp 6GB / 12GB /opt/game-servers/fs25/savegame
Stationeers 600760 sprits/stationeers-server:latest 27016/udp, 27015/udp 4GB / 8GB /opt/game-servers/stationeers/saves
Valheim (Crossplay) 896660 lloesche/valheim-server:latest 2456/udp, 2457/udp 4GB / 8GB /opt/game-servers/valheim/worlds
V Rising 1829350 trueosiris/vrising:latest 9876/udp, 9877/udp 4GB / 8GB /opt/game-servers/vrising/Saves

🛠️ Management CLI (core/manager.py)

The manager CLI reconciles declared seeds against the host runtime, triggers automated world backups to Synology NAS, and issues Wake-on-LAN magic packets.

Commands

# 1. Preview declared server configuration
python core/manager.py plan

# 2. Render docker-compose.yml for live deployment
python core/manager.py compose

# 3. Trigger manual atomic snapshot & sync to Synology NAS
python core/manager.py backup

# 4. Wake up the gaming PC via Wake-on-LAN (bc:24:11:67:16:cd)
python core/manager.py wol

💾 Backup & Disaster Recovery Architecture

All game world save files are preserved in atomic tarballs and synchronized to the Synology NAS:

  • NAS Backup NFS Target: 14.10.10.71:/volume1/docker/game-backups
  • Host Mount: /mnt/nas/game-backups
  • Automated Timer: Daily at 04:00 AM via gameseed-backup.timer
  • Retention: 14 rolling snapshots per game

🌐 UDM Pro Port Forwarding Matrix

To permit external friends and players to join the servers, ensure the following port forwards are mapped from WAN to 140.44.44.80 on the UDM Pro:

Enshrouded:           UDP 15636-15637 -> 140.44.44.80
Farming Simulator 25: TCP/UDP 10823   -> 140.44.44.80
Stationeers:          UDP 27015-27016 -> 140.44.44.80
Valheim:              UDP 2456-2457   -> 140.44.44.80
V Rising:             UDP 9876-9877   -> 140.44.44.80

🚀 Bootstrap New Host

To provision the physical gaming PC:

sudo bash scripts/setup-host.sh
python3 core/manager.py compose
docker compose up -d