Pterodactyl is the panel most self-hosted game communities settle on: a web UI for creating servers, a real permissions model, and a separate daemon that runs the containers. Running it yourself means two pieces of software trusting each other over the network, on a machine where every additional game server is its own line item of RAM.Pterodactyl ist das Panel, auf das sich die meisten selbst gehosteten Gaming-Communities einigen: eine Web-UI zum Erstellen von Servern, ein echtes Berechtigungsmodell und ein separater Daemon, der die Container ausführt. Es selbst zu betreiben bedeutet, dass zwei Stück Software sich übers Netzwerk gegenseitig vertrauen, auf einer Maschine, auf der jeder zusätzliche Gameserver sein eigener RAM-Posten ist.
Pterodactyl ships as two separate projects that talk to each other over HTTPS. The Panel is a Laravel (PHP) web application backed by MariaDB and Redis, served through nginx — it is where you create users, servers, and allocations, and it never touches a game process directly. Wings is the daemon that does the real work: it reads instructions from the Panel and starts, stops, and manages each game server as its own Docker container. For a small setup, both live on the same VPS; larger communities split Wings onto separate "nodes" the Panel only talks to over the network, but that is not something you need to plan for on your first box.Pterodactyl besteht aus zwei getrennten Projekten, die über HTTPS miteinander sprechen. Das Panel ist eine Laravel-(PHP-)Webanwendung mit MariaDB und Redis im Hintergrund, ausgeliefert über nginx — hier legst du Nutzer, Server und Allocations an, und es fasst nie direkt einen Gameprozess an. Wings ist der Daemon, der die eigentliche Arbeit macht: Er liest Anweisungen vom Panel und startet, stoppt und verwaltet jeden Gameserver als eigenen Docker-Container. Bei einem kleinen Setup laufen beide auf demselben VPS; größere Communities verteilen Wings auf separate „Nodes“, mit denen das Panel nur übers Netzwerk spricht — das musst du für deine erste Maschine aber nicht einplanen.
Follow the official install docs for both pieces rather than a copied command list here — Pterodactyl's steps change with PHP and MariaDB version requirements, and a guide pinning exact versions goes stale fast. Start with the Pterodactyl Panel installation docs, then the Wings installation docs. Both walk the same shape: add the PHP repository for your Ubuntu release, install PHP, MariaDB (or MySQL), Redis, and nginx, unpack the Panel release archive and run its setup commands, then install Docker and Wings separately.Folge für beide Teile der offiziellen Installationsdokumentation statt einer hier kopierten Befehlsliste — Pterodactyls Schritte ändern sich mit den Versionsanforderungen an PHP und MariaDB, und eine Anleitung, die exakte Versionen festnagelt, veraltet schnell. Starte mit der Pterodactyl-Panel-Installationsdoku, dann der Wings-Installationsdoku. Beide folgen demselben Muster: das PHP-Repository für deine Ubuntu-Version hinzufügen, PHP, MariaDB (oder MySQL), Redis und nginx installieren, das Panel-Release-Archiv entpacken und dessen Setup-Befehle ausführen, dann Docker und Wings separat installieren.
It is easy to assume Docker belongs to "the game server stuff" and forget the Panel needs nothing from it — the Panel is a normal PHP web app. Wings owns the Docker daemon on the host, since it creates and destroys containers on every server start, stop, and reinstall. Install Docker Engine from Docker's own apt repository, not Ubuntu's docker.io package, so you get current releases:Es liegt nahe anzunehmen, Docker gehöre zum „Gameserver-Kram“, und zu vergessen, dass das Panel nichts davon braucht — das Panel ist eine ganz normale PHP-Webanwendung. Wings besitzt den Docker-Daemon auf dem Host, weil es bei jedem Serverstart, -stopp und jeder Neuinstallation Container erzeugt und wieder zerstört. Installiere die Docker Engine aus Dockers eigenem apt-Repository statt aus Ubuntus docker.io-Paket, damit du aktuelle Releases bekommst:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
Wings runs as its own systemd service once installed, separate from anything docker compose would manage — Wings generates and runs the game containers on its own from the images each "egg" specifies; you are not writing a compose file for them.Nach der Installation läuft Wings als eigener systemd-Dienst, getrennt von allem, was docker compose verwalten würde — Wings erzeugt und betreibt die Gamecontainer selbstständig anhand der Images, die jedes „Egg“ vorgibt; du schreibst dafür keine Compose-Datei.
Put nginx (or a reverse proxy in front of it) in charge of TLS rather than exposing the Panel's PHP-FPM socket directly. If you already run Caddy for other services on the box, a single block in front of the Panel's document root works the same as for any other PHP app — the Panel's own install docs, linked above, include the exact nginx and Apache configs to adapt, including the PHP-FPM socket path Panel expects. Get a real certificate on the Panel's hostname before sending anyone a login link; a self-signed certificate breaks the Panel's own JavaScript in ways that are unpleasant to debug.Überlasse TLS nginx (oder einem Reverse-Proxy davor), statt den PHP-FPM-Socket des Panels direkt offenzulegen. Betreibst du auf der Maschine bereits Caddy für andere Dienste, funktioniert ein einzelner Block vor dem Document-Root des Panels genauso wie bei jeder anderen PHP-App — die oben verlinkte Installationsdoku des Panels enthält die genauen nginx- und Apache-Konfigurationen zum Anpassen, einschließlich des PHP-FPM-Socket-Pfads, den das Panel erwartet. Besorg dir ein echtes Zertifikat für den Hostnamen des Panels, bevor du jemandem einen Login-Link schickst; ein selbstsigniertes Zertifikat bricht das eigene JavaScript des Panels auf eine Weise, die sich unangenehm debuggen lässt.
Wings also serves its own small HTTPS API, on a different port, that the Panel calls to relay console output and file-manager actions to your browser in real time. That endpoint needs a certificate too — Wings can generate one itself against the same hostname, or use one you already manage. Either way, both services need DNS pointed at the box before either is fully configured.Wings stellt außerdem seine eigene kleine HTTPS-API auf einem anderen Port bereit, die das Panel aufruft, um Konsolenausgaben und Dateimanager-Aktionen in Echtzeit an deinen Browser weiterzureichen. Auch dieser Endpunkt braucht ein Zertifikat — Wings kann selbst eines für denselben Hostnamen erzeugen, oder du verwendest eines, das du bereits verwaltest. In jedem Fall müssen bei beiden Diensten die DNS-Einträge auf die Maschine zeigen, bevor einer der beiden vollständig konfiguriert ist.
Once Wings is installed, you create a "node" entry in the Panel's admin UI, which hands back a config blob to paste into Wings' own config file. The node entry sets the memory and disk Wings may allocate across every server on this machine — set it below the VPS's real RAM and disk, not up to it, so the OS, MariaDB, Redis, and nginx keep their own headroom.Sobald Wings installiert ist, legst du in der Admin-UI des Panels einen „Node“-Eintrag an, der dir einen Konfigurationsblock zurückgibt, den du in Wings' eigene Konfigurationsdatei einfügst. Der Node-Eintrag legt fest, wie viel Speicher und Plattenplatz Wings über alle Server auf dieser Maschine hinweg zuteilen darf — setze ihn unter das reale RAM und die reale Plattenkapazität des VPS, nicht bis an die Grenze, damit OS, MariaDB, Redis und nginx ihren eigenen Spielraum behalten.
The part that actually needs planning is allocations — the IP-and-port pairs a game server may listen on. Each server gets one or more allocations from a pool you define on the node ahead of time; most games need a single UDP or TCP port, a handful want two or three. Decide roughly how many concurrent servers you expect and add that many allocations up front — a server with no free allocation on its node cannot be created until you do.Der Teil, der tatsächlich Planung braucht, sind die Allocations — die IP- und Port-Paare, auf denen ein Gameserver lauschen darf. Jeder Server bekommt eine oder mehrere Allocations aus einem Pool, den du vorab auf der Node definierst; die meisten Spiele brauchen einen einzigen UDP- oder TCP-Port, eine Handvoll will zwei oder drei. Entscheide grob, wie viele gleichzeitige Server du erwartest, und lege entsprechend viele Allocations im Voraus an — ein Server ohne freie Allocation auf seiner Node kann erst erstellt werden, wenn du das nachholst.
This is the part that catches people who ran Pterodactyl before on a home server or a provider with a real public IP. Every allocation you hand to a game server needs to be reachable from the internet on that port — Wings does no port forwarding of its own, it just binds the port inside the container's network namespace and expects the host's address to answer on it externally too.Das ist der Teil, der Leute erwischt, die Pterodactyl vorher auf einem Heimserver oder bei einem Provider mit echter öffentlicher IP betrieben haben. Jede Allocation, die du einem Gameserver gibst, muss auf diesem Port aus dem Internet erreichbar sein — Wings betreibt keine eigene Portweiterleitung, es bindet den Port nur innerhalb des Netzwerk-Namespace des Containers und erwartet, dass die Adresse des Hosts auch von außen darauf antwortet.
A VPS on NAT IPv4 gives you a shared address with a small, fixed set of forwarded ports rather than the whole range to yourself. Whether that fixed set already covers HTTPS, Wings' own API port, and SFTP depends on your plan — some hand you enough for all three by default, some don't. Check what your plan forwards before you count on it, because it directly caps how many game server allocations you can expose on top of those, since each needs its own forwarded port too. Run out of forwarded ports and the next server you create has a working container with no way for players to reach it, which looks like a firewall problem until you check what your plan actually forwards.Ein VPS mit NAT-IPv4 gibt dir eine geteilte Adresse mit einer kleinen, festen Menge weitergeleiteter Ports statt des gesamten Bereichs für dich allein. Ob diese feste Menge schon HTTPS, Wings' eigenen API-Port und SFTP abdeckt, hängt von deinem Plan ab — manche geben dir standardmäßig genug für alle drei, manche nicht. Prüfe, was dein Plan weiterleitet, bevor du dich darauf verlässt, denn das begrenzt direkt, wie viele Gameserver-Allocations du zusätzlich dazu offenlegen kannst, da jede ebenfalls ihren eigenen weitergeleiteten Port braucht. Gehen dir die weitergeleiteten Ports aus, hat der nächste Server, den du erstellst, einen funktionierenden Container, den Spieler aber nicht erreichen können — das sieht nach einem Firewall-Problem aus, bis du prüfst, was dein Plan tatsächlich weiterleitet.
Two honest ways through it:Zwei ehrliche Wege da hindurch:
Read NAT IPv4 vs a dedicated IP and NAT IPv4, ports and forwarding before sizing a node around a port count you have not actually confirmed.Lies NAT IPv4 vs. dedizierte IP und NAT IPv4, Ports und Weiterleitung, bevor du eine Node um eine Portzahl herum dimensionierst, die du nicht wirklich bestätigt hast.
Pterodactyl keeps two kinds of state that must be backed up separately, because neither alone is enough to rebuild the panel. The MariaDB database holds every user, server definition, node, allocation, and egg configuration — lose it and the Panel has no idea what it is supposed to be running, even if the game data is untouched. run a database on your VPS covers routine dump-and-copy-off-box mechanics for MariaDB itself.Pterodactyl hält zwei Arten von Zustand vor, die getrennt gesichert werden müssen, weil keine der beiden allein reicht, um das Panel wiederherzustellen. Die MariaDB-Datenbank enthält jeden Nutzer, jede Server-Definition, Node, Allocation und Egg-Konfiguration — verlierst du sie, weiß das Panel nicht mehr, was es eigentlich betreiben soll, selbst wenn die Gamedaten unangetastet sind. Eine Datenbank auf deinem VPS betreiben behandelt die routinemäßige Mechanik aus Dump und Kopieren vom Server herunter für MariaDB selbst.
The game data lives under /var/lib/pterodactyl/volumes/, one directory per server, mounted straight into that server's container — the actual world saves, configs, and plugin data a player notices missing. A database backup with no volumes backup restores a Panel that remembers a server existed but has nothing left to serve; a volumes backup with no database backup is a pile of directories with no record of whose data any of it is.Die Gamedaten liegen unter /var/lib/pterodactyl/volumes/, ein Verzeichnis pro Server, direkt in den Container dieses Servers eingehängt — die tatsächlichen Weltspeicherstände, Configs und Plugin-Daten, deren Fehlen ein Spieler bemerkt. Ein Datenbank-Backup ohne Volumes-Backup stellt ein Panel wieder her, das sich erinnert, dass ein Server existierte, aber nichts mehr zum Ausliefern hat; ein Volumes-Backup ohne Datenbank-Backup ist ein Haufen Verzeichnisse ohne jede Aufzeichnung, wessen Daten das überhaupt sind.
Back up both together, off the VPS, on the same schedule — a snapshot of /var/lib/pterodactyl/volumes/ alongside a mysqldump of the Panel's database, copied somewhere that is not this machine's own disk. back up your VPS covers what counts as actually off-machine.Sichere beide zusammen, außerhalb des VPS, nach demselben Zeitplan — einen Snapshot von /var/lib/pterodactyl/volumes/ zusammen mit einem mysqldump der Panel-Datenbank, kopiert an einen Ort, der nicht die eigene Platte dieser Maschine ist. Backup deines VPS beschreibt, was tatsächlich als abseits der Maschine zählt.
The Panel's own footprint is modest — PHP-FPM, MariaDB, Redis, and nginx idling together comfortably inside a couple hundred megabytes. What consumes the rest of the box is Wings and the game containers it starts, and that scales linearly: each additional game server needs its own slice of RAM on top of whatever is already running, the same way each additional VM on a hypervisor needs its own memory, not a share of what is already allocated.Der Fußabdruck des Panels selbst ist bescheiden — PHP-FPM, MariaDB, Redis und nginx laufen zusammen bequem im Leerlauf innerhalb weniger hundert Megabyte. Was den Rest der Maschine verbraucht, sind Wings und die Gamecontainer, die es startet, und das skaliert linear: jeder zusätzliche Gameserver braucht seine eigene RAM-Scheibe obendrauf zu dem, was bereits läuft, genauso wie jede zusätzliche VM auf einem Hypervisor ihren eigenen Speicher braucht, nicht einen Anteil an dem, was bereits zugeteilt ist.
A Standard 2 vCPU / 4 GiB / 80 GB VPS is a realistic floor: the Panel stack, Wings itself, and one small game server — a lightly modded Minecraft server or a small Source-engine dedicated server — fit with headroom to spare. Add a second or third server of any real size and 4 GiB stops being comfortable fast, because you are sizing for the sum of every game server's own recommended minimum plus the Panel's baseline on top, not the panel alone. That is why most Pterodactyl setups that outgrow "one server for testing" land on Pro (4 vCPU / 8 GiB / 120 GB) or Elite (6 vCPU / 16 GiB / 200 GB) — several servers' RAM requirements stacked on one host add up quickly. Size the node's allocated memory in Wings to match whichever tier you are on, with the same headroom for the OS and database that the NAT section above assumes for ports.Ein Standard-VPS mit 2 vCPU / 4 GiB / 80 GB ist eine realistische Untergrenze: der Panel-Stack, Wings selbst und ein kleiner Gameserver — ein leicht gemoddeter Minecraft-Server oder ein kleiner dedizierter Source-Engine-Server — passen mit Spielraum übrig. Fügst du einen zweiten oder dritten Server mit nennenswerter Größe hinzu, hört 4 GiB schnell auf, komfortabel zu sein, weil du für die Summe aus dem jeweils empfohlenen Minimum jedes Gameservers plus der Grundlast des Panels obendrauf dimensionierst, nicht für das Panel allein. Deshalb landen die meisten Pterodactyl-Setups, die „ein Server zum Testen“ hinter sich lassen, bei Pro (4 vCPU / 8 GiB / 120 GB) oder Elite (6 vCPU / 16 GiB / 200 GB) — die RAM-Anforderungen mehrerer Server addieren sich auf einem einzigen Host schnell. Dimensioniere den zugeteilten Speicher der Node in Wings passend zu deiner Stufe, mit demselben Spielraum für OS und Datenbank, den der NAT-Abschnitt oben für Ports voraussetzt.
The Panel and Wings version independently, and Pterodactyl's release notes call out when a Wings version requires a minimum Panel version or the reverse — check that note before updating either on its own. The Panel's upgrade documentation covers pulling a new release, running its database migrations, and the maintenance-mode step that keeps users out mid-upgrade; take the database backup above immediately before running it, since a migration you can roll back from has a backup minutes old, not one reconstructed after the fact.Panel und Wings versionieren unabhängig voneinander, und Pterodactyls Release Notes weisen darauf hin, wenn eine Wings-Version eine Mindest-Panel-Version voraussetzt oder umgekehrt — prüfe diesen Hinweis, bevor du eines von beiden für sich aktualisierst. Die Upgrade-Dokumentation des Panels behandelt das Ziehen eines neuen Releases, das Ausführen seiner Datenbank-Migrationen und den Wartungsmodus-Schritt, der Nutzer während des Upgrades draußen hält; mach das oben genannte Datenbank-Backup unmittelbar bevor du es ausführst, denn eine Migration, von der du zurückrollen kannst, ist eine, bei der das Backup wenige Minuten alt ist, nicht eines, das du hinterher rekonstruierst.
Full disclosure: this is what we sell. A Standard 2 vCPU / 4 GiB / 80 GB box runs the panel plus one small game server; every additional server needs its own RAM on top of that, which is why most real Pterodactyl setups end up on Pro (4 vCPU / 8 GiB / 120 GB) or Elite (6 vCPU / 16 GiB / 200 GB).Zur vollen Transparenz: Das ist, was wir verkaufen. Eine Standard-Maschine mit 2 vCPU / 4 GiB / 80 GB betreibt das Panel plus einen kleinen Gameserver; jeder zusätzliche Server braucht sein eigenes RAM obendrauf, weshalb die meisten echten Pterodactyl-Setups bei Pro (4 vCPU / 8 GiB / 120 GB) oder Elite (6 vCPU / 16 GiB / 200 GB) landen.
Linux KVM VPS — EUR 4.99 to EUR 59.99 a month, on our own single-tenant bare metal in Dallas, TX and Charlotte, NC. Full hardware virtualisation (KVM), your own kernel, full root. Six tiers, vps-starter to vps-ultra. Starter is 1 vCPU, 1 GiB RAM, 25 GB disk.Linux-KVM-VPS — 4,99 bis 59,99 EUR im Monat, auf unserer eigenen Single-Tenant-Bare-Metal-Hardware in Dallas, TX und Charlotte, NC. Vollständige Hardware-Virtualisierung (KVM), eigener Kernel, volles Root. Sechs Tarife, vps-starter bis vps-ultra. Starter hat 1 vCPU, 1 GiB RAM, 25 GB Speicher.
You order in the shop, pay by card (Stripe) or SEPA bank transfer, and your login details are e-mailed to you once the service is set up. Support is e-mail, run by one person, with no guaranteed response time. All prices are final totals under the German small-business rule (§19 UStG); no VAT is added or shown.Du bestellst im Shop, zahlst per Karte (Stripe) oder SEPA-Überweisung, und deine Zugangsdaten werden dir per E-Mail zugeschickt, sobald der Dienst eingerichtet ist. Support läuft per E-Mail, von einer einzelnen Person betrieben, ohne garantierte Reaktionszeit. Alle Preise sind Endpreise. Gemäß § 19 UStG wird keine Umsatzsteuer ausgewiesen.
Order vps-standard → · Linux KVM VPS overviewvps-standard bestellen → · Übersicht Linux-KVM-VPS
Written by the person who runs overnight.host: a small, honest hosting company on dedicated bare metal — Linux VPS, game servers, web hosting. Live status at up.overnight.host.Geschrieben von der Person, die overnight.host betreibt: ein kleines, ehrliches Hosting-Unternehmen auf dedizierter Bare-Metal-Hardware — Linux-VPS, Gameserver, Webhosting. Live-Status unter up.overnight.host.
No, not for a small setup. Panel and Wings commonly run on the same machine — Wings just needs Docker and network access to the Panel's API, which localhost satisfies. Splitting them onto separate nodes only matters once enough game servers make the machine's CPU or RAM the bottleneck.Nein, nicht für ein kleines Setup. Panel und Wings laufen üblicherweise auf derselben Maschine — Wings braucht lediglich Docker und Netzwerkzugriff auf die API des Panels, was localhost erfüllt. Sie auf separate Nodes aufzuteilen, wird erst relevant, sobald genug Gameserver die CPU oder das RAM der Maschine zum Engpass machen.
No. Wings' entire model is that every game server is its own Docker container, built from the image its egg specifies — that is how it isolates one server's crash or resource spike from every other server on the node.Nein. Wings' gesamtes Modell beruht darauf, dass jeder Gameserver sein eigener Docker-Container ist, gebaut aus dem Image, das sein Egg vorgibt — so isoliert es den Absturz oder die Ressourcenspitze eines Servers von jedem anderen Server auf der Node.
Usually just one, the main game port. A second matters only if you turn on the query protocol, or run a proxy like Velocity in front of multiple backends. Confirm the exact port list for whatever egg you are using rather than assuming — some games genuinely want two or three.Meist nur eine, den Haupt-Gameport. Eine zweite spielt nur eine Rolle, wenn du das Query-Protokoll einschaltest oder einen Proxy wie Velocity vor mehrere Backends stellst. Bestätige die genaue Portliste für das jeweilige Egg, das du nutzt, statt es anzunehmen — manche Spiele wollen tatsächlich zwei oder drei.
No. NAT IPv4 can work fine for a small setup, but whether the Panel, Wings' API, SFTP, and a game-server allocation all fit inside what your plan forwards by default depends on the plan — confirm the port list rather than assuming it. It only becomes a real constraint once you try to expose more game servers than you have forwarded ports for.Nein. NAT-IPv4 kann für ein kleines Setup gut funktionieren, aber ob Panel, Wings-API, SFTP und eine Gameserver-Allocation zusammen in das passen, was dein Plan standardmäßig weiterleitet, hängt vom Plan ab — bestätige die Portliste, statt sie anzunehmen. Zu einer echten Einschränkung wird das erst, wenn du mehr Gameserver offenlegen willst, als du weitergeleitete Ports hast.
A restore from database-only gives you a Panel that lists every server, user, and node exactly as before, but each server's directory under /var/lib/pterodactyl/volumes/ is empty — Wings starts the container and the game boots as brand new, no world, no saves, nothing a player would recognize. The database tells Pterodactyl what should exist; the volumes are what actually existed.Eine Wiederherstellung nur aus der Datenbank gibt dir ein Panel, das jeden Server, Nutzer und jede Node exakt wie vorher auflistet, aber das Verzeichnis jedes Servers unter /var/lib/pterodactyl/volumes/ ist leer — Wings startet den Container, und das Spiel bootet brandneu, keine Welt, keine Spielstände, nichts, was ein Spieler wiedererkennen würde. Die Datenbank sagt Pterodactyl, was existieren soll; die Volumes sind das, was tatsächlich existierte.
Prices are final totals; no VAT is shown (§19 UStG). Need something the shop does not list? Email us for a written offer.Alle Preise sind Endpreise ohne ausgewiesene USt. (§19 UStG). Du brauchst etwas, das nicht im Shop steht? Schreib uns für ein schriftliches Angebot.
Order now →Jetzt bestellen → Request a custom configIndividuelle Konfiguration anfragen