Pterodactyl Panel & Wings

Das YouTube Video zu diesen Befehlen enthält ein paar Fehler. Die Befehle hier sind richtig.

Für die Faulen (Inoffizielles Script):

bash <(curl -s https://pterodactyl-installer.se)
Panel installieren:

Offizielle Dokumentation: https://pterodactyl.io/project/introduction.html

Dependencies installieren:

apt update -y
apt install ca-certificates apt-transport-https software-properties-common gnupg curl -y
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee
 /etc/apt/sources.list.d/sury-php.list
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
apt update -y && apt upgrade -y
curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/redis.list
apt update -y && apt upgrade -y
apt -y install php8.1 php8.1-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip}
mariadb-server redis-server nginx tar unzip git
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Panel installieren:

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/

MariaDB konfigurieren:

mariadb -u root -p

In der MariaDB Shell SQL Statements eingeben:

CREATE USER 'pterodactyl'@'localhost' IDENTIFIED BY 'PASSWORT';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'localhost' WITH GRANT OPTION;
exit

Pterodactyl konfigurieren:

cp .env.example .env

Für den Betrieb hinter einem Reverse Proxy:

nano .env

TRUSTED_PROXIES='ip_reverse_proxy'

Die Konfiguration anpassen mit Assistent:

composer install --no-dev --optimize-autoloader
php artisan key:generate
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail
php artisan migrate --seed
php artisan p:user:make

Es ist empfehlenswert, das .env file zu sichern, da dieses alle Informationen enthält, um die Daten im Notfall zu entschlüsseln oder auf ein anderen Server zu übertragen.

Die Besitzrechte für die Website an den User ‚www-data‘ übergeben:

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

Einen Cronjob einrichten für Updatechecks, Backups und alle Zeitpläne:

crontab -e

Als Editor ist nano zu empfehlen, da dieser am Intuitivsten zu verwenden ist. In das nun geöffnete Fenster folgendes am Ende einfügen:

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

Einen Service für das Panel erstellen:

nano /etc/systemd/system/pteroq.service

Das Folgende in nano einfügen:

[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

Die benötigten Services enablen:

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

Nginx ohne TLS konfigurieren: (Die Konfiguration mit TLS bitte dem offiziellen Guide entnehmen)

rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/pterodactyl.conf

Die Konfiguration (example.com ersetzen):

server {

    listen 80;
    server_name example.com;


    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.1-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;
    }
}

Die Website verlinken und nginx Service Neustarten:

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

Ende der Installation des Panels.


Wings installieren:

Docker installieren & enablen:

curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker

Docker erlauben, Swap Space zu benutzen (optional):

nano /etc/default/grub

Den Wert von GRUB_CMDLINE_LINUX_DEFAULT setzen:

GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1"

Wings herunterladen und installieren:

mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
chmod u+x /usr/local/bin/wings

Wings manuell konfigurieren:

Alternativ: Verwende den autodeploy Befehl aus dem Panel

nano /etc/pterodactyl/config.yml

Den Inhalt der Konfigurationsdatei aus den Panel einfügen.

Service für Wings erstellen:

nano /etc/systemd/system/wings.service

Service-Konfiguration einfügen:

[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

Service enablen:

systemctl enable --now wings

Das war’s :D. Die Installation von Pterodactyl Panel & Wings ist durchgestanden. Viel Spaß beim Gameserver installieren!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert