74 lines
2.7 KiB
Markdown
74 lines
2.7 KiB
Markdown
# 🌲 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
|
|
|
|
```bash
|
|
# 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:
|
|
```bash
|
|
sudo bash scripts/setup-host.sh
|
|
python3 core/manager.py compose
|
|
docker compose up -d
|
|
```
|
|
|