Installations- und Update-Jobs
Installationen, Neuinstallationen und Steam-Updates laufen als Jobs: kurzlebige Container, getrennt von dem des Spiels. Der Server zeigt installing, bis der Job endet; seine Ausgabe erscheint in der Konsole.
Installationsskript
Abschnitt betitelt „Installationsskript“install: image: registry.audifire.ch/hosting-panel/runtime-images/java:21 entrypoint: bash # Standard script: | cd /mnt/server curl -fsSL -o server.jar "https://…" onUpdate: false # true: auch nach Steam-Updates ausführen (muss mehrfach laufen dürfen)- Die Dateien des Servers liegen unter
/mnt/server, wie bei Pterodactyl-Eggs. - Das Skript läuft als Root, wie bei Pterodactyl; die Dateien gehen danach an den Besitzer des Spiels.
- Der Job bekommt die Variablen des Servers, auch die mit
jobOnly.
Templates können das Spiel vor dem Installationsskript mit SteamCMD herunterladen:
steam: appId: "223350" # darf {{VARIABLE}} verwenden, z. B. für die App eines experimentellen Branches beta: "{{BRANCH}}" # optional betaPassword: "{{BETA_PASSWORD}}" # optional, meist eine geheime Variable account: required # none (anonym, Standard) · optional · required (das Konto muss das Spiel besitzen) validateOnInstall: true # bei der Installation jede Datei prüfen; Updates prüfen nieMit account: optional oder required wählt, wer den Server anlegt, ein Steam-Konto. Steam-Guard-Abfragen erscheinen im Panel.
Workshop-Inhalte
Abschnitt betitelt „Workshop-Inhalte“Ein Template kann Inhalte aus dem Steam Workshop (Mods) mit dem Spiel herunterladen, bei jeder Installation und jedem Update:
steam: appId: "223350" account: required workshop: appId: "221100" # die App-ID des Spiels: Inhalte gehören zum Spiel, nicht zu seinem Server items: "{{WORKSHOP_MODS}}" # IDs, durch Kommas getrenntinstall: onUpdate: true # das Installationsskript bereitet die Inhalte auch nach Updates vorInhalte landen in steamapps/workshop/content/<app>/<id>; als IDs werden nur Ziffern akzeptiert. Sie für das Spiel vorzubereiten, ist Sache des Installationsskripts.
Beispiel: DayZ
Abschnitt betitelt „Beispiel: DayZ“Trage die IDs unter Workshop mods ein (die Zahl in der URL des Inhalts), dann Update now. Das Installationsskript von DayZ:
- erstellt Ordner
@<id>mit Dateinamen in Kleinbuchstaben (der Linux-Server braucht sie), aus Hardlinks, sodass sie keinen zusätzlichen Platz belegen - kopiert die Schlüssel der Mods nach
keys/
Der Start lädt sie in der angegebenen Reihenfolge, vor den hochgeladenen Other mods.