Was ist der Serverhost?
Der Serverhost ist ein verteilter Ausführungsagent, der auf jeder Maschine in deiner SimpleCloud-Infrastruktur läuft. Er empfängt Befehle vom Controller und verwaltet den tatsächlichen Lebenszyklus von Minecraft-Servern - von der Vorbereitung über die Ausführung bis zum Cleanup.Hauptaufgaben
Server-Lebenszyklus
Der Serverhost verwaltet den kompletten Server-Lebenszyklus:- Vorbereitung - Workflows ausführen, Templates kopieren, Plugins installieren
- Konfiguration - Configurators anwenden für Ports, Secrets, etc.
- Ausführung - Server-Prozess starten (Screen/Tmux oder Docker)
- Monitoring - Server-Health verfolgen und Logs streamen
- Cleanup - Prozess stoppen und temporäre Dateien entfernen
Workflow-Ausführung
Workflows definieren den Server-Vorbereitungsprozess:- Template-Dateien ins Server-Verzeichnis kopieren
- Plugins von Registries herunterladen und installieren
- Konfiguration basierend auf Server-Software anwenden
- Benutzerdefinierte Setup-Schritte ausführen
Plugin-Verwaltung
Automatische Plugin-Installation aus mehreren Quellen:| Quelle | Beschreibung |
|---|---|
| Modrinth | Moderne Plugin/Mod-Registry |
| Hangar | PaperMCs Plugin-Repository |
| Spigot | SpigotMC-Ressourcenseiten |
| URL | Direkter Download von beliebiger HTTP(S)-URL |
Architektur
Ausführungsmodi
Screen/Tmux (Lokal)
Der Standard-Ausführungsmodus mit Terminal-Multiplexern:- Screen - Bevorzugt, weit verbreitet auf Linux
- Tmux - Alternative wenn Screen nicht verfügbar
Docker
Container-basierte Ausführung für Isolation:- Jeder Server läuft in eigenem Container
- Ressourcenlimits durch Docker erzwungen
- Bessere Isolation zwischen Servern
- Docker muss installiert sein
Verzeichnisstruktur
secrets
network-id.key
network-secret.key
serverhost-id.key
workflows
internal
setup.yml
cleanup.yml
options
configurators
modrinth-platform-mappings.yml
templates
every
every_proxy
every_server
every_paper
every_velocity
_tagged
cache
running
logs
Template-Hierarchie
Templates werden der Reihe nach angewendet, wobei spätere Templates frühere überschreiben:| Reihenfolge | Verzeichnis | Beschreibung |
|---|---|---|
| 1 | every/ | Basisdateien für alle Server |
| 2 | every_{type}/ | Typspezifisch (z.B. every_proxy/) |
| 3 | every_{software}/ | Softwarespezifisch (z.B. every_paper/) |
| 4 | _tagged/{tag}/ | Für jeden Tag der Gruppe |
| 5 | {server-name}/ | Serverspezifische Templates |
| 6 | cache/{group}/ | Gecachte Dateien von vorherigen Starts |
Kommunikation
NATS Messaging
Der Serverhost kommuniziert mit dem Controller via NATS: Eingehend (vom Controller):{networkId}.serverhost.{id}.start- Server-Start-Anfrage
{networkId}.server.{id}.status- Server-Status-Updates{networkId}.server.{id}.logs- Log-Streaming{networkId}.internal.serverhost.{id}.keep-alive- Health Checks
Zustandssynchronisation
Jede Minute führt der Serverhost durch:- Aktive Server vom Controller abrufen
- Mit lokal laufenden Servern vergleichen
- Verwaiste Server stoppen, die nicht im Controller-Zustand sind
Server-Vorbereitungsablauf
Wenn eine Start-Anfrage eintrifft:Konfiguration
Serverhost-Setup verwendet die aktuellen CLI-Setup-Optionen:| Parameter | Beschreibung | Standard |
|---|---|---|
--network | Network-ID oder Slug | Interaktive Auswahl |
--install-dir | Serverhost-Installationsverzeichnis | Interaktive Abfrage |
--host-name | Anzeigename des Serverhosts | Interaktive Abfrage |
--max-memory | Maximaler Serverhost-Speicher, z. B. 80% oder 32gb | Aus Systemspeicher erkannt |
--start / --no-start | SimpleCloud nach dem Setup starten oder Start überspringen | Interaktive Abfrage |
--auto-install-deps / --no-auto-install-deps | Erforderliche Abhängigkeiten automatisch installieren oder Installation überspringen | Interaktive Abfrage |
--install | Setup-Installables installieren, z. B. --install java:21 | Keine |
-y, --yes | Wo möglich nicht-interaktive Defaults verwenden | false |
Monitoring
Via CLI
Keep-Alive
Der Serverhost sendet periodische Keep-Alive-Nachrichten:- Meldet aktuelle Version
- Meldet installierte Java-Runtime-Versionen (als
installed_java_versionsin den Serverhost-API-Antworten verfügbar) - Empfängt Update-Benachrichtigungen
- Hält Verbindung zum Controller aufrecht
Serverhosts starten Server automatisch neu, wenn der Serverhost selbst neu startet,
basierend auf der Synchronisation mit dem Controller-Zustand.
Verwandte Themen
- Configurators - Server-Konfigurationssystem
- Workflows - Server-Vorbereitungs-Workflows