You decide which services we may enable for analytics, personalization, and external content.
We use cookies and similar technologies on our website to personalize content, embed external media, and better understand how individual areas are used.
Necessary cookies
These entries support essential functions such as security, stability, and form processing.
Optional sections
AnalyticsMarketingPersonalizationExternal media
Your data may be processed with your consent or on the basis of legitimate interests. In the cookie settings, you can reject or explicitly allow each optional category.
Some services process personal data in third countries. By consenting, you also agree to this transfer. You can find more information in our Privacy Policy.
You can reopen and change your selection at any time. · 1.0.2
Set Up Pterodactyl on a Linux Server – Host Your Own Game Server Panel
Learn how to install Pterodactyl Panel and Wings on your Linux server and conveniently manage your own game servers through a web interface → Learn more
10 November 202613 min read1 Views0 helpful
Introduction
Pterodactyl is a free, open-source panel that lets you manage game servers such as Minecraft, Rust, ARK, or CS2 through a web interface. Each game server runs in its own Docker container, isolated from the others.
Pterodactyl consists of two parts:
Panel – the web interface where you manage servers, users, and resources (a PHP application with a database and web server)
Wings – the service on the server that starts, stops, and monitors the game server containers
In this guide, we’ll show you step by step how to install Panel and Wings on your ZapX VPS or Dedicated Server, set up a domain with SSL, and create your first game server.
Prerequisites
To use Pterodactyl, you need a VPS or Dedicated Server running Linux and root access via SSH. For information on connecting to your server, see our guide to first-time SSH access. New to ZapX? Start with our introduction to VPS or Dedicated Servers.
Tip
SSH key authentication
We recommend using an SSH key instead of a password. Find out how in our guide to creating and using SSH keys.
Hardware requirements
The Panel itself is lightweight. The resources you need mainly depend on how many game servers you want to run through Wings. If you’re running Panel and Wings on the same server, we recommend:
Hardware
Minimum
Recommended
CPU
2 vCPU cores
4 vCPU cores or more
RAM
4 GB
8 GB or more
Disk space
30 GB
100 GB or more
Supported operating systems
According to the official Pterodactyl documentation, the following systems are currently supported:
Operating system
Versions
Note
Ubuntu
22.04, 24.04
On 22.04, you need an additional PHP repository
Debian
11, 12, 13
PHP 8.3 comes from the Sury repository
Rocky Linux / AlmaLinux / RHEL
8, 9
Different package names and paths; not covered in this guide
This guide provides commands for Ubuntu and Debian. Ubuntu 20.04 and older are no longer supported by the Panel. If you’re setting up your system from scratch, we recommend Ubuntu 24.04 or Debian 12.
Check virtualization
Wings requires Docker. Docker runs without issues on KVM-based servers and Dedicated Servers, but usually does not work on OpenVZ or LXC containers. Check with this command:
bash
systemd-detect-virt
The output kvm or none (Dedicated Server without virtualization) is fine. If the output is openvz or lxc, you generally won’t be able to run Wings on this server.
Update the system
Update your system before installing:
bash
apt update && apt upgrade -y
Firewall and ports
If you’re using a firewall on your server, these ports must be open:
Port
Protocol
Purpose
80 and 443
TCP
Panel (HTTP/HTTPS) and Certbot certificate verification
8080
TCP
Wings API, used by the Panel to communicate with the node
2022
TCP
SFTP access to game server files
Game ports
TCP/UDP
The ports in your allocations, for example 25565 for Minecraft
For example, you can open the ports with UFW as follows. Be sure to allow SSH first, or you’ll lock yourself out when you enable the firewall:
Docker creates its own rules for the game server container ports. As a result, these ports are often accessible even if you haven’t opened them in UFW. Don’t rely on UFW alone to control game ports.
FAQ
Frequently asked questions
Pterodactyl is a free, open-source panel for managing game servers. It consists of the Panel (the web interface) and Wings (the service on the server), which runs each game server in its own Docker container.
According to the official documentation, Pterodactyl supports Ubuntu 22.04 and 24.04, Debian 11, 12, and 13, and Rocky Linux, AlmaLinux, and RHEL 8 and 9. The Panel no longer supports Ubuntu 20.04 and older.
The Panel requires PHP 8.2 or 8.3, with PHP 8.3 recommended. On Ubuntu 22.04 and Debian, PHP 8.3 comes from an additional repository; Ubuntu 24.04 includes it by default.
For the Panel, open ports 80 and 443. For Wings, open port 8080 (API) and port 2022 (SFTP). You’ll also need the game ports used by your allocations, such as 25565 for Minecraft.
Feedback
Was this article helpful?
Your feedback helps us prioritize and improve content.
0 of 0 Users found this article helpful.
Personal support
Need more help than the guide provides?
Our ZAP support team knows your product — briefly describe your issue and we'll help you personally.
Zappy knows this guide and answers you right in the chat.
Navigation
Software
Download the Panel
Create the directory for the Panel and switch to it:
bash
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
Download the latest release, extract it, and set permissions for the storage/ and bootstrap/cache/ directories:
You’re now ready to create your first game server:
In the admin area, open Servers and click Create New.
Enter a name and select the owner (for example, your admin account).
Select the node and an available allocation.
Set how much CPU, RAM, and storage the server will have.
Under Nest and Egg, select the game, for example Minecraft with Paper.
Click Create Server.
Wings will now download the appropriate Docker image and install the server. You’ll then find it in the regular Panel view, where you can start it, open the console, and manage files.
Wrap-up and additional resources
Congratulations! You’ve successfully installed Pterodactyl Panel and Wings on your server and can now manage your own game servers through the web interface. These resources may help you:
Note: Since version 1.11, Pterodactyl sends anonymous usage data (telemetry). Find out how to disable it in the official documentation under “Additional Configuration.”
Do you still have questions that weren’t answered here? Our support team is available every day to help—just get in touch! 🙂
Server hosting from €2.49 / month, online instantly, DDoS protection included.
The Panel requires PHP 8.2 or 8.3 (8.3 is recommended) with several extensions, a database (MariaDB or MySQL), Redis, a web server (we’ll use Nginx), as well as curl, tar, unzip, git, and Composer. Run the commands for your distribution.
Ubuntu 24.04
PHP 8.3, MariaDB, and Redis are already included in the default package sources in Ubuntu 24.04. You don’t need any additional repositories:
Copy the example configuration, install the PHP dependencies, and generate the application key:
bash
cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
# Nur bei einer Neuinstallation ausführen, nicht bei einem bestehenden Panel
php artisan key:generate --force
Warning
Back up the APP_KEY
The APP_KEY value in the file encrypts all sensitive Panel data, such as API keys. If you lose it, that data will no longer be readable, even with a database backup. Display it with and store it somewhere safe off the server, such as in your password manager.
Set up the cron job and queue worker
The Panel performs many tasks in the background, such as scheduled tasks, sending emails, and cleanup. You’ll need a cron job and a queue worker for this.
Cron job
Open the crontab with sudo crontab -e and add this line. It runs the Panel scheduler every minute:
Save with STRG + X, then and . Next, enable Redis and the queue worker so they both start automatically after a reboot:
Set up the web server and SSL
To access the Panel through your own domain over HTTPS, you’ll now configure DNS, an SSL certificate, and Nginx.
Add a DNS record
Add an A record with your domain provider that points to your server’s IP address, for example panel.example.com. If your domain is with ZAP-Hosting, see our guide to domain records. It may take a while for the record to become active worldwide.
Create an SSL certificate with Certbot
Install Certbot with the Nginx plugin and create the certificate. Replace panel.example.com with your domain:
Certbot verifies the domain over port 80, so the port must be accessible from the internet. Learn more about Certbot in our guide to setting up Certbot on a Linux server.
The Certbot package renews certificates automatically. To make sure Nginx and Wings also load a renewed certificate, you can add this line to the crontab (sudo crontab -e):
Add this configuration and replace panel.example.com with your domain in all four places:
Install Wings
Wings is the service that actually runs your game servers. You can install Wings on the same server as the Panel or on additional servers, which you can then add to the Panel as extra nodes.
Install Docker
Wings starts each game server in a Docker container. Install Docker CE with the official installation script and enable the service:
Debian 13 includes PHP 8.4 by default, which Pterodactyl does not officially support. So you’ll get PHP 8.3 from the Sury repository. Install MariaDB and Redis directly from the Debian package sources, without adding any repositories:
Use the following commands to configure sessions, cache, the database connection, and email delivery. The commands will prompt you interactively for the required values:
bash
php artisan p:environment:setup
php artisan p:environment:database
# Optional: Mailversand einrichten ("smtp" für einen eigenen Mailserver)
php artisan p:environment:mail
When asked for the Application URL, enter the future address of your Panel, for example https://panel.example.com. For the database, use 127.0.0.1, the database name panel, the username pterodactyl, and the password you set earlier. You can select Redis for the cache, sessions, and queue.
Populate the database
The Panel will now create its tables and import the included Nests and Eggs (templates for individual games):
bash
php artisan migrate --seed --force
Info
Please wait
This may take a few minutes. Don’t interrupt the process, or the database will be incomplete.
Create the first admin account
Create your admin account. The password must be at least 8 characters long and include uppercase and lowercase letters and at least one number:
bash
php artisan p:user:make
When asked whether the user should be an administrator, answer yes.
Set permissions
To allow Nginx and PHP to access the files, assign them to the web server user:
Nginx will only start with this configuration if the SSL certificate already exists. Be sure to create it with Certbot first.
Configure Nginx without SSL
If you only want to test the Panel and don’t have a domain with a certificate yet, you can use this simpler configuration instead in /etc/nginx/sites-available/pterodactyl.conf. Replace panel.example.com with your domain or your server’s IP address. Also make sure to remove /etc/nginx/sites-enabled/default first:
Now open https://panel.example.com in your browser and sign in with the admin account you created earlier. For general information about Nginx, see our guide to setting up Nginx and Apache on a Linux server.
Open the admin area in the top-right corner of the Panel (gear icon).
Under Locations, create a location with Create New, for example, with the code de1.
Go to Nodes and click Create New.
Enter a name, select the location, and enter the server’s domain as the FQDN. If Wings is running on the same server as the Panel, you can use the same domain, for example panel.example.com.
Under Communicate Over SSL, select Use SSL Connection if your Panel uses HTTPS. The node will also need a valid certificate for its FQDN.
Under Total Memory and Total Disk Space, enter how much RAM and storage Wings can allocate to game servers. Leave some room for the system itself.
Keep Daemon Port set to 8080 and Daemon SFTP Port set to 2022, then save the node.
Next, open the node and go to the Configuration tab. Click Generate Token and run the displayed command on your server. This automatically writes the /etc/pterodactyl/config.yml file. Alternatively, manually copy the contents of the code block into this file.
Test Wings
Start Wings once in debug mode to see any errors immediately:
bash
sudo wings --debug
If Wings runs without errors and the node shows a green heart under Nodes in the Panel, stop the test run with STRG + C.
Set up Wings as a service
To keep Wings running in the background, create a systemd service:
An allocation is a combination of an IP address and port that you assign to a game server. Each server needs at least one. Find your server’s IP address with:
bash
hostname -I | awk '{print $1}'
In the admin area, open your node and go to the Allocation tab. Under Assign New Allocations, enter the IP address and the ports you want to use, for example 25565-25570 for Minecraft. Never use 127.0.0.1 as an allocation.