Einleitung
Pterodactyl ist ein modernes, Open-Source Game Server Management Panel, das speziell für die Verwaltung von Game Servern entwickelt wurde. Es bietet eine benutzerfreundliche Web-Oberfläche zur Verwaltung von Minecraft, Rust, CS:GO und vielen anderen Spieleservern. Das Panel basiert auf Docker-Containern und ermöglicht es Administratoren, Server-Ressourcen effizient zu verwalten, Benutzer zu organisieren und detaillierte Statistiken einzusehen.
Pterodactyl besteht aus zwei Hauptkomponenten: dem Panel (Web-Interface) und Wings (Daemon für Server-Management). In diesem Tutorial konzentrieren wir uns auf die Installation des Panels auf Debian 13 und Ubuntu 24.04.
Systemvoraussetzungen
| Komponente | Mindestanforderung | Empfohlen |
|---|---|---|
| CPU | 1 vCPU | 2+ vCPUs |
| RAM | 2 GB | 4+ GB |
| Speicher | 10 GB | 20+ GB SSD |
| Betriebssystem | Debian 13 / Ubuntu 24.04 | Ubuntu 24.04 LTS |
| PHP Version | 8.1+ | 8.2+ |
| MySQL/MariaDB | 5.7+ / 10.2+ | 8.0+ / 10.6+ |
Benötigte Ports
| Port | Protokoll | Zweck | Firewall |
|---|---|---|---|
| 80 | HTTP | Web-Interface (Weiterleitung) | Öffnen |
| 443 | HTTPS | Web-Interface (SSL) | Öffnen |
| 3306 | MySQL | Datenbankverbindung | Lokal |
| 6379 | Redis | Cache/Sessions | Lokal |
Vorbereitung
System aktualisieren
Aktualisieren Sie zunächst Ihr System auf den neuesten Stand:
sudo apt update && sudo apt upgrade -y
sudo apt install -y software-properties-common curl wget gnupg2
Abhängigkeiten installieren
Installieren Sie die erforderlichen Pakete:
# Basis-Pakete
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# Webserver und PHP
sudo apt install -y nginx
# PHP und Extensions
sudo apt install -y php8.2 php8.2-cli php8.2-gd php8.2-mysql php8.2-pdo \
php8.2-mbstring php8.2-tokenizer php8.2-bcmath php8.2-xml php8.2-fpm \
php8.2-curl php8.2-zip php8.2-intl php8.2-sqlite3 php8.2-redis
# Composer installieren
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Node.js und npm installieren
# NodeSource Repository hinzufügen
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# Node.js installieren
sudo apt install -y nodejs
# Yarn installieren (optional, aber empfohlen)
npm install -g yarn
MariaDB installieren und konfigurieren
# MariaDB installieren
sudo apt install -y mariadb-server mariadb-client
# MariaDB sichern
sudo mysql_secure_installation
Redis installieren
sudo apt install -y redis-server
sudo systemctl enable redis-server
sudo systemctl start redis-server
Installation
Pterodactyl Panel herunterladen
# Verzeichnis erstellen
sudo mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
# Neueste Version herunterladen
sudo curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
# Archiv extrahieren
sudo tar -xzvf panel.tar.gz
sudo chmod -R 755 storage/* bootstrap/cache/
Datenbank konfigurieren
Erstellen Sie eine Datenbank für Pterodactyl:
sudo mysql -u root -p
Führen Sie folgende SQL-Befehle aus:
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'IhrSicheresPasswort';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Installation durchführen
cd /var/www/pterodactyl
# Abhängigkeiten installieren
sudo composer install --no-dev --optimize-autoloader
# Installations-Script ausführen
sudo php artisan p:environment:setup
sudo php artisan p:environment:database
sudo php artisan p:environment:mail
- Application URL: https://ihr-domain.de
- Application Timezone: Europe/Berlin
- Cache Driver: redis
- Session Driver: redis
- Queue Driver: redis
Datenbank-Setup abschließen
# Datenbank migrieren
sudo php artisan migrate --seed --force
# Admin-Benutzer erstellen
sudo php artisan p:user:make
Berechtigung setzen
# Besitzer ändern
sudo chown -R www-data:www-data /var/www/pterodactyl/*
# Crontab für Queue Worker
sudo crontab -e
Fügen Sie folgende Zeile hinzu:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
Queue Worker Service erstellen
sudo nano /etc/systemd/system/pteroq.service
Fügen Sie folgenden Inhalt ein:
[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
Service aktivieren:
sudo systemctl enable pteroq.service
sudo systemctl start pteroq.service
Konfiguration
Nginx konfigurieren
Erstellen Sie eine Nginx-Konfiguration:
sudo nano /etc/nginx/sites-available/pterodactyl.conf
Fügen Sie folgende Konfiguration ein:
server {
listen 80;
server_name ihr-domain.de;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name ihr-domain.de;
root /var/www/pterodactyl/public;
index index.html index.htm index.php;
charset utf-8;
# SSL-Konfiguration (wird später durch Certbot ergänzt)
# ssl_certificate /etc/letsencrypt/live/ihr-domain.de/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/ihr-domain.de/privkey.pem;
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:/var/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;
}
}
Site aktivieren:
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
sudo nginx -t
sudo systemctl reload nginx
SSL-Zertifikat einrichten
Installieren Sie Certbot für Let’s Encrypt:
sudo apt install -y certbot python3-certbot-nginx
# SSL-Zertifikat erstellen
sudo certbot --nginx -d ihr-domain.de
PHP-FPM optimieren
sudo nano /etc/php/8.2/fpm/conf.d/99-pterodactyl.ini
Fügen Sie folgende Optimierungen hinzu:
upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 256M
max_execution_time = 300
max_input_vars = 1000
date.timezone = Europe/Berlin
sudo systemctl restart php8.2-fpm
Firewall-Regeln setzen
Konfigurieren Sie UFW (falls installiert):
# UFW installieren (falls nicht vorhanden)
sudo apt install -y ufw
# Grundregeln setzen
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Benötigte Ports öffnen
sudo ufw allow ssh
sudo ufw allow 'Nginx Full'
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Firewall aktivieren
sudo ufw enable
Für iptables:
# HTTP/HTTPS Traffic erlauben
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# SSH beibehalten
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Regeln speichern
sudo apt install -y iptables-persistent
sudo netfilter-persistent save
Dienst starten und beim Systemstart aktivieren
Alle Dienste aktivieren und starten:
# Nginx
sudo systemctl enable nginx
sudo systemctl start nginx
# PHP-FPM
sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm
# MariaDB
sudo systemctl enable mariadb
sudo systemctl start mariadb
# Redis
sudo systemctl enable redis-server
sudo systemctl start redis-server
# Pterodactyl Queue Worker
sudo systemctl enable pteroq
sudo systemctl start pteroq
# Status überprüfen
sudo systemctl status nginx php8.2-fpm mariadb redis-server pteroq
Installation verifizieren
Service-Status überprüfen
# Alle wichtigen Services überprüfen
sudo systemctl status nginx
sudo systemctl status php8.2-fpm
sudo systemctl status mariadb
sudo systemctl status redis-server
sudo systemctl status pteroq
Web-Interface testen
Öffnen Sie Ihren Browser und navigieren Sie zu https://ihr-domain.de. Sie sollten das Pterodactyl-Login sehen.
Logs überprüfen
# Pterodactyl Logs
sudo tail -f /var/www/pterodactyl/storage/logs/laravel.log
# Nginx Logs
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/pterodactyl.app-error.log
# PHP-FPM Logs
sudo tail -f /var/log/php8.2-fpm.log
Datenbank-Verbindung testen
cd /var/www/pterodactyl
sudo -u www-data php artisan migrate:status
Troubleshooting
Häufige Fehler und Lösungen
500 Internal Server Error
Problem: Web-Interface zeigt 500-Fehler
Lösung:
# Logs überprüfen
sudo tail -f /var/www/pterodactyl/storage/logs/laravel.log
# Cache leeren
cd /var/www/pterodactyl
sudo -u www-data php artisan config:clear
sudo -u www-data php artisan cache:clear
# Berechtigungen korrigieren
sudo chown -R www-data:www-data /var/www/pterodactyl/
sudo chmod -R 755 /var/www/pterodactyl/storage/
Queue Worker startet nicht
Problem: pteroq.service Service fehlerhaft
Lösung:
# Service-Status überprüfen
sudo systemctl status pteroq.service
# Manual testen
cd /var/www/pterodactyl
sudo -u www-data php artisan queue:work --verbose
# Service neu laden
sudo systemctl daemon-reload
sudo systemctl restart pteroq.service
Datenbank-Verbindungsfehler
Problem: Keine Verbindung zur Datenbank
Lösung:
# MariaDB Status prüfen
sudo systemctl status mariadb
# Datenbankverbindung testen
mysql -u pterodactyl -p -h 127.0.0.1
# .env Datei überprüfen
sudo nano /var/www/pterodactyl/.env
# Cache leeren nach Änderungen
cd /var/www/pterodactyl
sudo -u www-data php artisan config:clear
SSL-Zertifikat Probleme
Problem: HTTPS funktioniert nicht
Lösung:
# Certbot Status prüfen
sudo certbot certificates
# Zertifikat erneuern
sudo certbot renew --dry-run
# Nginx Konfiguration testen
sudo nginx -t
# Nginx neustarten
sudo systemctl restart nginx
PHP Memory Limit überschritten
Problem: Composer oder Anwendung läuft in Memory-Limit
Lösung:
# PHP-FPM Konfiguration anpassen
sudo nano /etc/php/8.2/fpm/conf.d/99-pterodactyl.ini
# Memory Limit erhöhen
memory_limit = 512M
# PHP-FPM neustarten
sudo systemctl restart php8.2-fpm
Node.js/npm Probleme
Problem: Frontend-Assets können nicht kompiliert werden
Lösung:
# Node.js Version prüfen
node --version
npm --version
# Dependencies installieren
cd /var/www/pterodactyl
sudo -u www-data npm install
# Production Build
sudo -u www-data npm run production
Performance-Optimierung
# OPCache aktivieren
sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
# Redis Memory-Limit setzen
sudo nano /etc/redis/redis.conf
maxmemory 256mb
maxmemory-policy allkeys-lru
Updates und Wartung
Pterodactyl Panel aktualisieren
# Backup erstellen
sudo cp /var/www/pterodactyl/.env /var/www/pterodactyl/.env.backup
sudo mysqldump -u root -p panel > panel_backup.sql
# In Wartungsmodus schalten
cd /var/www/pterodactyl
sudo -u www-data php artisan down
# Neueste Version herunterladen
sudo curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
sudo tar -xzvf panel.tar.gz
# Dependencies aktualisieren
sudo -u www-data composer install --no-dev --optimize-autoloader
# Datenbank migrieren
sudo -u www-data php artisan migrate --force
# Cache leeren
sudo -u www-data php artisan config:clear
sudo -u www-data php artisan cache:clear
# Wartungsmodus deaktivieren
sudo -u www-data php artisan up
Automatische Backups einrichten
Erstellen Sie ein Backup-Script:
sudo nano /usr/local/bin/pterodactyl-backup.sh
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/pterodactyl"
PANEL_DIR="/var/www/pterodactyl"
# Backup-Verzeichnis erstellen
mkdir -p $BACKUP_DIR
# Datenbank-Backup
mysqldump -u root -p'IhRootPasswort' panel > $BACKUP_DIR/panel_$DATE.sql
# Panel-Dateien sichern
tar -czf $BACKUP_DIR/panel_files_$DATE.tar.gz -C /var/www pterodactyl
# Alte Backups löschen (älter als 30 Tage)
find $BACKUP_DIR -name "*.sql" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
echo "Backup completed: $DATE"
# Script ausführbar machen
sudo chmod +x /usr/local/bin/pterodactyl-backup.sh
# Tägliches Backup via Crontab
sudo crontab -e
# Täglich um 2:00 Uhr Backup erstellen
0 2 * * * /usr/local/bin/pterodactyl-backup.sh >> /var/log/pterodactyl-backup.log 2>&1
Log-Rotation einrichten
sudo nano /etc/logrotate.d/pterodactyl
/var/www/pterodactyl/storage/logs/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}
Fazit und nächste Schritte
Sie haben erfolgreich Pterodactyl Panel auf Debian 13 oder Ubuntu 24.04 installiert und konfiguriert. Das Panel ist nun über HTTPS erreichbar und produktionsbereit.
Nächste Schritte
- Wings-Daemon installieren: Für das Server-Management benötigen Sie zusätzlich den Wings-Daemon
- Locations und Nodes konfigurieren: Erstellen Sie Server-Standorte in der Admin-Oberfläche
- Server-Templates anlegen: Konfigurieren Sie Eggs für verschiedene Spieltypen
- Benutzer-Management: Richten Sie Benutzer und Berechtigungen ein
- Monitoring einrichten: Implementieren Sie Überwachung für System und Anwendung
- Reverse-Proxy konfigurieren: Bei mehreren Services CloudFlare oder ähnliche Dienste nutzen
Wichtige Wartungsaufgaben
- Regelmäßige Updates von System und Pterodactyl Panel
- Überwachung der Log-Dateien auf Fehler
- Überprüfung der SSL-Zertifikat-Gültigkeit
- Kontrolle der Backup-Integrität
- Performance-Monitoring von Datenbank und Redis
Mit dieser Installation haben Sie eine solide Grundlage für das Management Ihrer Game Server geschaffen. Bei Problemen konsultieren Sie die offiziellen Pterodactyl-Dokumentation oder die Community-Foren.