Pterodactyl® ist ein kostenloses Open-Source-Verwaltungspanel für Spielserver, das mit PHP, React und Go erstellt wurde.
Pterodactyl wurde unter Berücksichtigung der Sicherheit entwickelt und führt alle Spielserver in isolierten Docker-Containern aus, während es Endbenutzern eine schöne und intuitive Benutzeroberfläche bietet.
Quelle: https://pterodactyl.io/
Wir nutzen hier ein inoffizielles Script, (dieser vereinfacht die Installation), sollte es Probleme mit der Installation geben, bietet das Pterodactyl Team keinen Support!
Quelle: https://github.com/vilhelmprytz/pterodactyl-installer
Diese Anleitung wird mit einer Domain genutzt.
Entsprechend müsst ihr auch die Einträge im Abschnitt “Domain -Einträge" setzen.
Für den Anfang müssen wir natürlich per SSH mit dem Server verbunden sein.
Das Script wird gestartet und führt euch nun durch die Installation.
Ihr bekommt verschiedene Varianten für eine Installation vorgeschlagen. In unserem Beispiel möchten wir das Webinterface (Panel) sowie die Gameserver Verwaltung (Node) auf derselben Maschine installieren.
- Wir wählen die 2: [2] Install both on the same machine, i.e. [0] and [1]
Wings installation
Durch das Installationsscript und der automatischen Konfiguration für die Firewall wurde der Port 22 wieder aktiviert, da wir diesen aber nicht benötigen, müssen wir ihn wieder blockieren.
Das Panel, sowie die Wings Domain wurden mit dem SSL Zertifikat "Lets Entcrypt" verschlüsselt.
Diese sind aber nur für 3 Monate gültig, danach müssen diese erneuert (renew) werden.
Dafür legen wir uns eine automatisierte Aufgabe (crontab) an.
Wir erstellen die Aufgabe, das certbot jeden Tag um 23 Uhr eine "Erneuerung" versuchen soll.
Damit diese Erneuerung wirksam ist, muss zusätzlich der nginx und wings Server neugestartet werden.
Die Installation ist abgeschlossen.
Nun greifen wir auf das Webinterface über unserem Browser zu: “panel.deinedomain.de”
Nachdem wir uns mit unseren festgelegten Admin Daten eingeloggt haben, sehen wir die erste Oberfläche unseres neuen Webinterface´s.
Klick auf die Zahnräder, um das Webinterface weiter zu konfigurieren.
Unter Settings -> General.
Könnt ihr unter Company Name: einen beliebigen Webinterface Namen eintragen.
Unter Advanced könnt ihr das ReCaptcha ausschalten.
Nun müssen wir unsere “Node” richtig ins Webinterface einbinden.
Unter Location müssen wir unseren Gameserver Host benennen.
Wie ihr ihn nennt, ist egal. z.b. den Namen des Hosters, in unserem falle: “Frankfurt DSH”
Unter “Daemon Server File Directory” ändern wir den Pfad, in der unsere Server installiert werden.
Standardmäßig ist “/var/lib/www/pterodactyl/volumes” eingetragen.
Bei einigen anderen Anbietern ist der meiste verfügbare Speicherplatz unter /home.
Daher ändern wir es in:
Bei “Total Memory” müsst ihr euren maximalen verfügbaren RAM des Servers in MB eintragen. (Nur die Zahl)
Als Umrechnungshilfe könnt ihr euch: https://www.gbmb.org/gb-to-mb zur Hilfe nehmen.
Beachtet das RAM in Binär dargestellt wird. Beispielsweise 8GB RAM = 8192MB
Memory und Disk Over-Allocation stellen wir auf 0
Unter “Total Disk Space” tragen wir unserem maximalen verfügbaren Festplattenspeicher ein.
Rechnen davon aber noch etwa 10GB ab. Wenn wir also 150GB auf unserem Server haben, tragen wir 140GB ein.
Mit “Create Node” das ganze noch abspeichern.
Unter IP Address tragen wir die IP des Servers ein.
Unter Ports, alle Ports, die wir für unsere Server benötigen. z.b. für Minecraft den Port 25565
Für Teamspeak brauchen wir den Port 9987, 10011 und 30033
Informiert euch welche Spiele welchen Port brauchen, ihr müsst diese hier eintragen, um diese auch freizugeben.
Klickt auf “Generate Token”
Kopiert euch den kompletten Befehl im grauen Kasten!
Nun müssen wir über unsere Putty-SSH Verbindung den Kopierten Code einfügen und abschicken.
Danach noch den Wings Server starten:
Unter Nodes sollte eurer Gamehost mit einem grünen Herz sichtbar sein.
Damit ist die Ersteinrichtung von Pterodactyl abgeschlossen.
Um nun auch den Nginx mit Crowdsec zu überwachen und abzusichern, müssen wir die dazugehörige collections installieren.