5.9 KiB
5.9 KiB
Homelab Infrastructure
Netzwerktopologie
Internet
|
v
+------------------+
| Router/Modem | 62.155.227.77 (dynamisch, Telekom)
| 192.168.2.1 |
+--------+---------+
|
v
+-------------------------------------------------------------+
| LAN 192.168.2.0/24 |
+-------------------------------------------------------------+
| |
| +--------------+ +--------------+ +--------------+ |
| | Raspberry | | Proxmox | | Windows | |
| | Pi (Himbeer)| | Server | | PC | |
| | .10 | | .20 | | | |
| +------+-------+ +------+-------+ +--------------+ |
| | | |
| | +-------+-------+-------+ |
| | | | | | |
| | v v v v |
| | +-----+ +-----+ +-----+ +-----+ |
| | | .30 | | .50 | | .51 | | .52 | |
| | | LXC | | LXC | | VM | | VM | |
| | |Monit| |Facto| | MC | |VRis | |
| | +-----+ +-----+ +-----+ +-----+ |
| | |
+---------+---------------------------------------------------+
|
v
+-----------+
| Docker |
| Services |
+-----------+
Server-Uebersicht
Raspberry Pi (alex@Himbeer) - 192.168.2.10
Rolle: Reverse Proxy & DNS Management
| Service | Container | Funktion |
|---|---|---|
| Nginx Proxy Manager | nginx-proxy-manager | Reverse Proxy + SSL (Let's Encrypt) |
| Cloudflare DDNS | cloudflare-ddns | Dynamische DNS-Updates |
| Nextcloud | nextcloud | Cloud Storage |
| MariaDB | nextcloud-db | Nextcloud Datenbank |
NPM Admin-UI: http://192.168.2.10:81
Cloudflare DDNS Domains:
- home.dimension47.de
- factorio.dimension47.de
- minecraft.dimension47.de
- monitor.dimension47.de
- grafana.dimension47.de
Proxmox Server - 192.168.2.20
Rolle: Virtualisierungshost
| VMID | Name | Typ | IP | Cores | RAM | Funktion |
|---|---|---|---|---|---|---|
| 100 | atm10 | VM (QEMU) | .51 | 4 | 12 GB | Minecraft ATM 10 |
| 101 | factorio | LXC | .50 | 2 | 4 GB | Factorio Server |
| 102 | gameserver-monitor | LXC | .30 | 2 | 4 GB | Monitoring Webapp |
| 103 | vrising | VM (QEMU) | .52 | 4 | 12 GB | V Rising Server |
Gameserver Monitor (root@192.168.2.30) - LXC 102
Rolle: Gameserver Ueberwachung & Administration
URL: https://monitor.dimension47.de
Default Login: admin / admin (Passwort aendern nach erstem Login!)
Tech Stack:
- OS: Debian 13 (Trixie)
- Frontend: React + Vite + TailwindCSS 4 + recharts
- Backend: Node.js + Express
- Auth: JWT + bcrypt + SQLite
- Monitoring: Prometheus + Grafana
- Reverse Proxy: nginx
Features:
- Oeffentliches Dashboard (ohne Login sichtbar)
- Live CPU/RAM Metriken (via SSH)
- Gameserver-Uptime (Prozess-Uptime statt Host-Uptime)
- Metrics History via Prometheus (15m/1h/6h/24h)
- Player Count + Spielerliste via RCON
- Game-Logos neben Servernamen
- Interaktives Navbar-Logo (Hover-Effekt, Link zu zeasy.software)
- Start/Stop/Restart Server (Moderator+)
- Console Logs (live, Moderator+)
- RCON Console (Moderator+)
- Minecraft Whitelist-Verwaltung mit serverseitigem Caching
- Rollensystem: user, moderator, superadmin
Todos:
- Auto-Shutdown: Gameserver automatisch abschalten wenn zu lange kein Spieler online war
Prometheus Targets:
- localhost:9100 (monitor)
- 192.168.2.50:9100 (factorio)
- 192.168.2.51:9100 (minecraft)
- 192.168.2.52:9100 (vrising)
Grafana: https://grafana.dimension47.de
Factorio Server (root@192.168.2.50) - LXC 101
| Eigenschaft | Wert |
|---|---|
| Runtime | Docker |
| Container | factorio |
| Game Port | 34197/udp |
| RCON Port | 27015 |
| RCON Password | jieTig6IkixaKuu |
Minecraft Server (root@192.168.2.51) - VM 100
| Eigenschaft | Wert |
|---|---|
| Modpack | All The Mods 10 (ATM10) |
| Runtime | screen |
| Screen Name | minecraft |
| Game Port | 25565 |
| RCON Port | 25575 |
| RCON Password | gsm-mc-2026 |
| Pfad | /opt/minecraft |
V Rising Server (root@192.168.2.52) - VM 103
| Eigenschaft | Wert |
|---|---|
| Runtime | systemd |
| Service Name | vrising |
| Game Port | 9876/udp, 9877/udp |
| Pfad | /home/steam/vrising |
Project Zomboid Server (pzuser@10.0.30.66) - Extern via WireGuard
| Eigenschaft | Wert |
|---|---|
| Runtime | screen |
| Screen Name | zomboid |
| RCON Port | 27015 |
| Pfad | /opt/pzserver |
| Log | /home/pzuser/Zomboid/server-console.txt |
| Netzwerk | Erreichbar via WireGuard-Tunnel "melih" |
WireGuard VPN
Der Gameserver-Monitor (.30) nutzt einen WireGuard-Tunnel um externe Server (z.B. Zomboid auf 10.0.30.66) zu erreichen.
Interface: melih Lokale IP: 10.0.200.201/32
WireGuard Watchdog
Ein Cronjob prueft alle 2 Minuten ob der Tunnel aktiv ist und startet ihn bei Bedarf neu.
| Komponente | Wert |
|---|---|
| Script | /usr/local/bin/wg-watchdog.sh |
| Cronjob | */2 * * * * |
| Timeout | 5 Minuten ohne Handshake |
| Log | /var/log/wg-watchdog.log |
SSH-Zugang
Der Gameserver-Monitor (.30) hat SSH-Key-Zugang zu:
- 192.168.2.20 (Proxmox)
- 192.168.2.50 (Factorio)
- 192.168.2.51 (Minecraft)
- 192.168.2.52 (V Rising)
Key: /root/.ssh/id_ed25519
Wartung
Backend (PM2)
# Status pruefen
ssh root@192.168.2.30 "pm2 status"
# Logs anschauen
ssh root@192.168.2.30 "pm2 logs gameserver-backend --lines 50"
# Neu starten
ssh root@192.168.2.30 "pm2 restart gameserver-backend"
Frontend neu bauen
ssh root@192.168.2.30 "cd /opt/gameserver-monitor/frontend && npm run build && nginx -s reload"