pterodactyl

Erste Schritte mit Pterodactyl zur Verwaltung von Spieleservern

Stefan
8 Min Read
pterodactyl

Pterodactyl ist eine Serververwaltungsplattform, die Docker-Container zur Verwaltung von Anwendungsinstanzen verwendet.

Pterodactyl ist eine Serververwaltungsplattform, die Docker-Container zur Verwaltung von Anwendungsinstanzen verwendet. Sie ist für den Betrieb, die Konfiguration und die Verwaltung von Headless-Spieleservern wie Minecraft-Servern konzipiert, kann aber auch für andere Anwendungen verwendet werden.

Pterodactyl & The Daemon installieren

Pterodactyl besteht aus zwei Hauptkomponenten: dem Control Panel, das die Weboberfläche hostet und mit den Daemons kommuniziert, und den Daemons selbst, die auf den Hostservern laufen, die als Arbeitsmaschinen fungieren, die auf Ihrer Hardware laufen. Das Control Panel kann auf einem einfachen VPS installiert werden, oder Sie können es direkt neben dem Daemon auf einem der Hostserver installieren.

Der Daemon verwaltet die Docker-Container, in denen die Spielserver laufen. Docker ist ein Containerisierungstool, das im Grunde alle Abhängigkeiten und den Code, den Ihre Anwendung zum Ausführen benötigt, in einer Datei zusammenfasst, einem sogenannten Docker-Image, das kopiert werden kann, um neue Server zu starten. Auf diese Weise können Sie definieren, wie ein Minecraft-Server gestartet wird, und dann 20 Kopien dieses Master-Minecraft-Server-Images mit unterschiedlicher Konfiguration bereitstellen, und das alles, ohne Java 20 Mal installieren zu müssen.

Die Installation von Pterodactyl ist etwas komplizierter als

, daher werden wir hier nicht alle einzelnen Schritte durchgehen. Stattdessen können Sie sich an deren Installationsanleitung orientieren , die immer auf dem neuesten Stand sein sollte. Im Wesentlichen installieren Sie einen LAMP-Stack auf dem VPS und konfigurieren eine MySQL-Datenbank, damit sie ordnungsgemäß mit Pterodactyl kommunizieren kann.

Anschließend müssen Sie auf jedem Hostknoten den Daemon installieren . Dazu müssen Sie Docker und NodeJS installieren und LetsEncrypts ausführen. 

 um ein SSL-Zertifikat zu generieren, damit die Verbindung zwischen Control Panel und Daemon sicher über TLS erfolgen kann.

Nach der Installation müssen Sie jeden Daemon über die Pterodactyl-Konsole konfigurieren und einrichten. Zunächst müssen Sie auf der Registerkarte „Standorte“ in der Seitenleiste einige Standort-Tags erstellen, nach denen jeder Daemon sortiert wird. Dabei handelt es sich im Wesentlichen um Regionalcodes, die Sie zur Organisation erstellen können und die keinen anderen Zweck erfüllen. Um einen Daemon einzurichten, ist jedoch mindestens einer erforderlich.

Erstellen Sie dann einen neuen Knoten aus der Registerkarte „Knoten“ in der Seitenleiste.

Geben Sie ihm einen Namen und eine Beschreibung und geben Sie den Domänennamen ein, unter dem der Daemon erreicht werden kann. Unter Konfiguration können Sie das Daemon-Dateiverzeichnis ändern (wenn Sie bei OVH sind, lautet dies

), sowie die Änderung der Gesamtmenge an Arbeitsspeicher und Speicherplatz, die neuen Servern zur Verfügung steht. Dies gilt für den gesamten Knoten, geben Sie hier also die Spezifikationen Ihres Computers ein.

Klicken Sie dann auf „Erstellen“. Sie erhalten dann eine JSON-Datei. Kopieren Sie diese und fügen Sie sie hier ein:

Anschließend können Sie den Daemon mit starten sudo npm start. Allerdings möchten Sie ihn wahrscheinlich mit systemd dämonisieren , damit er beim Start ausgeführt wird.

Speichern Sie dies wie  wings.service folgt  /etc/systemd/system/und aktivieren Sie es:

Der Knoten sollte jetzt verknüpft sein (wenn nicht, überprüfen Sie Ihre Firewall-Einstellungen), aber Sie müssen noch einen letzten Schritt ausführen, damit er verwendet werden kann: Weisen Sie auf der Registerkarte „Zuweisung“ IP-Adresszuweisungen für neue Server zu. Wenn Ihr Server mehrere Ports benötigt, müssen Sie zusätzliche Zuweisungen angeben.

Einrichten Ihrer Serverkonfiguration

Die Serverkonfiguration beginnt mit Eggs, die den Großteil der Variablen enthalten und definieren, welches Docker-Image verwendet werden soll. Eggs werden je nach Spiel in Nester kategorisiert; das Minecraft-Nest enthält beispielsweise Eggs für Vanilla sowie modifizierte Serverkonfigurationen wie Forge, Paper und BungeeCord.

Pterodactyl warnt in großen roten Buchstaben, dass das Bearbeiten eines Eies eine erweiterte Funktion ist. Die Änderungen sind jedoch einfach und wenn Sie die Funktionsweise Ihrer Server manuell steuern möchten, müssen Sie sich mit ihnen vertraut machen.

Unter „Konfiguration“ in den Egg-Einstellungen finden Sie die Steuerelemente zum Ändern des Docker-Images und zum Modifizieren der Startbefehle.

Sie erhalten die größte Kontrolle, wenn Sie Ihre eigenen Docker-Images bereitstellen. Sie können die vorgefertigten Images von Pterodactyl forken und das Startskript so ändern, entrypoint.sh dass es alles enthält, was Sie möchten. Dies ist nützlich, wenn Sie einige Aktionen ausführen möchten, bevor die Binärdatei des Spielservers gestartet wird. In meinem Fall habe ich dies so eingestellt, dass der Server auf den richtigen Steam-Zweig aktualisiert wird und dann die neueste Version meines Codes vom TeamCity-Server abgerufen wird. Auf diese Weise ist der Server immer auf dem neuesten Stand und Codebereitstellungen werden automatisch ausgeführt, wenn der Server neu gestartet wird.

Wenn Sie jedoch nur einen Server ausführen möchten und keine benutzerdefinierten Mods oder Codes, können Sie einfach die Variablen auf der Registerkarte „Variablen“ bearbeiten, die Dinge wie den Servernamen, RCON-Ports und jede andere Konfiguration enthalten, die als Argument an die Befehlszeile übergeben wird.

Sie können diese Variablen im Startskript und im Einstiegspunkt zum Docker-Container verwenden (nützlich zum Ändern des Skripts basierend auf dem Servertyp) und sie können für jeden Server einzeln geändert werden.

Erstellen eines Servers

Erstellen Sie auf der Seite „Server“ in der Seitenleiste einen neuen Server. Geben Sie ihm einen Namen und eine Beschreibung und achten Sie darauf, sich selbst als Serverbesitzer festzulegen, da sonst ein Fehler auftritt.

Sie müssen außerdem auswählen, auf welchem ​​Knoten dieser Server ausgeführt wird und welche Portzuweisung er verwenden wird. Wenn Sie zusätzliche Ports für RCON benötigen, müssen Sie sekundäre Zuweisungen festlegen.

Darunter finden Sie die Steuerelemente für die Ressourcenverwaltung, mit denen Sie Speicher-, Festplatten- und CPU-Grenzwerte festlegen können. Die meisten Spieleserver sind Single-Thread-Server, aber bestimmte Aufgaben (wie die Navmesh-Generierung beim Start für Rust) können die CPU überlasten, was sich auf andere Dienste im System auswirken kann. Wenn Ihnen das egal ist und Sie nur möchten, dass der Server mit so viel wie möglich läuft, können Sie alle diese Werte auf 0 setzen, um sie zu deaktivieren.

Wählen Sie als Nächstes das Nest und Egg aus, das Sie verwenden. Sie finden Steuerelemente zum Auswechseln des Docker-Images sowie zum Überschreiben aller Servervariablen auf dem Egg. Möglicherweise müssen Sie hier Portnummern eingeben, um die Zuordnungen anzupassen ISTG.

Nachdem alles konfiguriert ist, klicken Sie auf „Erstellen“. Pterodactyl sendet die Anfrage an den Daemon und erstellt einen neuen Server. Die Erstinstallation dauert ein paar Minuten, aber sobald sie abgeschlossen ist, können Sie die Serverausgabe auf der Registerkarte „Konsole“ im Servermenü anzeigen.

In diesem Menü finden Sie auch ein integriertes Dateiverwaltungssystem sowie einen Benutzernamen für die Verbindung über FTP (das mit dem Docker-Container verbunden ist). Sie können diesem Server auch andere Benutzer hinzufügen und Zeitpläne zum Ausführen von Befehlen wie täglichen Neustarts einrichten.

Unter „Konfiguration“ finden Sie die Steuerelemente zum Bearbeiten von Servervariablen sowie zum Auslösen von Neuaufbauten des Docker-Containers. Dies löscht keine Daten, ist aber erforderlich, wenn Sie bearbeiten entrypoint.cs.