# 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 **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 | --- ## 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 neu starten ``` ssh root@192.168.2.30 "pkill -f 'node server.js'; cd /opt/gameserver-monitor/backend && node server.js &" ``` ### Frontend neu bauen ``` ssh root@192.168.2.30 "cd /opt/gameserver-monitor/frontend && npm run build && nginx -s reload" ```