Pterodactyl is split into two programs that never share a machine's job. The Panel is a PHP/Laravel web application (the thing admins and users open in a browser, usually on port 443). It stores every record, renders the interface, and issues commands, but it never runs a single game server itself.
Wings is a small Go daemon installed on each game node. It listens on port 8080 and does the physical work: creating Docker containers, streaming console output, writing files, and enforcing memory and CPU limits.
The rule of thumb is simple: the Panel decides, Wings does.
| Job | Panel | Wings |
|---|---|---|
| Stores users, servers, permissions | yes | no |
| Renders the web UI and API | yes | no |
| Creates Docker containers | no | yes |
| Streams the live console | no | yes |
| Enforces memory / CPU limits | no | yes |
Most "my server will not start" tickets are really a broken Panel-to-Wings link, not a game problem. Knowing which half owns which job tells you where to look first.
