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 |
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 V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
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.
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