Pterodactyl Control Panel¶
In this article
- Pterodactyl. Main Features
- Deployment Features
- Getting Started After Pterodactyl Deployment
- Creating a User
- Creating a Location
- Creating a Node
- Configuring Allocations
- Creating a Nest and Adding an Egg
- Creating a Server
- Starting and Configuring the Server
- Performance Check
- Order a Pterodactyl Server the API
Information
Pterodactyl is a free open-source game server management panel. It enables centralized management of servers for Minecraft, CS2, Rust, and 50+ other games via a web interface.
Pterodactyl. Main Features¶
Pterodactyl is a modern game server management solution that combines:
- Support for 50+ games: Provides ready-made templates for quick installation of popular game servers. Automatically configures software, dependencies, and startup parameters, supports game version selection and custom template addition.
- Precise resource management: Controls RAM, CPU, disk space, and priority allocation between servers. Prevents overloads, allocates resources by quotas, and uses SWAP memory for stability.
- Reliable automatic backups: Ensures flexible scheduled backup with data selection (entire server or key files). Stores backups locally or in the cloud (S3, FTP, GDrive) with encryption and instant recovery.
- Efficient multi-server capability: Runs each server in an isolated Docker container. Automatically distributes load across nodes, assigns ports without conflicts, and allows grouping of related servers.
- Flexible multi-user access: Manages permissions through a role-based model (preset + custom roles) with 50+ granular permissions. Supports temporary access, action auditing, and two-factor authentication.
- Real-time management console: Provides full control through a web interface with an interactive terminal (similar to SSH). Includes color formatting, command history, quick action buttons, and event notifications.
- Real-time statistics monitoring: Displays resource usage graphs (CPU, RAM, disk, network) and game metrics (online players, TPS, ping). Allows creating custom dashboards, configuring alerts, and exporting data to CSV.
- Simplified mod/plugin management: Offers a built-in store for automatic mod installation, version and dependency management. Includes a visual config editor with syntax highlighting and update notifications.
- Automatic updates: Ensures uninterrupted system operation. Updates game servers on schedule with test mode and rollback on errors. Updates the control panel with one command (
php artisan p:upgrade), checking compatibility and migrating the database without data loss. Auto-updates Wings daemon, maintaining compatibility with different Linux distributions.
Deployment Features¶
| ID | Name of Software | Compatible OS | VM | BM | VGPU | GPU | Min CPU (Cores) | Min RAM (Gb) | Min HDD/SDD (Gb) | Active |
|---|---|---|---|---|---|---|---|---|---|---|
| 326 | Pterodactyl | Ubuntu 22.04 | + | + | + | + | 1 | 1 | - | ORDER |
Main System Components:¶
| Component | Purpose |
|---|---|
| Panel | Web management interface (PHP/Laravel). Provides admin panel and user interface for server management |
| Wings | Daemon for physical game server startup (Go). Installed separately on machines where game servers will run |
| Database | MariaDB for storing configurations, users, servers, and settings |
| Docker | Containerization platform, required for Wings operation and game server isolation |
Configuration Files¶
| Path | Purpose |
|---|---|
/var/www/pterodactyl/.env | Main Panel settings: database connection, Redis, APP_URL, APP_KEY |
/var/www/pterodactyl/storage/logs/laravel.log | Panel operation logs (application errors, requests) |
/var/log/nginx/pterodactyl.app-error.log | NGINX web server logs for Panel |
/etc/pterodactyl/config.yml | Wings configuration: authorization token, Panel URL, Docker settings. Created during Wings installation |
/var/lib/pterodactyl/volumes/ | Game server data directory: world files, configurations, plugins. Created after Wings installation |
What Is Installed Automatically¶
The playbook automatically installs and configures:
- Pterodactyl Panel - central management panel with web interface;
- MariaDB - database for storing all system data;
- Redis - for caching and task queues;
- NGINX - web server for serving the Panel;
- PHP 8.3 + PHP-FPM - for Laravel application operation;
- Certbot - for automatic SSL certificate acquisition;
- Systemd services - pteroq (queue processing), cron tasks (scheduler).
What Needs to Be Installed Additionally¶
To run game servers, you need:
- Wings - daemon that physically starts and manages game servers in Docker containers
Wings is installed on each machine (node) where game servers are planned to run. This can be the same server where Panel is installed ("all-in-one" configuration) or separate dedicated servers (distributed architecture).
System Requirements¶
For Panel (Control Panel)¶
Minimum requirements:
- Processor: 2+ cores;
- Memory: 2 GB RAM (4 GB recommended for stable operation);
- Disk: 20 GB SSD (40+ GB recommended for logs and backups);
- OS: Ubuntu 22.04 LTS (Jammy) - strictly this version for automatic installation.
Software (installed automatically):
- PHP 8.3 + PHP-FPM;
- MariaDB 10.6+;
- Redis 7.0+;
- NGINX;
- Composer 2;
- Certbot (for SSL);
- Docker (pre-installed in the image).
Network requirements:
- Open ports: 80 (HTTP), 443 (HTTPS);
- Static IP address or domain name (for SSL certificate);
- Stable internet connection.
For Node (Nodes with Game Servers)¶
For 5-10 simultaneous game servers:
- Processor: 4+ cores (6-8 cores recommended for demanding games);
- Memory: 8 GB RAM (12-16 GB recommended depending on games);
- Disk: 50 GB SSD (100+ GB recommended for multiple servers with mods);
- OS: Ubuntu 20.04/22.04, Debian 10/11, CentOS ⅞ (any Linux with Docker support).
- Software:
- Docker (pre-installed in the image);
- Wings (requires installation).
Network requirements:
- Open ports:
- 8080 - Wings API (communication with Panel);
- 2022 - SFTP (file upload to game servers);
- 25565-25665 - game port range (configured individually);
- Stable internet connection with good bandwidth;
- Low latency for comfortable gaming.
"All-in-One" Configuration (Panel + Wings on One Server)¶
For testing or small projects, you can use one server:
- Processor: 4+ cores;
- Memory: 8 GB RAM (minimum 6 GB);
- Disk: 60 GB SSD (100+ GB recommended);
- OS: Ubuntu 22.04 LTS.
In this configuration, one server runs:
- Pterodactyl Panel (web interface);
- Wings (server startup daemon);
- Database and cache;
- Game servers in Docker containers.
Game Resource Recommendations
Approximate requirements per game server:
| Game | RAM | CPU | Disk |
|---|---|---|---|
| Minecraft (Vanilla/Paper) | 2-4 GB | 2+ cores | 5-10 GB |
| Minecraft with mods (Forge/Fabric) | 4-8 GB | 4+ cores | 10-20 GB |
| CS2 / CS:GO | 4-6 GB | 4+ cores | 15-20 GB |
| Rust | 8-12 GB | 4+ cores | 20-30 GB |
| ARK: Survival Evolved | 8-16 GB | 6+ cores | 30-50 GB |
| Terraria | 1-2 GB | 2+ cores | 2-5 GB |
| Valheim | 4-6 GB | 4+ cores | 5-10 GB |
Getting Started After Pterodactyl Deployment¶
After you pay for your order, you will receive a notification to the email you registered with, notifying you that your server is ready to work. It will contain the VPS IP address, as well as a login and password for connecting. Our company's clients manage hardware in the servers and API control panel — Invapi.
Authorization data that can be found in the Info >> Tags tab of the server control panel or in the email can be found:
- Link: in the webpanel tag. To access the admin panel, add
/adminto the main link; - Login:
admin; - Password: sent via email to your address when the server is ready to operate after software deployment.
First Login¶
- Open a web browser and navigate to your Pterodactyl panel address
-
Click
Login:
-
After successful authorization, you will be taken to the main panel page.
-
To access the admin panel, click the
button:
Creating a User¶
- In the left menu of the admin panel, click on the Users section name;
-
Click the
Create Newbutton in the upper right corner:
-
Fill in the required fields:
- Username: username;
- Email: user email address;
- First Name: first name;
- Last Name: last name;
- Password: password (minimum 8 characters, must contain letters of different cases and numbers);
- If necessary, select
Yesin the Administrator line to grant administrator rights; -
Click
Create User:
Creating a Location¶
What is a Location
Location is a logical grouping of nodes by geographical location or purpose. Used for organizing servers, for example: "EU", "US", "Asia", "Production", "Testing". Users don't see locations directly; this is an administrative tool.
- In the left menu, select Locations;
-
Click the
Create Newbutton in the upper right corner:
-
Fill in the fields:
- Short Code: short location code (e.g., "US1", "EU1");
- Description: location description (e.g., "Data center in the USA");
-
Click
Create:
Creating a Node¶
What is a Node
A Node is a physical or virtual server on which game servers are launched via Wings. Each node has its own resources (CPU, RAM, disk) and can serve multiple game servers simultaneously.
Preparation Before Creating a Node¶
Before creating a node, ensure that:
- Docker is installed on the server (pre-installed in HOSTKEY images);
- You have an IP address or domain name for the node;
- Ports 8080 (Wings API) and 2022 (SFTP) will be open in the firewall.
Creating a Node in Panel¶
-
In the left menu of the admin panel, select Nodes;
-
Click the
Create Newbutton in the upper right corner:
-
Fill in basic settings:
- Name: unique node name (e.g.,
hostkey-us-node1); - Location: select the previously created location;
- Public: check the box if the node should be visible to users;
- FQDN: specify the panel domain name (e.g.,
pterodactyl50514.hostkey.in) or IP address; - Communicate Over SSL: check the box if Panel uses HTTPS;
- Behind Proxy: leave disabled if the node is not behind a proxy.
- Name: unique node name (e.g.,
-
Configure resource settings:
- Daemon Server File Directory:
/var/lib/pterodactyl/volumes(do not change); - Total Memory: specify available RAM in MB (e.g.,
4608for a 6GB server accounting for reserve); - Memory Over-Allocation: specify
0(no over-allocation); - Total Disk Space: specify available disk space in MB (e.g.,
102400for a 120GB disk accounting for reserve); - Disk Over-Allocation: specify
0(no over-allocation); - Daemon Port:
8080(leave default); - Daemon SFTP Port:
2022(leave default).

- Daemon Server File Directory:
-
Click the
Create Nodebutton.
Important When Using HTTPS
If Panel operates over HTTPS, you must specify a domain name in the FQDN field, not an IP address. Specifying an IP address with SSL enabled will result in a validation error.
Example Settings for All-in-One Configuration (4 vCore / 6GB RAM / 120GB SSD)
Name: hostkey-us-node1
Location: US1
Public: ☑
FQDN: pterodactyl50514.hostkey.in
Communicate Over SSL: ☑
Behind Proxy: ☐
Total Memory: 4608 MB (leaving 1.5GB for system)
Memory Over-Allocation: 0
Total Disk Space: 102400 MB (leaving 20GB for system)
Disk Over-Allocation: 0
Configuring Allocations¶
After creating a node, you need to configure allocations - these are IP address and port combinations that will be available for assignment to game servers.
-
After creating the node, its page will open automatically. Navigate to the Allocation tab;
-
In the Assign New Allocations section (right side), fill in the fields:
- IP Address: enter the server IP address;
- IP Alias: specify a description (e.g.,
Main IP) or leave blank; - Ports: specify a port range (e.g.,
25565-25570for Minecraft servers).
-
Click the green
Submitbutton:
-
Created allocations will appear in the Existing Allocations table (left side). Each row represents a separate IP:port combination that can be assigned to a game server.

Note
Without configuring allocations, you won't be able to create servers on this node. You need to add at least one IP address with ports.
Port Recommendations
- Minecraft: 25565-25570 (standard port 25565);
- CS2/CS:GO: 27015-27020 (standard port 27015);
- Rust: 28015-28020 (standard port 28015);
- Valheim: 2456-2460 (standard port 2456).
Installing Wings¶
Critical for Operation
After creating a node and configuring allocations, you must install Wings on the server. Without Wings, the node will show Offline status and won't be able to start game servers.
Connect to the server via SSH and execute the commands:
Create a directory for configuration:
Download Wings:curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
The Wings version should be displayed (e.g., wings vv1.12.1).
Configuring Wings via Auto-Deploy (Recommended)¶
-
In the admin panel, go to the Configuration tab of the created node;
-
In the Auto-Deploy section (right side), click the
Generate Tokenbutton:
-
Copy the generated command. It will look something like this:
-
Execute the copied command on the server:
cd /etc/pterodactyl && wings configure --panel-url https://pterodactyl50514.hostkey.in --token TOKEN --node 1The message should appear:
Successfully configured wings. -
Verify the created configuration:
Creating a systemd Service¶
Create a systemd service for automatic Wings startup:
cat > /etc/systemd/system/wings.service <<'EOF'
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
Starting Wings¶
Reload systemd configuration
Enable autostart and start Wings Check statusThe status should display Active: active (running).
Operation Check¶
Check Wings logs:
The logs should contain messages:
fetching list of servers from API- Wings connected to Panel;configuring internal webserver- Wings web server started;sftp server listening for connections- SFTP server is working.
Verify server directory creation:
Status Check in Admin Panel¶
- Open the admin panel:
https://your-domain.com/admin; - Navigate to: Admin → Nodes → your node;
- Refresh the page (F5);
- The green Online status indicator should be displayed in the upper right;
- On the About tab, resource information should be displayed (CPU, RAM, Disk).
If the Node Shows Online Status
The node is fully configured and ready to create game servers!
Troubleshooting¶
Node Shows Offline Status¶
Check Wings status:
If Wings is not running, start it:
Check logs for errors:
Common problems:
-
Wings cannot connect to Panel:
- Check the panel URL in configuration:
cat /etc/pterodactyl/config.yml | grep remote; - Ensure Panel is accessible:
curl -I https://your-domain.com.
- Check the panel URL in configuration:
-
Port 8080 is blocked by firewall:
- Check the port:
netstat -tulpn | grep 8080; - Open the port:
ufw allow 8080/tcp.
- Check the port:
-
SSL issues:
- If Panel uses HTTPS, Wings must also work with SSL;
- Check SSL settings in
/etc/pterodactyl/config.yml.
Manual Configuration (Alternative Method)¶
If Auto-Deploy doesn't work, you can configure Wings manually:
- In the admin panel, go to the Configuration tab of the node;
- Copy the configuration file contents from the left text field;
-
On the server, create a configuration file:
-
Paste the copied configuration and save (
Ctrl+X, thenY, thenEnter); - Restart Wings:
systemctl restart wings; - Check status:
systemctl status wings.
Creating a Nest and Adding an Egg¶
Creating a Nest¶
- In the left menu, select the Nests section;
-
Click the
Create Newbutton in the upper right corner: -
Fill in the fields:
- Name: nest name (e.g., "Minecraft");
- Description: nest description;
-
Click
Save:
Download a Ready-Made Egg¶
-
Open the website https://pelican-eggs.github.io/;
-
Find the desired game:
- In the Game Eggs section, select a category (e.g., Minecraft);
- Find the desired server type (e.g., Paper, Vanilla, Forge);
-
Click on the server name to open the GitHub page;
-
Find the
egg-name.jsonfile (e.g.,egg-paper.json); -
Click on the file, then the
Rawbutton in the upper right corner; -
Save the file (
Ctrl+Sor right-click →Save as).
Popular Eggs
- Minecraft Paper: egg-paper.json;
- CS2: egg-counter--strike2.json;
- Rust: egg-rust.json;
- Valheim: egg-valheim.json.
Import the Egg into the Panel¶
-
In the admin panel, go to the Nests section;
-
Click the
Import Eggbutton in the upper right corner:
-
Click
Choose Fileand select the downloaded.jsonfile; -
Click
Import:
The egg will be imported with all settings, Docker images, and variables.
Verifying the Imported Egg¶
-
In the egg list, find the imported one (e.g.,
Paper); -
Click on it to view settings;
-
Ensure the following are filled in:
- Docker Images: list of available images;
- Install Script: server installation script;
- Variables: environment variables (version, settings).


Creating a Server¶
-
In the left menu, select Servers;
-
Click the
Create Newbutton in the upper right corner:
-
Fill in the creation form:
Core Details:
- Server Name: server name (e.g.,
Test Minecraft Server); - Server Owner: select the owner user from the list;
- Server Description: description (optional);
- Start Server when Installed: leave the checkbox enabled.

Allocation Management:
- Node: select the created node;
- Default Allocation: select IP address:port from the list;
- Additional Allocations: leave blank.
Application Feature Limits:
- Database Limit:
0; - Allocation Limit:
0; - Backup Limit:
0.
Resource Management:

- CPU Limit:
0(no limits); - Memory:
2048MiB (2GB to start); - Swap:
0MiB; - Disk Space:
5120MiB (5GB); - Block IO Weight:
500; - Enable OOM Killer: leave disabled.
Nest Configuration:

- Nest:
Minecraft; - Egg:
Paper(not Sponge!); - Docker Image:
Java 21; -
Service Variables: leave default values.
-
Click
Create Serverat the bottom of the page; -
Wait for installation to complete (status Installing will change to Offline):
Starting and Configuring the Server¶
-
After installation, open the server from the list (Admin → Servers):

-
Go to the user panel (without
/admin), log in as the server owner; -
Click the
Startbutton:
-
On first launch, a license acceptance window will appear:

-
Click
I Acceptto accept the Minecraft EULA; -
Wait for the server to start (status will change to Running):

Performance Check¶
Open in your browser (replace IP with yours):
If the response shows"online": true - the server is working and accessible to players. Connection address:
Note
Detailed information on Pterodactyl's main settings is contained in the developers' documentation.
Order a Pterodactyl Server the API¶
To install this software using the API, follow these instructions.
Some of the content on this page was created or translated using AI.