Skip to content

Pterodactyl Control Panel

In this article

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 panelInvapi.

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 /admin to the main link;
  • Login: admin;
  • Password: sent via email to your address when the server is ready to operate after software deployment.

First Login

  1. Open a web browser and navigate to your Pterodactyl panel address
  2. Click Login:

  3. After successful authorization, you will be taken to the main panel page.

  4. To access the admin panel, click the button:

Creating a User

  1. In the left menu of the admin panel, click on the Users section name;
  2. Click the Create New button in the upper right corner:

  3. 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);
  4. If necessary, select Yes in the Administrator line to grant administrator rights;
  5. 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.

  1. In the left menu, select Locations;
  2. Click the Create New button in the upper right corner:

  3. Fill in the fields:

    • Short Code: short location code (e.g., "US1", "EU1");
    • Description: location description (e.g., "Data center in the USA");
  4. 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

  1. In the left menu of the admin panel, select Nodes;

  2. Click the Create New button in the upper right corner:

  3. 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.
  4. Configure resource settings:

    • Daemon Server File Directory: /var/lib/pterodactyl/volumes (do not change);
    • Total Memory: specify available RAM in MB (e.g., 4608 for 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., 102400 for 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).

  5. Click the Create Node button.

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.

  1. After creating the node, its page will open automatically. Navigate to the Allocation tab;

  2. 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-25570 for Minecraft servers).
  3. Click the green Submit button:

  4. 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:

mkdir -p /etc/pterodactyl
Download Wings:

curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
Grant execution permissions:

chmod u+x /usr/local/bin/wings
Verify installation:

wings version

The Wings version should be displayed (e.g., wings vv1.12.1).

  1. In the admin panel, go to the Configuration tab of the created node;

  2. In the Auto-Deploy section (right side), click the Generate Token button:

  3. Copy the generated command. It will look something like this:

        cd /etc/pterodactyl && wings configure --panel-url https://your-domain.com --token TOKEN --node 1
    

  4. Execute the copied command on the server:

        cd /etc/pterodactyl && wings configure --panel-url https://pterodactyl50514.hostkey.in --token TOKEN --node 1
    

    The message should appear: Successfully configured wings.

  5. Verify the created configuration:

        cat /etc/pterodactyl/config.yml
    

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

systemctl daemon-reload
Enable autostart and start Wings

systemctl enable --now wings
Check status

systemctl status wings

The status should display Active: active (running).

Operation Check

Check Wings logs:

journalctl -u wings -n 50

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:

ls -la /var/lib/pterodactyl/volumes/

Status Check in Admin Panel

  1. Open the admin panel: https://your-domain.com/admin;
  2. Navigate to: Admin → Nodes → your node;
  3. Refresh the page (F5);
  4. The green Online status indicator should be displayed in the upper right;
  5. 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:

systemctl status wings

If Wings is not running, start it:

systemctl start wings

Check logs for errors:

journalctl -u wings -n 100

Common problems:

  1. 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.
  2. Port 8080 is blocked by firewall:

    • Check the port: netstat -tulpn | grep 8080;
    • Open the port: ufw allow 8080/tcp.
  3. 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:

  1. In the admin panel, go to the Configuration tab of the node;
  2. Copy the configuration file contents from the left text field;
  3. On the server, create a configuration file:

    nano /etc/pterodactyl/config.yml
    

  4. Paste the copied configuration and save (Ctrl+X, then Y, then Enter);

  5. Restart Wings: systemctl restart wings;
  6. Check status: systemctl status wings.

Creating a Nest and Adding an Egg

Creating a Nest

  1. In the left menu, select the Nests section;
  2. Click the Create New button in the upper right corner:

  3. Fill in the fields:

    • Name: nest name (e.g., "Minecraft");
    • Description: nest description;
  4. Click Save:

Download a Ready-Made Egg

  1. Open the website https://pelican-eggs.github.io/;

  2. 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);
  3. Click on the server name to open the GitHub page;

  4. Find the egg-name.json file (e.g., egg-paper.json);

  5. Click on the file, then the Raw button in the upper right corner;

  6. Save the file (Ctrl+S or right-click → Save as).

Popular Eggs

Import the Egg into the Panel

  1. In the admin panel, go to the Nests section;

  2. Click the Import Egg button in the upper right corner:

  3. Click Choose File and select the downloaded .json file;

  4. Click Import:

The egg will be imported with all settings, Docker images, and variables.

Verifying the Imported Egg

  1. In the egg list, find the imported one (e.g., Paper);

  2. Click on it to view settings;

  3. 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

  1. In the left menu, select Servers;

  2. Click the Create New button in the upper right corner:

  3. 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: 2048 MiB (2GB to start);
  • Swap: 0 MiB;
  • Disk Space: 5120 MiB (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 Server at the bottom of the page;

  • Wait for installation to complete (status Installing will change to Offline):

Starting and Configuring the Server

  1. After installation, open the server from the list (AdminServers):

  2. Go to the user panel (without /admin), log in as the server owner;

  3. Click the Start button:

  4. On first launch, a license acceptance window will appear:

  5. Click I Accept to accept the Minecraft EULA;

  6. Wait for the server to start (status will change to Running):

Performance Check

Open in your browser (replace IP with yours):

https://api.mcsrvstat.us/3/<IP address>:25565
If the response shows "online": true - the server is working and accessible to players.

Connection address:

<IP address>:25565

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.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×