Important
Dieses Panel befindet sich in aktiver Entwicklung. Der Einsatz in produktiven Umgebungen ohne vorheriges Backup wird nicht empfohlen.
Maunting Server Manager (MSM) ist ein selbstgehostetes Web-Panel zur zentralen Steuerung von Game-Servern, Anwendungen und Linux-Workloads auf eigenen Servern oder VPS — ohne Notwendigkeit täglicher SSH-Eingaben.
MSM trennt die Benutzeroberfläche (Control Plane) von den eigentlichen Ausführungsservern (Nodes). Sämtliche Anwendungen und Game-Server laufen isoliert in Rootless-Docker-Containern.
- Game-Server: Verwaltung, Start, Stopp, Neustart und automatische Portvergabe für unterstützte Titel (z. B. Conan Exiles, DayZ, Minecraft, ARK).
- Linux-Anwendungen & Workloads: Bereitstellung generischer Serverdienste, Datenbanken oder Web-Tools über das flexible Blueprint-System.
- Multi-Node-Betrieb: Steuerung mehrerer physischer Server oder VPS über ein einziges Dashboard.
- Kein Game-Server-Hosting-Anbieter: MSM setzt eigene Linux-Server voraus (z. B. bei Hetzner, OVH, netcup oder eigener Hardware).
- Kein Windows-Tool: Die Control Plane und die Nodes setzen ein Linux-Betriebssystem voraus.
- Kein Ersatz für Root-Rechte bei der Erstinstallation: Der Bootstrapper benötigt einmalig Root-Rechte zur Systemeinrichtung. Im regulären Betrieb laufen Panel und Container unprivilegiert.
Eine zentrale Control Plane steuert beliebig viele Nodes. Neue Nodes werden über ein mTLS-Verfahren mit HMAC-Challenge und expliziter Bestätigung durch den Administrator eingebunden.
Auf jedem Node läuft die Guardian Engine als lokaler Hintergrunddienst. Sie überwacht Container-Zustände sowie HTTP-, TCP- und Regex-Probes. Bei Ausfällen führt der Node selbstständig definierte Recovery-Aktionen (z. B. Container-Neustart oder Quarantäne) durch — auch wenn die zentrale Control Plane offline oder nicht erreichbar ist. Incidents und Statusänderungen werden lokal protokolliert und synchronisiert, sobald die Verbindung wieder steht.
Anwendungen werden nicht über starre Skripte, sondern über deklarative Blueprint-Dateien (YAML/JSON) definiert. Ein Blueprint legt Umgebungsvariablen, Ports, Docker-Images, Lautstärken-Mounts, Konfigurations-Templates und Guardian-Healthchecks fest. MSM ist dadurch nicht auf Game-Server beschränkt.
Integrierte Mod- und Workshop-Verwaltung für unterstützte Spiele. Der Agent lädt Workshop-Objekte über SteamCMD direkt auf den Node herunter, aktualisiert diese und bindet die Pfade in die Container-Struktur ein.
Sämtliche Container laufen über den Rootless-Docker-Daemon des unprivilegierten msm-Benutzers (unix:///run/user/<uid>/docker.sock). Der Panel-Benutzer besitzt keine Mitgliedschaft in der globalen docker-Gruppe. Game-Server-Ports liegen oberhalb von 1024, wodurch keine Root-Rechte oder setcap-Rechteerweiterungen erforderlich sind.
Verschlüsselung von Server- und Datenbank-Backups über den DIS Cryptographic Shield. Daten werden lokal mit AES-256-GCM und Argon2id verschlüsselt, bevor ein Streaming-Upload zu S3-kompatiblem Object Storage erfolgt. Schlüssel und S3-Zugangsdaten liegen niemals im Klartext vor.
Integrierter CLI-Assistent zum Verschieben von Control Plane, externem Frontend oder einzelnen Server-Instanzen zwischen Nodes inklusive atomarem Cutover und Rollback-Schutz.
Die folgende Tabelle vergleicht verifizierte technische Eigenschaften von MSM mit Pelican Panel (dem modernen Nachfolger von Pterodactyl) und Klassischen Panels (wie Pterodactyl v1 oder AMP).
| Eigenschaft / Funktion | Maunting Server Manager (MSM) | Pelican Panel | Klassische Panels (z. B. Pterodactyl v1, AMP) |
|---|---|---|---|
| Architektur | Central Control Plane + Multi-Node (Multinode System) | Panel + Node-Architektur (Wings) | Monolithisch oder Panel + Daemon (Wings/AMP Instance) |
| Container-Sicherheit | Standardmäßig Rootless Docker pro Node-User (unix:///run/user/...) |
Standardmäßig privilegierter Root-Docker-Daemon | Standardmäßig privilegierter Root-Docker-Daemon |
| Autonomes Self-Healing | Ja (Guardian Engine): Lokale Probes und Recovery auf dem Agenten, voll funktionsfähig auch bei Ausfall der Control Plane | Nein: Statusüberwachung hängt an Panel-Verbindung und Daemon-Heartbeats | Nein: Daemon führt Befehle der zentralen Steuerung aus |
| Anwendungs-Deklaration | Blueprints (YAML/JSON): Flexible Schemas für Game-Server, Web-Apps, Datenbanken & Custom Guardian Probes | Egg-System: JSON-Templates für Pterodactyl/Pelican-Container | Egg-System / Feste Module: Spezifische Skripte oder fest verdrahtete Anwendungsmodule |
| Steam Workshop Manager | Nativ im Agenten: Automatische Downloads, Updates und Struktur-Mapping via SteamCMD | Teilweise: Abhängig von Community-Eggs oder externen Zusatzskripten | Teilweise: Über Community-Addons oder manuelle Skripte |
| Backup-Verschlüsselung | Zero-Knowledge (DIS): Clientseitige AES-256-GCM + Argon2id Verschlüsselung vor S3-Streaming | Standard S3: Unverschlüsselte Uploads oder providerseitige S3-Verschlüsselung | Standard S3 / Lokal: Unverschlüsseltes Tar/Zip auf S3 oder lokaler Speicher |
| Komponenten-Migration | Ja: Interaktiver Assistent (migrate-panel-components.sh) für Cutover von Frontend, Servern & Control Plane |
Manuell: CLI-Befehle, manuelle Dateiverlagerung und Datenbankanpassungen | Manuell: SSH-Kopiervorgänge, Dumps und manuelle Pfadkorrekturen |
| Installation & HTTPS | Ein-Befehl-Bootstrap mit Caddy Auto-HTTPS (Let's Encrypt) & PostgreSQL | CLI-Installer oder Docker-Compose-Setup | Manuelle Webserver- (Nginx/Apache) und Datenbank-Einrichtung oder Skripte |
- Root-Zugang: SSH-Zugriff mit Root-Rechten für die Erstinstallation.
- Domain: FQDN (z. B.
panel.example.com) mit A/AAAA-Record auf die Server-IP für automatische HTTPS-Zertifikate. - Hardware: Mindestens 2 CPU-Kerne, 2 GB RAM für die Control Plane. Ressourcen für Game-Server kommen hinzu.
MSM erfordert ein Linux-Betriebssystem mit Systemd und Docker-Unterstützung.
| Betriebssystem / Distribution | Status | Anmerkung |
|---|---|---|
| Ubuntu 24.04.4 LTS | 🟢 Offiziell unterstützt | Haupt-Entwicklungs- und primäres Testsystem |
| Ubuntu 22.04 LTS | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| Debian 12 (Bookworm) | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| Debian 11 (Bullseye) | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| AlmaLinux 9 | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| Rocky Linux 9 | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| Fedora Server (40+) | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| Arch Linux | 🟡 Unsicher | Bisher ungetestet, noch keine Community-Rückmeldung vorliegend |
| Alpine Linux | 🔴 Funktioniert nicht | Inkompatibel (kein Standard-Systemd, glibc-Abweichungen) |
| Windows / Windows Server | 🔴 Funktioniert nicht | Inkompatibel (setzt nativen Linux-Kernel & Systemd voraus) |
Status-Kategorien:
- 🟢 Offiziell unterstützt: Auf diesem Betriebssystem (Ubuntu 24.04.4 LTS) wird MSM entwickelt, aktiv gepflegt und getestet.
- 🟡 Unsicher: Noch nicht vom Entwickler oder der Community getestet (Status offen, Rückmeldungen willkommen).
- 🔴 Funktioniert nicht: Aus architektonischen Gründen inkompatibel oder nicht unterstützt.
Verbinde dich per SSH auf deinen Server:
ssh root@DEINE-SERVER-IPFühre den Installationsbefehl aus:
curl -fsSL https://raw.githubusercontent.com/einmalmaik/maunting-server-manager/main/scripts/bootstrap.sh | sudo bash -s -- --domain panel.example.comErsetze panel.example.com durch deine eigene Domain.
Der Installer richtet automatisch folgende Komponenten ein:
- PostgreSQL-Datenbank und Redis-Cache
- Rootless Docker für den
msm-Benutzer - DIS-Cryptographic-Sidecar
- Lokaler Node-Agent und Guardian Engine
- Caddy Webserver mit automatischem HTTPS-Zertifikat
- Systemd-Dienste und Aktualisierungstimer
- Rufe die angezeigte Panel-URL im Browser auf.
- Schließe den Ersteinrichtungs-Assistenten ab.
- Erstelle das Administrator-Konto (Owner).
- Erstelle den ersten Server oder binde weitere Nodes ein.
┌─────────────────────────────────────────┐
│ Browser (HTTPS) │
│ → panel.example.com │
└────────────┬────────────────────────────┘
│
┌────────────▼────────────────────────────┐
│ Caddy Reverse-Proxy (TLS Auto) │
│ → Port 80 / 443 │
└────────────┬────────────────────────────┘
│
┌────────────▼────────────────────────────┐
│ FastAPI Backend (Python) │
│ → Port 8000 (Localhost) │
│ → PostgreSQL (Loopback) │
│ → DIS Sidecar (@msdis/shield) │
└────────────┬────────────────────────────┘
│ (mTLS / HMAC Enrollment)
┌────────────▼────────────────────────────┐
│ Node Agent + Guardian Engine │
│ → Rootless Docker Socket │
│ → Autonomes Monitoring & Recovery │
│ → Pro Server isolierter Container-User │
└─────────────────────────────────────────┘
- HTTPS: Automatische Zertifikate von Let's Encrypt via Caddy Proxy.
- Netzwerk-Isolation: UFW-Firewall-Regeln beschränken Zugriffe auf SSH (22), Web (80/443) und definierte Game-Ports.
- Fail2ban: Schutz vor Brute-Force-Angriffen auf SSH und Panel-Endpunkte.
- Authentifizierung: JWT mit kurzlebigen Access-Tokens (15 Min.) und Refresh-Tokens (30 Tage).
- Zwei-Faktor-Authentifizierung (2FA): TOTP mit Wiederherstellungscodes.
- Container-Isolation: Rootless Docker ohne globale Root-Rechte.
- Ressourcenbegrenzung: CPU-, Arbeitsspeicher- und Disk-Limits pro Container konfigurierbar.
sudo bash /opt/msm/update.shDer Updater erstellt vor Schema-Änderungen einen PostgreSQL-Dump, versetzt das Panel kurzzeitig in den Wartungsmodus und prüft die Erreichbarkeit der Dienste. Laufende Game-Server auf den Nodes werden während des Updates nicht unterbrochen.
In der Konfigurationsdatei /opt/msm/backend/.env aktivieren:
MSM_AUTO_UPDATE=trueAnschließend den Systemd-Timer starten:
sudo systemctl start msm-update.timer| Befehl | Zweck |
|---|---|
sudo systemctl status msm-panel |
Status des Panel-Dienstes anzeigen |
sudo systemctl restart msm-panel |
Panel neu starten |
sudo journalctl -u msm-panel -f |
Live-Logs des Backend-Dienstes verfolgen |
sudo bash /opt/msm/update.sh --check-only |
Verfügbare Updates prüfen |
sudo /opt/msm/helper-scripts/migrate-panel-components.sh |
Komponenten-Migrationsassistent starten |
| Port / Range | Protokoll | Zweck |
|---|---|---|
| 80 | TCP | HTTP (Weiterleitung auf HTTPS) |
| 443 | TCP | HTTPS (Panel-Webinterface) |
| 27015-27999 | UDP/TCP | Game-Server-Ports (automatische Vergabe ab Port 1024) |
- Dokumentation: Ausführliche Anleitungen stehen in
docs/self-hosting.mdsowie direkt im Panel unter Dokumentation. - Issue Tracker: GitHub Issues
Dieses Projekt steht unter der MIT-Lizenz.