In dieser Anleitung zeige ich euch, wie ihr Pterodactyl mittels Docker und Traefik bereitstellen könnt. Bei Pterodactyl handelt es sich um einen open source Gameserver. Dieser ermöglicht euch die einfache Bereitstellung von Gameservern verschiedener Spiele.
Datum | Änderungen |
30.12.2022 | Erstellung dieser Anleitung |
31.12.2022 | Docker Netzwerk “wings” entfernt. Kapitel 0.2 hinzugefügt |
10.01.2023 | Kapitel 3.4.1 hinzugefügt. Link zu Valheim Gameserver hinzugefügt |
29.05.2023 | Anpassung an neue Traefik Anleitung |
01.04.2025 | Anpassung an neue Traefik Anleitung, Kapitel 2.3 hinzugefügt, Kapitel 5 hinzugefügt |
0.1 Was kann Pterodactyl?
Pterodactyl unterstützt viele Spiele. Offiziell werden folgende Spiele durch den Hersteller selbst unterstützt:
- Minecraft — including Spigot, Sponge, Bungeecord, Waterfall, and more
- Rust
- Terraria
- Teamspeak
- Mumble
- Team Fortress 2
- Counter Strike: Global Offensive
- Garry’s Mod
- ARK: Survival Evolved
Daneben gibt es noch eine Reiher weiterer Spiele, welche durch die Community hinzugefügt wurden. Hier ein paar Beispiele:
- Factorio
- San Andreas: MP
- Pocketmine MP
- Squad
- FiveM
- Xonotic
- Discord ATLBot
Hier findet ihr die komplette Liste.
0.2 Wie ist Pterodactyl aufgebaut?
Pterodactyl funktioniert grundsätzlich so, dass es ein Panel gibt. Dies dient zur Anzeige / Verwaltung (WebGui) der einzelnen Server / Nodes. Nodes sind einzelne vServer / Root Server auf denen Pterodactyl Wings installiert ist. Es ist möglich Wings auf den selben Server wie das Panel zu installieren. Wings kann aber auch auf beliebig vielen anderen vServer / Root Servern installiert werden. Bei einem “Server” handelt es sich um einen “Gameserver”, welcher dann ein einzelnes Spiel (z.B. Minecraft) bereitstellt.
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik V3 Installation, Konfiguration und CrowdSec-Security
2. Pterodactyl Panel installieren und einrichten
Das Panel dient uns später als Webinterface zum Verwalten unserer Server.
2.1 Verzeichnis anlegen
Im ersten Schritt legen wir uns ein Verzeichnis an.
mkdir -p /opt/containers/pterodactyl
Bei diesem Inhalt handelt es sich um exklusiven Content für Community Plus Mitglieder und Supporter.
Bitte logge dich mit deinem Account ein um den Inhalt zu sehen.
4. Gameserver bereitstellen
Nun ist euer Pterodactyl Server bereit, um Gameserver bereitzustellen. Hier verlinke ich euch einige Anleitungen zur Erstellung der einzelnen Gameserver.
5. Beispiel Teamspeak 3 Server bereitstellen
Nun wollen wir exemplarisch einen Teamspeak 3 Server bereitstellen. Dazu klickt ihr auf “Servers”.
Anschließend auf “Create new”.
Nun wählt ihr einen Namen und den Eigentümer des Servers.
Anschließend geben wir bei Memory und Discspace “0” ein. Dies bedeutet, dass der Server unendlich Speicher und RAM hat.
Nun wählen wir nur noch Teamspeak aus:
Anschließend wird unser Server bereits installiert und gestartet:
Klickt nun auf dieses Symbol:
Jetzt seht ihr die Server Konsole. Hier findet ihr auch den Admin Token.
Hallo miteinander,
ich noch mal.
Ich habe nun ein Problem mit der Erreichbarkeit meines Minecraft- und jetzt neu auch meines Enshrouded-Servers. Ist nichts dringliches per se, da ich die Spiele nicht aktiv spiele und nun eher am ausprobieren und “basteln” bin, wäre aber cool, wenn ich in Zukunft wüsste an welchen Stellschrauben ich drehen muss um solche Probleme in den Griff zu bekommen.
Den Valheim-Server erreiche ich via meiner öffentlichen IP+Allokiertem Port, sodass sich auch Freunde von außerhalb draufschalten können.
Bei Minecraft/ Enshrouded erreiche ich den Server aber nur über meine lokale IP+Port, hat einer eine Idee woran das liegt und wie man das korrigieren kann?
Bin soweit, dass ich weiß das Valhiem UDP nutzt und Minecraft sowie Enshrouded TCP, hat es evtl. etwas damit zu tun?
Hallo miteinander,
ich geselle mich mit meinem Fehler zu skyline. Habe alles nach Anleitung gemacht und bin bis zum starten meines Valheim-Servers gekommen, bekomme jetzt aber diese Fehlermeldung:
Error Event [acf5553a-61f9-424f-8ea9-70ca9a7cc00b]: environment/docker: failed to start container: Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint aaec7d09-ec5e-46d0-80c2-7a6a39b6b2ce (1a0a92bad3ec71946a4ee7da51bb17b4792c93aa5950b1476476aca76bab3751): failed to bind host port for 191.133.54.93:2456:172.18.0.2:2456/tcp: cannot assign requested address
Ich bin mit meinem Latein am Ende, kann mir einer aus der Community weiterhelfen?
Hi, hat soweit alles geklappt auch mit V3 Traefik.
Interessant wäre noch wie man im Panel eine DB anlegt.
Ich bin bis zum anlegen gekommen, aber im Gameserver wird diese mit Error angezeigt.
Im Admin Panel ist diese Angelegt und zu sehen.
Moin,
danke für die Anleitung.
Leider bekomme ich beim Setup von Wings immer folgenden Fehler im Panel:
(das Herz wird nicht grün).
Hat jemand eine Idee wie ich weiter verfahren muss?
hallo
Bekomme diesen Fehler liegt es an Cloudflare evt? alles läuft aber sobald ich Teamspeak Server starten will kommt diese Meldung.
error event [f5258e00-0263-4e45-b63b-5634606500ff]: environment/docker: failed to start container: error response from daemon: driver failed programming external connectivity on endpoint 57cb83dd-e7b7-4cc7-86b5-ec3f8e615a6e (df4394c5c08803fce8560d3fc4574e64c822fd70f2db2112a7353cfbd37eb6db): error starting userland proxy: listen tcp4 104.21.73.28:27001: bind: cannot assign requested address
bitte um Hilfe 🙂
Servus Christian. Coole anleitung !
Aber ich hab eine frage. Ab Punkt 3 wollt ich den wings auf einen extra server rechner…
Wie soll ich denn den wings server einrichten damit ab punkt 3 Die wings installation und konfiguration auch läuft?
grüße aus bayern Schönes wochenenede noch 🙂
Hey Christian,
danke für die Anleitung. Funktioniert soweit. Ich habe aber ein Problem:
Bei den meisten Anleitungen hier findet eigentlich alles in /opt/containers statt. Jeder container hat seinen eigenen Ordner und legt seine files ausschließlich dort ab.
In dieser Anleitung schreiben wir aber in all diese Ordner auf dem host system:
– “/var/lib/docker/containers/:/var/lib/docker/containers/”
– “/etc/pterodactyl/:/etc/pterodactyl/”
– “/var/lib/pterodactyl/:/var/lib/pterodactyl/”
– “/var/log/pterodactyl/:/var/log/pterodactyl/”
– “/tmp/pterodactyl/:/tmp/pterodactyl/”
– “/etc/ssl/certs:/etc/ssl/certs:ro”
Meine Backupstrategie ist das ich immer einfach alles in /opt/conatiners sichere. Bei einem restore setze ich das system neu auf, kopiere alle Ordner zurück und starte die Container neu. Das funktioniert mit dieser Anleitung nicht da wir hier unterschiedliche Ordner im Hostsystem nutzen.
Meine Frage: Wie konfiguriere ich das ganze so, dass pterodactyl und pterodactyl-wings in ihren jeweiligen Ordnern bleiben?
Ich habe schonmal versucht die volumes einfach in die jeweiligen container zu mounten (zb: – “./etc/pterodactyl/:/etc/pterodactyl/”) aber irgendwie funktioniert dann der ganze part mit der config.yml dann nicht mehr.
Ich hoffe das ist verständlich. Danke nochmal für all die tollen Anleitungen, hat mir sehr geholfen bisher =)
Bekomme leider bei Punkt 3.4, nach dem Start des Wings-Containers, folgende Fehlermeldung wenn ich via
docker-compose logs -f
in den Wings-Container schaue:Direkt vorher im Log steht
Er scheint hier also ein neues Netzwerk anlegen zu wollen, welches mit einem meiner anderen Docker-Netzwerke kollidiert.
Edit: Nach einiger Suche bin ich in Discord über die Default Config des Wings-Interfaces gestolpert. Diese kann der config.yml in /etc/pterodactyl hinzugefügt und die IPs entsprechend geändert werden um ein Interface mit einer bestimmten Range zu erstellen. In meinem Fall habe ich 172.18.x.x zu 172.22.x.x geändert.
docker:
network:
interface: 172.18.0.1
dns:
– 1.1.1.1
– 1.0.0.1
name: pterodactyl_nw
ispn: false
driver: bridge
network_mode: pterodactyl_nw
is_internal: false
enable_icc: true
interfaces:
v4:
subnet: 172.18.0.0/16
gateway: 172.18.0.1
v6:
subnet: fdba:17c8:6c94::/64
gateway: fdba:17c8:6c94::1011
domainname: “”
registries: {}
tmpfs_size: 100