Wings ist der Service, der auf dem Node läuft und die eigentlichen Server-Container verwaltet.
1. Ordnerstruktur anlegen
Erstelle das Verzeichnis für die Wings-Konfiguration:
mkdir -p /etc/pterodactyl /opt/containers/pterodactyl/wings
cd /opt/containers/pterodactyl/wings
2. Pterodactyl Panel Vorbereitung (DB_SSL=false)
💡 Hinweis: Nur nötig, wenn dies in Schritt 7 nicht in der docker-compose.yml eingetragen wurde!
⚠️ Wichtig: Um einen 500 Internal Server Error beim Speichern der Node-Einstellungen im Panel zu vermeiden, muss das Panel wissen, dass die interne MariaDB-Verbindung kein SSL erfordert.
Füge in der .env des Panel-Containers die Zeile DB_SSL=false hinzu und leere den Config-Cache:
docker exec -it pterodactyl-panel sh -c "echo 'DB_SSL=false' >> /app/.env"
docker exec -it pterodactyl-panel php artisan config:clear
docker restart pterodactyl-panel
3. Location & Node im Panel anlegen
-
Logge dich im Panel unter
https://panel.orbis-craft.deein. -
Gehe unten links auf das Zahnrad (Admin Control Panel).
-
Locations:
- Klicke auf Locations ➔ Create New.
- Short Code:
main(oder z. B.germany) - Description:
Hauptserver - Klicke auf Create.
-
Nodes:
- Klicke auf Nodes ➔ Create New.
- Name:
Node-01 - Location:
main - FQDN:
gameserver.orbis-craft.de - Communicate Over SSL:
Use SSL Connection - Behind Proxy:
Behind HTTP Proxy(da Nginx Proxy Manager davor liegt) - Daemon Port:
443(da Nginx Proxy Manager die Anfragen auf dem HTTPS-Standardport annimmt) - Memory & Disk: Trage die Ressourcen deines Dedicated Servers ein (in MB).
- Klicke auf Create Node.
4. Configuration (config.yml) einrichten
-
Gehe in der neu erstellten Node auf den Reiter Configuration.
-
Kopiere den generierten YAML-Inhalt.
-
Erstelle die Konfigurationsdatei auf dem Host:
nano /etc/pterodactyl/config.yml
-
Füge den Inhalt ein.
-
Wichtige Anpassungen in der
config.yml:- Docker-Subnetz anpassen: Ergänze bzw. passe den Bereich
docker: an, um Netzwerkkonflikte (Docker Pool overlaps) zu vermeiden. - SSL in Wings deaktivieren: Da Nginx Proxy Manager die SSL-Verschlüsselung übernimmt, setze
ssl.enabledunterapiauf false.
- Docker-Subnetz anpassen: Ergänze bzw. passe den Bereich
Deine config.yml sollte in diesen Blöcken exakt so strukturiert sein (auf Leerzeichen achten!):
docker:
network:
name: pterodactyl0
driver: bridge
interfaces:
v4:
subnet: 172.28.0.0/16
gateway: 172.28.0.1
dns:
- 1.1.1.1
- 1.0.0.1
ispn: false
network_mode: pterodactyl0
is_internal: false
enable_icc: true
network_mtu: 1500
api:
host: 0.0.0.0
port: 8081
ssl:
enabled: false
upload_limit: 100
Speichere die Datei mit Strg+O, Enter, Strg+X.
5. Docker Compose für Wings erstellen
Erstelle im Ordner /opt/containers/pterodactyl/wings die docker-compose.yml:
cat << 'EOF' > docker-compose.yml
services:
wings:
image: ghcr.io/pterodactyl/wings:latest
container_name: pterodactyl-wings
restart: unless-stopped
networks:
- proxy-net
ports:
- "2022:2022" # SFTP Port für Server-Dateien
- "8081:8081" # Wings API Port
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/containers:/var/lib/docker/containers
- /etc/pterodactyl:/etc/pterodactyl
- /var/lib/pterodactyl:/var/lib/pterodactyl
- /tmp/pterodactyl:/tmp/pterodactyl
- /etc/ssl/certs:/etc/ssl/certs:ro
networks:
proxy-net:
external: true
EOF
6. Firewall-Freigaben (UFW)
Damit SFTP und die API erreichbar sind, schalte die benötigten Ports in der Firewall frei:
sudo ufw allow 2022/tcp comment 'Pterodactyl SFTP'
sudo ufw allow 8081/tcp comment 'Pterodactyl Wings API'
7. Wings starten & testen
- Wings-Container starten:
docker compose up -d
- Logs prüfen:
docker logs -f pterodactyl-wings
Achte im Log auf folgende Erfolgsmeldungen:
- `sftp server listening for connections listen=0.0.0.0:2022`
- Keine FATAL-Fehler bezüglich SSL oder Docker-Pools.
8. Reverse Proxy im Nginx Proxy Manager (NPM) anlegen
-
Logge dich in Nginx Proxy Manager ein und erstelle einen neuen Proxy Host:
- Domain Names:
gameserver.orbis-craft.de - Scheme:
http - Forward Hostname / IP:
172.17.0.1(oder Container-Namepterodactyl-wings) - Forward Port:
8081 - Block Common Exploits:
Aktivieren - Websockets Support: Aktivieren (essentiell für die Server-Konsole)
- Domain Names:
-
SSL Tab:
- SSL Certificate:
Request a new SSL Certificate Force SSL: Aktivieren
- SSL Certificate:
-
Klicke auf Save.
9. Status-Checklist
- [ ]
DB_SSL=falseim Panel gesetzt und Cache geleert. - [ ] Ordner
/etc/pterodactylangelegt. - [ ] Location & Node im Pterodactyl-Panel erstellt (Daemon Port
443, Behind Proxy:Yes). - [ ]
config.ymlangepasst (Subnetz172.28.0.0/16&ssl.enabled: false). - [ ] Ports
2022und8081in der UFW freigegeben. - [ ]
docker-compose.ymlfür Wings erstellt und improxy-netgestartet. - [ ] Proxy Host in NPM eingerichtet (
http://pterodactyl-wings:8081mit SSL & Websockets). - [ ] In der Node-Übersicht im Panel leuchtet das Herz-Symbol Grün.