Zurück zum Blog

Pterodactyl installieren: Anleitung für Panel und Wings

Pterodactyl installieren: Panel unter Ubuntu mit Datenbank, Queue-Worker, Nginx und SSL, Wings mit Docker, Node und Allocations Schritt für Schritt.

Nodesty-Team7 Min. LesezeitGameserver
Der Schriftzug Pterodactyl mit Panel, Wings und Docker auf dunklem Nodesty-Hintergrund

Pterodactyl ist ein kostenloses Open-Source-Panel, mit dem Sie Gameserver im Webbrowser verwalten. Server für Minecraft, Rust, CS2, Terraria und viele weitere Spiele installieren, starten und stoppen Sie über ein einziges Panel und verwalten dort auch ihre Dateien; jeder Server läuft in einem eigenen Docker-Container mit den RAM-, CPU- und Speicherlimits, die Sie festlegen. Wenn Sie für Ihre Community oder Ihre Kunden viele Gameserver hosten möchten, ist Pterodactyl die am weitesten verbreitete Wahl.

In dieser Anleitung zeigen wir Schritt für Schritt, wie Sie die beiden Bestandteile von Pterodactyl, das Panel und Wings, auf einem Ubuntu-Server installieren und Ihren ersten Gameserver anlegen. Da sich Paket- und PHP-Versionen mit der Zeit ändern, prüfen Sie vor der Installation auch die aktuellen Anforderungen in der offiziellen Dokumentation von Pterodactyl.

Wie funktioniert Pterodactyl?

Pterodactyl besteht aus zwei Komponenten:

  • Panel: Die in PHP geschriebene Weboberfläche. Sie verwaltet Benutzer, Server und Einstellungen und nutzt eine Datenbank und Redis.
  • Wings: Der Dienst auf der Maschine, auf der die Gameserver laufen. Er nimmt die Befehle des Panels entgegen und betreibt jeden Gameserver in einem eigenen Docker-Container.

Ein Panel kann mehrere Wings-Server an verschiedenen Standorten verwalten (in Pterodactyl Node genannt). Bei einer kleinen Installation können beide auf demselben Server laufen.

Voraussetzungen

  • Server: Ein KVM-basierter virtueller Server oder ein dedizierter Server. Wings braucht für Docker einen vollständigen Linux-Kernel; containerbasierte Virtualisierungen wie OpenVZ und LXC funktionieren in der Regel nicht.
  • Betriebssystem: Die aktuelle LTS-Version von Ubuntu. In dieser Anleitung verwenden wir Ubuntu 24.04.
  • Domain: Je eine Subdomain für Panel und Wings, zum Beispiel panel.ihredomain.de und node.ihredomain.de. Beide brauchen einen A-Eintrag, der auf die IP-Adresse des Servers zeigt; wie das funktioniert, erklären wir in unserem Artikel Was ist DNS?.
  • Ressourcen: Das Panel selbst braucht wenig Ressourcen. Den Bedarf an RAM und CPU bestimmt die Summe der Gameserver, die Sie betreiben möchten.

Schritt 1: Abhängigkeiten installieren

Das Panel benötigt PHP, einen Webserver (Nginx), eine Datenbank (MariaDB), Redis und Composer. Verbinden Sie sich per SSH mit Ihrem Server, werden Sie root und installieren Sie die Pakete:

sudo -i
apt update
apt install -y php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \
  mariadb-server nginx tar unzip git redis-server certbot python3-certbot-nginx
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Die von Pterodactyl unterstützte PHP-Version kann sich mit der Zeit ändern; empfiehlt die Dokumentation eine andere Version, passen Sie die 8.3 in den Paketnamen entsprechend an. Details zu MariaDB und Redis finden Sie in unseren Artikeln MySQL und MariaDB installieren und Was ist Redis?.

Schritt 2: Panel herunterladen

mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/

Schritt 3: Datenbank anlegen

mariadb -u root
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'ein-starkes-passwort';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
EXIT;

Schritt 4: Panel konfigurieren

cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail
php artisan migrate --seed --force
php artisan p:user:make
chown -R www-data:www-data /var/www/pterodactyl/*
  • key:generate: Erzeugt den Verschlüsselungsschlüssel des Panels. Sichern Sie unbedingt den Wert APP_KEY aus der Datei .env; geht dieser Schlüssel verloren, lassen sich verschlüsselte Daten nicht mehr lesen.
  • p:environment:setup: Fragt die Adresse des Panels, die Zeitzone und Redis für Cache und Sessions ab. Geben Sie als Adresse des Panels https://panel.ihredomain.de ein.
  • p:environment:database: Fragt die Zugangsdaten der Datenbank ab, die Sie in Schritt 3 angelegt haben.
  • p:user:make: Legt Ihr erstes Administratorkonto an.

Schritt 5: Scheduler und Queue-Worker

Für Hintergrundaufgaben braucht das Panel einen Scheduler, der jede Minute läuft, und einen Queue-Worker. Fügen Sie mit crontab -e diese Zeile hinzu:

* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1

Wie Cron funktioniert, erklären wir in unserer Anleitung Cronjob einrichten. Legen Sie für die Queue die Datei /etc/systemd/system/pteroq.service an:

[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service

[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
systemctl enable --now redis-server
systemctl enable --now pteroq.service

Schritt 6: Nginx und SSL

Besorgen Sie zuerst ein SSL-Zertifikat für die Domain des Panels, kopieren Sie dann das Nginx-Konfigurationsbeispiel aus der Dokumentation von Pterodactyl in die Datei /etc/nginx/sites-available/pterodactyl.conf und ersetzen Sie <domain> durch Ihre eigene Domain. Die Konfiguration leitet PHP-Anfragen an PHP-FPM weiter und leitet HTTP auf HTTPS um.

systemctl stop nginx
certbot certonly --standalone -d panel.ihredomain.de
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
nginx -t
systemctl start nginx

Öffnen Sie im Browser die Adresse https://panel.ihredomain.de und melden Sie sich mit dem Administratorkonto an, das Sie in Schritt 4 angelegt haben. Die Grundlagen von Nginx erklären wir in unserer Anleitung Nginx installieren, SSL in unserem Artikel Was ist ein SSL-Zertifikat?.

Schritt 7: Wings installieren

Wings betreibt die Gameserver in Docker. Installieren Sie Docker und Wings:

curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
chmod u+x /usr/local/bin/wings

Besorgen Sie auch für die Domain von Wings ein SSL-Zertifikat (läuft Wings auf demselben Server wie das Panel, können Sie auch die Domain des Panels verwenden):

certbot certonly --nginx -d node.ihredomain.de

Die allgemeine Nutzung von Docker erklären wir in unserer Anleitung Docker installieren.

Schritt 8: Location, Node und Allocation

Wechseln Sie im Panel in den Bereich Admin:

  1. Locations → Create New: Legen Sie einen Standort an, zum Beispiel fra (Frankfurt).
  2. Nodes → Create New: Geben Sie die Domain der Node (node.ihredomain.de), die Nutzung von SSL sowie die RAM- und Speicherlimits ein. Tragen Sie für Arbeitsspeicher und Speicherplatz etwas weniger ein, als der Server tatsächlich hat; lassen Sie dem Betriebssystem Reserven.
  3. Kopieren Sie nach dem Anlegen der Node die Konfiguration aus dem Reiter Configuration und fügen Sie sie auf dem Server in die Datei /etc/pterodactyl/config.yml ein.
  4. Fügen Sie im Reiter Allocation die IP-Adresse und den Portbereich hinzu, die die Gameserver nutzen sollen, zum Beispiel 25565-25575.

Starten Sie Wings zunächst im Debug-Modus und testen Sie die Verbindung:

wings --debug

Ist das Node-Symbol im Panel grün geworden, beenden Sie Wings mit Strg + C und richten es als dauerhaften Dienst ein. /etc/systemd/system/wings.service:

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service

[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
systemctl enable --now wings

Firewall

Damit Pterodactyl funktioniert, müssen diese Ports offen sein:

  • 80 und 443 TCP: Panel.
  • 8080 TCP: Port, über den das Panel mit Wings kommuniziert.
  • 2022 TCP: SFTP-Zugriff auf die Dateien der Gameserver.
  • Allocation-Ports: Die Ports der Gameserver; je nach Spiel TCP, UDP oder beides.
ufw allow 80,443,8080,2022/tcp
ufw allow 25565:25575/tcp

Wie Ports funktionieren, erklären wir in unserem Artikel Was ist ein Port?.

Den ersten Gameserver anlegen

Wählen Sie unter Admin → Servers → Create New den Besitzer des Servers, die Node und die Allocation aus, legen Sie die RAM-, CPU- und Speicherlimits fest und wählen Sie unter Nest/Egg das Spiel (zum Beispiel Paper für Minecraft). Die Installation dauert ein paar Minuten; danach verwalten Sie Konsole, Dateien und Backups des Servers im Benutzerbereich des Panels.

Nodesty-Server für Pterodactyl

Pterodactyl setzt KVM-Virtualisierung oder dedizierte Hardware voraus. Die AMD Ryzen 9 9950X vServer von Nodesty sind mit KVM virtualisiert und eignen sich mit bis zu 5,7 GHz Single-Core-Takt hervorragend für Gameserver; wenn Sie viele Server hosten möchten, bieten dedizierte Server, deren Hardware ganz Ihnen gehört, mehr Ressourcen. Die Installation von Panels, einschließlich Pterodactyl, übernimmt der Kunde; wenn Sie für ein einzelnes Spiel einen fertig eingerichteten Server möchten, werfen Sie einen Blick auf unsere Gameserver-Pakete.

Pterodactyl ist ein unabhängiges Open-Source-Projekt. Nodesty ist nicht mit dem Pterodactyl-Projekt verbunden und wird nicht von ihm unterstützt.

Häufig gestellte Fragen

Ist Pterodactyl kostenlos?

Ja. Pterodactyl ist ein kostenloses Open-Source-Panel zur Verwaltung von Gameservern. Sie zahlen nur für die Maschinen, auf denen das Panel und die Gameserver laufen.

Können Panel und Wings auf demselben Server laufen?

Ja. Bei kleinen Installationen können Panel und Wings auf demselben Server laufen; die Schritte in dieser Anleitung passen auch zu diesem Szenario. Wenn Sie viele Gameserver hosten möchten, verteilen Sie die Ressourcen besser, indem Sie das Panel auf einem kleinen Server und Wings auf einem oder mehreren leistungsstarken Servern betreiben.

Mit welcher Virtualisierung funktioniert Pterodactyl?

Wings betreibt die Gameserver in Docker-Containern und braucht dafür einen vollständigen Linux-Kernel. Auf KVM-basierten virtuellen Servern und dedizierten Servern läuft es problemlos; containerbasierte Virtualisierungen wie OpenVZ und LXC werden in der Regel nicht unterstützt.

Was ist ein Egg?

Ein Egg ist in Pterodactyl eine Vorlage, die festlegt, wie ein Gameserver installiert und gestartet wird. Fertige Eggs für Spiele wie Minecraft, Rust und CS2 werden mit dem Panel mitgeliefert; Hunderte weitere Eggs aus der Community können Sie als JSON-Datei importieren.

Wings verbindet sich nicht und die Node wird rot angezeigt. Was tun?

Prüfen Sie mit systemctl status wings, ob der Wings-Dienst läuft, stellen Sie sicher, dass Port 8080 offen ist, und kontrollieren Sie, ob Domain und SSL-Einstellung in den Node-Einstellungen des Panels mit der Konfiguration von Wings übereinstimmen. Wenn das Panel HTTPS verwendet, muss auch Wings mit einem gültigen SSL-Zertifikat laufen.

Installiert Nodesty Pterodactyl für mich?

Nein. Die Installation von Anwendungen und Game-Panels, einschließlich Pterodactyl, übernimmt der Kunde. Mit den Schritten in dieser Anleitung installieren Sie Pterodactyl selbst auf Ihrem vServer oder dedizierten Server von Nodesty; wenn Sie einen einzelnen, fertig eingerichteten Gameserver möchten, wählen Sie eines unserer Gameserver-Pakete.

Nodesty

Über den Autor

Nodesty-Team · Infrastruktur und Support

Das Nodesty-Team betreibt unsere Server, unser Netzwerk und unseren DDoS-Schutz im Alltag und beantwortet Support-Anfragen rund um die Uhr. Diese Ratgeber entstehen aus dieser Arbeit.

Verwandte Artikel

Starte deinen Server jetzt.

Erstellen, wachsen und skalieren Sie Ihre Projekte grenzenlos auf der Premium-Infrastruktur von Nodesty.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································