Zum Inhalt springen

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.

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 nie

Mit account: optional oder required wählt, wer den Server anlegt, ein Steam-Konto. Steam-Guard-Abfragen erscheinen im Panel.

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 getrennt
install:
onUpdate: true # das Installationsskript bereitet die Inhalte auch nach Updates vor

Inhalte landen in steamapps/workshop/content/<app>/<id>; als IDs werden nur Ziffern akzeptiert. Sie für das Spiel vorzubereiten, ist Sache des Installationsskripts.

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.