Pterodactyl

Part 1 Pterodactyl Installation – Panel

Hey und willkommen zum Textteil der Anleitung, ich beziehe mich bei der Installation auf Debian und werde daher dafür die Anleitung gestalten zwecks repos natürlich füge ich auch einen Ubuntu teil ein allerdings keine Informationen für RHEL basierte Systeme dafür bitte die offizielle Anleitung ansehen.


Dies ist eine Schritt für Schritt Installation wie im Video, sofern ihr eure Pfade Standard lasst passt das so ansonsten bitte selber alles abändern.

Hilfe Video

Hier die offiziell unterstützten Betriebssysteme

BetriebsystemeVersionUnterstützt
Ubuntu18.04
20.04
22.04
22.04
CentOS7
8
Debian10
11

Es ist empfohlen, ein sauber installiertes System zu nutzen. Natürlich geht das auch bei einem laufenden ist aber mehr aufwand.

Als Erstes fügen wir unsere benötigten Repos hinzu. Weil Debian 11 Standard mit PHP 7.4 ausgeliefert wird, aber 8.1 oder 8.2 benötigt wird.

Bevor wir das aber tun können, benötigen wir einige Tools für z. B. die GPG Keys und Repo Zertifikate

apt update

apt install lsb-release apt-transport-https ca-certificates software-properties-common -y

wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
 
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

apt update

Nachdem wir nun die PHP repo für Debian hinzugefügt haben können wir alle Benötigten pakete installieren, darunter der nginx Webserver mariadb redis php…..

apt -y install php8.2 php8.2-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server

Jetzt holen wir uns noch den Abhängigkeits Manager also den Composer für PHP.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Jetzt, wo alle Pakete installiert sind, erstellen wir erstmal den Ordner, wo das Webinterface auf dem Server installiert wird und navigieren auch direkt dort hinein.

mkdir -p /var/www/pterodactyl

cd /var/www/pterodactyl

Nun holen wir uns die letzte Version des Panels von GitHub. Wir entpacken es auch direkt und vergeben auch die Ordner und Datei Berechtigungen.

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/

Jetzt müssen wir einen MySQL User mit einer Datenbank erstellen, wer es bereits hat, kann an der stelle auch phpmyadmin nehmen oder halt einfach per Terminal.

mysql -u root -p

# Bitte wechsel 'DeinPassword' durch ein sicheres password
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'DeinPassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exit

Jetzt benennen wir den env File um, damit das Panel ihn dann auch erkennt. Das ist wie eine config.php wo Daten wie Myzel Password usw. gespeichert werden.
Und gleichzeitig soll der Composer alle Abhängigkeiten laden. Anschließend erstellen wir einen Key, damit das Panel auch nur mit dieser Instanz sich starten lässt.

cp .env.example .env

composer install --no-dev --optimize-autoloader

php artisan key:generate --force

Jetzt können wir wie in einem Formular das Environment Setup starten und füllen alles aus, was benötigt ist.

php artisan p:environment:setup

php artisan p:environment:database

Falls ihr einen eigenen Mailserver habt oder einfach ein Mail Account habt bei z. B. google oder gmx… dann könnt ihr das Panel auch E-Mails versenden lassen für Installationsfortschritt oder wenn man sein Password vergessen hat.

php artisan p:environment:mail

Als Nächstes lassen wir die Datenbank erstellen. Dies kann je nach CPU Geschwindigkeit und Kerne schneller oder langsamer gehen.

php artisan migrate --seed --force

Jetzt können wir schon den ersten User erstellen. Natürlich würde ich als Erstes einen Admin Account erstellen, aber wählt bitte ein sicheres Password.

php artisan p:user:make

Der vorletzte Schritt, bevor das Panel dann funktioniert, ist das Vergeben der Berechtigung, damit der Webserver mit dem zugewiesenen User www-data auch darauf zugreifen kann.

chown -R www-data:www-data /var/www/pterodactyl/*

Nun müssen wir einen Cronjob erstellen, damit die automatischen Dienste des Panels auch laufen, wenn die Seite nicht geöffnet ist. Ihr werdet gefragt, ob ihr nano oder vi nutzen wollt, ich nutze nano in meiner Videoanleitung.

crontab -e

Und nun fügt ihr folgende Zeile ganz unten in der Datei ein.

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

Jetzt installieren wir die Aufgabenplanung des Panels noch als Systemdienst so das man es Neustarten oder Stoppen kann, wenn man z. B. Panel Updates macht oder oder oder.. Dafür erstellen wir eine neue Datei.

nano /etc/systemd/system/pteroq.service

Und nun fügt ihr folgende Zeilen in der Datei ein.

# Pterodactyl Queue Worker File
# ----------------------------------

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

[Service]
# On some systems the user and group might be different.
# Some systems use `apache` or `nginx` as the user and group.
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


Jetzt starten wir noch den Cache Server ( redis ) und unsere neu erstellten pteroq Dienst.

sudo systemctl enable --now redis-server
sudo systemctl enable --now pteroq.service

Jetzt nur noch einen vhost File anlegen, damit der Webserver auch anfragen annehmen kann und die Files aus dem richtigen Verzeichnis lädt.

Falls ihr Certbot also ganz einfach ein Lets Encrypt Certificate wollt, müsst ihr dies noch installieren.

apt install certbot python3-certbot-nginx

Jetzt erstellen wir einen vhost im Nginx Verzeichnis.

nano /etc/nginx/sites-available/pterodactyl.conf

Und nun fügt ihr folgende Zeilen in der Datei ein. Bitte ändert den Eintrag <domain> zu eurer TLD Domain um.

server {
    # Replace the example <domain> with your domain name or IP address
    listen 80;
    server_name <domain>;


    root /var/www/pterodactyl/public;
    index index.html index.htm index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/pterodactyl.app-error.log error;

    # allow larger file uploads and longer script runtimes
    client_max_body_size 100m;
    client_body_timeout 120s;

    sendfile off;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTP_PROXY "";
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    location ~ /\.ht {
        deny all;
    }
}

Jetzt machen wir eine symbolische Verknüpfung vom available Ordner in den Enabled Ordner und starten danach den Webserver einmal neu.

ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf

systemctl restart nginx

Jetzt nur noch das SSL Certificate, damit die Seite auch eine verschlüsselte Verbindung hat, das geht einfach mit dem certbot ihr müsst natürlich eure E-Mail angeben und deren agbs usw. akzeptieren, dann wählt ihr eure Domain nur aus, mit der gezeigten zahl.

certbot

Jetzt habt ihr das Panel installiert jetzt fehlt nur noch der Daemon ( Wings ) genannt, dafür hier zu Schritt 2 wechseln

Part 2 Wings Installation

Schaltfläche "Zurück zum Anfang"
fullbrightscholarships