Pterodactyl

Free game server management panel

Game Servers ★ 9.3k stars Hard setup MIT

Pterodactyl is a free, open-source game server management panel. It runs game servers in isolated Docker containers and provides a secure, multi-user web interface to manage them.

Key features

  • Docker-isolated game servers
  • Multi-user with permissions
  • Supports dozens of games
  • Resource limits and quotas

Pros & cons

Strengths

  • Secure container isolation
  • Huge supported game library

Trade-offs

  • Complex initial setup
  • Requires daemon plus panel

Pterodactyl replaces

Last reviewed Aug 26, 2026 · 877 words

Pterodactyl is two installs, not one, and its Hard rating comes almost entirely from the seam between them. The Panel is a PHP application that wants nginx, PHP-FPM, MariaDB and Redis; Wings is a Go daemon that talks to Docker and actually runs the game servers. They can share a box, but they authenticate to each other over HTTPS with a token, and the moment a certificate, hostname or firewall rule disagrees you get the red "node is offline" dot that fills the project's support channels. Get the seam right and you have the same panel that commercial game hosts sell access to, for nothing.

Who does what

The Panel is the human side: users with granular permissions, servers, nodes, IP and port allocations, schedules, backups, and the "eggs" that describe how a given game is installed and started. Eggs are what make the supported game library huge; the bundled nests cover Minecraft in its many flavours, Source engine games, Rust, Terraria and a long list of others, and the community maintains hundreds more.

Wings is the machine side. It listens on port 8080 for the Panel's API calls and on 2022 for SFTP into each server's files, creates one Docker container per game server with CPU, RAM, disk and I/O limits, streams the console over a websocket, and takes backups to local disk or S3. The Panel never runs a game itself, which is why you can have one Panel and 5 Wings nodes in 5 different places.

The order of operations that avoids the offline node

Give the Panel a hostname with a valid certificate before creating any node. Wings will refuse to talk to a Panel whose certificate it cannot verify, and browsers will refuse the console websocket if the node's certificate is invalid, so both ends need real TLS even on a LAN. Caddy or Let's Encrypt via certbot handles it.

Then, in the Panel, create the node using its public FQDN, not localhost and not an internal IP, even when Panel and Wings share a machine; the browser connects to Wings directly for the console, so the name has to resolve from the client's side. Copy the generated configuration into /etc/pterodactyl/config.yml on the Wings host, add allocations (IP and port pairs the games will bind to), and start Wings as a system service. Open 8080, 2022 and your game port range in the firewall.

When the dot is still red, the cause is one of four things in my experience: the token was regenerated in the Panel after the config was copied, the node's FQDN does not resolve to the Wings host, port 8080 is blocked, or the certificate does not match the FQDN. Check them in that order.

The RAM is for the games, not the panel

The 2 GB listed as the minimum covers Panel plus Wings plus one small server. Panel and Wings together idle under 1 GB; every game server on top has its own appetite. A modded Minecraft server wants 4 to 8 GB, a Valheim or Rust instance several gigabytes each, so size the Wings host by the games. Wings lets you overallocate memory and disk by a percentage in the node settings, which is useful for servers that are mostly idle and dangerous for ones that are not. Set swap deliberately; the default of none means a container that exceeds its limit is killed rather than slowed.

Security is the reason to bother

Every game server runs in its own container as an unprivileged user with a resource cap, subusers get exactly the permissions you grant (console, files, backups, start and stop), 2FA is available for every account, and API keys are scoped. That is the difference between Pterodactyl and "a screen session on a VPS your friends have SSH to". The container security post explains why isolation is most of the security you will ever get; Pterodactyl is that idea applied to game hosting. Keep the Panel behind a reverse proxy, keep Wings updated alongside it (they are versioned together), and do not expose the Panel's database or Redis.

Crafty is enough if it is only Minecraft

If every server you will ever run is Minecraft, Crafty Controller does the same job in one container with a friendlier install and no node concept. Pterodactyl earns its complexity when you run several games, several nodes or several people with different rights. The rest of the games category is mostly single-game tools; Pterodactyl and its forks are the general-purpose panels.

What I'd do

Panel on a small VM with Caddy and a real domain; Wings on the beefy box with the games, on its own subdomain with its own certificate, even if the two are one machine today. Create the node by FQDN, copy the config once, open 8080 and 2022, then install a vanilla Minecraft egg as the smoke test before anything modded. Enable 2FA on the admin account, give friends subuser access rather than logins, and point backups at an S3 bucket. Budget an evening for the first node; every one after that is 20 minutes.

Compare Pterodactyl

5 head-to-head comparisons.

Similar game servers apps