What is Pterodactyl and what does it do?

Updated

Pterodactyl is a free, open-source game server management panel built with PHP, React, and Go. It runs each game server inside its own isolated Docker container with hard CPU, memory, and disk limits, so one busy server can't drag down the others on the same machine. If you want to host one game or many, manage them from a single web interface, and avoid per-seat licensing fees, it's built for that job. It has been in production since 2015 and is MIT licensed.

What Pterodactyl actually does

At its core, Pterodactyl is a control panel that sits in front of your servers. You use it to:

  • Create and manage game servers from a browser instead of juggling SSH sessions and manual config files.
  • Start, restart, and stop individual servers, and watch live stats like CPU load, memory, disk usage, and network traffic.
  • Isolate every server in a Docker container with enforced resource limits, so a single server can't consume the whole node.
  • Install games from Eggs — portable recipes that bundle a Docker image, a startup command, and configurable variables.
  • Extend the panel through an Extensions SDK that plugs into versioned panel APIs rather than modifying core files.

The panel itself is the front end; a separate component called Wings runs on each node and handles the actual container work.

Isolation: the "noisy neighbours" problem

The site frames this with a simple idea: every server is sealed in its own Docker container with hard CPU, memory, and disk limits. One server can "throw the loudest party on the node" and the rest keep running normally. In the panel's own demo, several servers sit at around 12% load while others sleep, and the counters for "noise complaints" and "evictions" stay at zero.

Practically, this means you can pack multiple game servers onto one machine without one misbehaving server starving the others of resources.

Eggs: how games get installed

An Egg is a portable recipe for a game. It defines:

Part of the Egg What it controls
Docker image The runtime environment the server runs in
Startup command How the server process is launched
Variables Configurable values like memory, version, or jar file

You can grab an Egg from the community library or write your own. The same panel runs every one of them, and the site lists support across a wide range of games and services, including Minecraft, Rust, ARK: Survival, Counter-Strike 2, Garry's Mod, Valheim, Terraria, Palworld, FiveM, Project Zomboid, Discord bots, Teamspeak, SCP: SL, Factorio, and Satisfactory.

A sample Egg for Paper Minecraft shows the structure:

{
  "name": "Paper Minecraft",
  "docker_image": "ghcr.io/pterodactyl/yolks:java_21",
  "startup": "java -Xmx{{SERVER_MEMORY}}M -jar {{JARFILE}}",
  "variables.SERVER_JARFILE": "server.jar",
  "variables.MINECRAFT_VERSION": "latest",
  "features": ["eula", "java_version", "pid_limit"]
}

Security and extensions

  • Authentication: bcrypt password hashing and two-factor authentication (2FA) at login.
  • Scoped tokens: access through Wings is token-scoped rather than open.
  • Container lockdown: servers run in a locked-down Docker container.
  • Extensions: the Extensions SDK lets you add features (SSO, announcements, custom buttons, redirects, dark theme, and more) without forking the panel. Extensions use versioned panel APIs, survive updates, and a broken extension is skipped instead of taking the whole panel down. The demo shows a limit of 5 extensions with "core files touched: 0."

Licensing and cost

Pterodactyl describes itself as truly open source: 100% free, MIT licensed, and developed in the open, with no seats, no feature gates, and no monthly bill. The site does not list any paid tiers or pricing links, so there is no paid edition described in the available material.

Who it's for

  • Weekend realms and small communities that want a clean panel without paying per-seat fees.
  • Larger game hosts running many servers on shared hardware who need isolation between them.
  • Developers who want to extend the panel through APIs rather than patching core files.

If you only ever run a single server and never need a web interface, a panel may be more than you need. If you're managing several servers, or expect to, the container isolation and Egg system are the main reasons to use it.

To get started, the site points to two entry points: install the panel, or join the Discord community.