Documentation Index
Fetch the complete documentation index at: https://new-docs.simplecloud.app/llms.txt
Use this file to discover all available pages before exploring further.
Was sind Workflows?
Workflows definieren die Abfolge von Aktionen, die während Server-Lifecycle-Events ausgeführt werden. Sie handhaben alles vom Kopieren von Template-Dateien über die Installation von Plugins bis zur Anwendung von Konfigurationen.
Wie Workflows funktionieren
Während der Server-Vorbereitung:
- Serverhost empfängt eine Start-Anfrage vom Controller
- Lädt den Setup-Workflow aus
workflows/internal/setup.yml
- Führt jeden Schritt der Reihe nach mit dem Server-Context aus
- Meldet Status zurück an den Controller
Während des Cleanups:
- Server-Stop-Signal empfangen
- Lädt den Cleanup-Workflow aus
workflows/internal/cleanup.yml
- Führt Cleanup-Schritte aus (Cache-Push, Verzeichnis-Löschung)
Workflow-Struktur
Workflows sind YAML-Dateien im workflows/ Verzeichnis:
# workflows/internal/setup.yml
steps:
- action: copy
from: "{{templates}}/cache/{{group}}"
to: "{{server-dir}}"
- action: copy
from: "{{templates}}/every"
to: "{{server-dir}}"
- action: plugins-load
dir: "{{server-dir}}/plugins"
- action: configurator
configurator: "{{configurator}}"
dir: "{{server-dir}}"
Eingebaute Workflows
Setup Workflow
Der Standard-Setup-Workflow (workflows/internal/setup.yml) führt aus:
- Cache Pull - Gecachte Dateien von vorherigen Starts kopieren
- Template Copy - Template-Hierarchie anwenden (every, type, software, tagged)
- Plugin Installation - Plugins herunterladen und installieren
- Konfiguration - Configurators für Server-Software anwenden
Cleanup Workflow
Der Cleanup-Workflow (workflows/internal/cleanup.yml) führt aus:
- Cache Push - Wiederverwendbare Dateien für schnellere zukünftige Starts speichern
- Verzeichnis-Löschung - Server-Verzeichnis entfernen
Workflow-Aktionen
copy
Kopiert Dateien oder Verzeichnisse von Quelle zu Ziel.
| Feld | Typ | Beschreibung |
|---|
from | Pfad | Quell-Datei oder -Verzeichnis |
to | Pfad | Ziel-Datei oder -Verzeichnis |
replace | boolean | Existierende Dateien überschreiben (Standard: true) |
create-dirs | boolean | Elternverzeichnisse erstellen falls fehlend (Standard: true) |
- action: copy
from: "{{templates}}/every"
to: "{{server-dir}}"
replace: true
delete
Löscht eine Datei oder ein Verzeichnis.
| Feld | Typ | Beschreibung |
|---|
path | Pfad | Zu löschende Datei oder Verzeichnis |
force | boolean | Löschen erzwingen (Standard: true) |
- action: delete
path: "{{server-dir}}"
force: true
for-each
Iteriert über eine Liste und führt verschachtelte Schritte für jedes Element aus.
| Feld | Typ | Beschreibung |
|---|
items | Liste | Elemente zum Iterieren |
as | string | Variablenname für aktuelles Element |
steps | Liste | Schritte für jedes Element |
- action: for-each
items: "{{tags}}"
as: "tag"
steps:
- action: copy
from: "{{templates}}/_tagged/{{tag}}"
to: "{{server-dir}}"
plugins-load
Installiert Plugins aus konfigurierten Quellen (Modrinth, Hangar, Spigot, URL).
| Feld | Typ | Beschreibung |
|---|
dir | Pfad | Verzeichnis für Plugin-Installation |
- action: plugins-load
dir: "{{server-dir}}/plugins"
Plugins werden auf Gruppenebene definiert und automatisch heruntergeladen basierend auf:
- Server-Software (Paper, Velocity, etc.)
- Minecraft-Version
- Plattform-Kompatibilität
configurator
Wendet einen Configurator an um Server-Dateien zu konfigurieren.
| Feld | Typ | Beschreibung |
|---|
configurator | string | Configurator-Name (aus options/configurators/) |
dir | Pfad | Zu konfigurierendes Server-Verzeichnis |
- action: configurator
configurator: "paper_velocity"
dir: "{{server-dir}}"
Siehe Configurators für mehr Details.
Platzhalter
Workflows unterstützen dynamische Platzhalter, die zur Laufzeit ersetzt werden:
Server-Context
| Platzhalter | Beschreibung |
|---|
{{server-dir}} | Arbeitsverzeichnis des Servers |
{{server-name}} | Server-Name (z.B. lobby-1) |
{{group}} | Gruppenname |
{{port}} | Zugewiesener Port |
{{max-players}} | Maximale Spieleranzahl |
{{memory}} | Zugewiesener Speicher (MB) |
Pfad-Context
| Platzhalter | Beschreibung |
|---|
{{templates}} | Templates-Basisverzeichnis |
{{running}} | Verzeichnis laufender Server |
{{cache}} | Cache-Verzeichnis |
Blueprint-Context
| Platzhalter | Beschreibung |
|---|
{{configurator}} | Configurator-Name aus Blueprint |
{{software}} | Server-Software (paper, velocity, etc.) |
{{minecraft-version}} | Minecraft-Version |
{{type}} | Server-Typ (proxy, server, lobby) |
Benutzerdefinierte Properties
Zugriff auf benutzerdefinierte Properties vom Server:
- action: copy
from: "{{templates}}/{{$.custom-template}}"
to: "{{server-dir}}"
Das $. Präfix greift auf die Properties-Map des Servers zu.
Standard Setup-Ablauf
Der eingebaute Setup-Workflow folgt dieser Reihenfolge:
steps:
# 1. Aus Cache laden (schnellere Neustarts)
- action: copy
from: "{{templates}}/cache/{{group}}"
to: "{{server-dir}}"
# 2. Basis-Templates anwenden
- action: copy
from: "{{templates}}/every"
to: "{{server-dir}}"
# 3. Typspezifische Templates anwenden
- action: copy
from: "{{templates}}/every_{{type}}"
to: "{{server-dir}}"
# 4. Softwarespezifische Templates anwenden
- action: copy
from: "{{templates}}/every_{{software}}"
to: "{{server-dir}}"
# 5. Tagged Templates anwenden
- action: for-each
items: "{{tags}}"
as: "tag"
steps:
- action: copy
from: "{{templates}}/_tagged/{{tag}}"
to: "{{server-dir}}"
# 6. Serverspezifisches Template anwenden
- action: copy
from: "{{templates}}/{{server-name}}"
to: "{{server-dir}}"
# 7. Plugins installieren
- action: plugins-load
dir: "{{server-dir}}/plugins"
# 8. Configurator anwenden
- action: configurator
configurator: "{{configurator}}"
dir: "{{server-dir}}"
Workflows anpassen
Standard-Workflow überschreiben
Erstelle deinen eigenen Setup-Workflow:
# workflows/internal/setup.yml
steps:
- action: copy
from: "{{templates}}/my-base"
to: "{{server-dir}}"
- action: plugins-load
dir: "{{server-dir}}/plugins"
- action: configurator
configurator: "{{configurator}}"
dir: "{{server-dir}}"
Benutzerdefinierte Schritte hinzufügen
Erweitere den Workflow mit zusätzlichen Aktionen:
steps:
# ... Standard-Setup-Schritte ...
# Benutzerdefiniert: Welt von Shared Storage kopieren
- action: copy
from: "/shared/worlds/{{group}}"
to: "{{server-dir}}/world"
# Benutzerdefiniert: Zusätzliche Ressourcen laden
- action: copy
from: "{{templates}}/shared-configs"
to: "{{server-dir}}/plugins"
Fehlerbehebung
Workflow wird nicht ausgeführt
- Prüfe ob Workflow-Datei unter
workflows/internal/setup.yml existiert
- Verifiziere YAML-Syntax
- Prüfe Serverhost-Logs auf Fehler
Platzhalter wird nicht ersetzt
- Stelle sicher, dass Platzhalter-Syntax korrekt ist:
{{name}}
- Verifiziere, dass Property im Server-Context existiert
- Für benutzerdefinierte Properties, nutze
{{$.property-name}}
Copy-Aktion schlägt fehl
- Verifiziere, dass Quellpfad existiert
- Prüfe Dateiberechtigungen
- Stelle sicher, dass
create-dirs aktiviert ist wenn Elternverzeichnisse fehlen
Plugin-Installation schlägt fehl
- Prüfe Netzwerkverbindung zu Plugin-Quellen
- Verifiziere, dass Plugin für angegebene Minecraft-Version existiert
- Prüfe
options/modrinth-platform-mappings.yml für Software-Mappings