InfrawireInfrawire LogoDocumentation
Appeler

Install Pterodactyl Panel via Script

This guide will teach you how to install Pterodactyl Panel and Wings on your VPS using the simplified automatic installation script. Pterodactyl is a free and open-source management panel for managing your game servers (Minecraft, FiveM, etc.).

📋 Prerequisites

  • A VPS server with root access
  • Minimum 1 GB of RAM (2 GB recommended)
  • Ubuntu 22.04/24.04, Debian 11/12/13, Rocky Linux 8/9, or AlmaLinux 8/9
  • A domain pointing to your VPS IP (optional but recommended)
  • Ports 80, 443, 2022, and 8080 open (if you use a firewall)

Important: Pterodactyl requires a clean server. It is recommended to install on a freshly installed system to avoid conflicts.

💡 Infrastructure Recommendation

Pterodactyl Panel is ideal for managing resource-intensive game servers. For optimal performance, we recommend our VPS Ryzen which offer high-performance processors and DDR5 RAM, perfect for hosting multiple game servers simultaneously (Minecraft, FiveM, etc.).

Info — To automate Pterodactyl installation (panel and Wings), you can choose our Pterodactyl hosting.

🚀 Installing the Pterodactyl Panel

Server Preparation

Before installing Pterodactyl, prepare your server:

Bash
1# Update the system 2sudo apt update && sudo apt upgrade -y 3 4# Install curl if necessary 5sudo apt install curl -y 6 7# Verify that you are root or use sudo 8whoami

Installation via Simplified Script

The automatic installation script greatly simplifies Pterodactyl installation:

Bash
# Launch the Pterodactyl installation script bash <(curl -s https://pterodactyl-installer.se)

The script will guide you through the installation step by step:

  1. Installation type selection:

    • Panel installation (Pterodactyl Panel)
    • Wings installation (daemon to manage servers)
    • Complete installation (Panel + Wings)
  2. System configuration:

    • Automatic installation of dependencies (PHP, MySQL, Nginx, etc.)
    • Database configuration
    • Web server configuration (Nginx)
    • SSL configuration (Let's Encrypt)

Panel Installation Only

If you want to install only the Panel (to manage servers):

Bash
1# Launch the script 2bash <(curl -s https://pterodactyl-installer.se) 3 4# Choose option "1" to install the Panel 5# Follow the script instructions

Complete Installation (Panel + Wings)

To install the Panel and Wings on the same server:

Bash
1# Launch the script 2bash <(curl -s https://pterodactyl-installer.se) 3 4# Choose option "3" for complete installation 5# Follow the script instructions

⚙️ Panel Configuration

Initial Configuration

After Panel installation, you will need to configure:

  1. Create an administrator account:

    • The script will ask you to create the first admin user
    • Choose an email and a secure password
  2. Database configuration:

    • The script will automatically create a MySQL database
    • Note the database credentials
  3. Domain configuration:

    • If you have a domain, the script will automatically configure Nginx
    • Otherwise, you can access via the server IP

Accessing the Panel

Once installation is complete, access the Panel:

Bash
1# If you configured a domain 2https://your-domain.com 3 4# If you don't have a domain 5http://YOUR_SERVER_IP

Important: If you use HTTP (without domain), you will need to accept the self-signed certificate or configure SSL manually.

🛠️ Installing Wings (Daemon)

Wings is the daemon that actually manages game servers. You can install it on the same server as the Panel or on a separate server.

Installing Wings on the Same Server

Bash
1# Launch the script 2bash <(curl -s https://pterodactyl-installer.se) 3 4# Choose option "3" for complete installation 5# Or option "2" if you already installed the Panel

Installing Wings on a Separate Server

If you install Wings on a different server from the Panel:

Bash
1# On the server where you want to install Wings 2bash <(curl -s https://pterodactyl-installer.se) 3 4# Choose option "2" to install Wings only 5# Follow the script instructions

Wings Configuration

After installation, you will need to configure Wings:

  1. Get the API key:

    • Log in to the Panel
    • Go to Administration → Configuration → Nodes
    • Create a new node or use the existing one
    • Copy the API key and FQDN
  2. Configure Wings:

    Bash
    1# Edit the Wings configuration file 2sudo nano /etc/pterodactyl/config.yml 3 4# Paste the API key and FQDN from the Panel 5# Save and quit (Ctrl+X, then Y, then Enter)
  3. Start Wings:

    Bash
    1# Start the Wings service 2sudo systemctl start wings 3 4# Enable Wings on boot 5sudo systemctl enable wings 6 7# Verify status 8sudo systemctl status wings

🔧 Firewall Configuration (UFW)

If you use UFW, configure the necessary ports:

Bash
1# Allow ports for Pterodactyl Panel 2sudo ufw allow 80/tcp 3sudo ufw allow 443/tcp 4 5# Allow Wings port (default 8080) 6sudo ufw allow 8080/tcp 7 8# Allow Wings SFTP port (default 2022) 9sudo ufw allow 2022/tcp 10 11# Verify rules 12sudo ufw status

Important: If you change Wings default ports, don't forget to open them in the firewall.

📝 Post-Installation Configuration

Verify Installation

Bash
1# Verify that the Panel works 2curl -I http://localhost 3 4# Verify that Wings works 5sudo systemctl status wings 6 7# Check Wings logs 8sudo journalctl -u wings -f

Update Pterodactyl

To update the Panel or Wings:

Bash
1# Relaunch the installation script 2bash <(curl -s https://pterodactyl-installer.se) 3 4# Choose the update option 5# The script will detect the existing installation and offer an update

Useful Wings Commands

Bash
1# Restart Wings 2sudo systemctl restart wings 3 4# Stop Wings 5sudo systemctl stop wings 6 7# View logs in real-time 8sudo journalctl -u wings -f 9 10# Reload Wings configuration without restarting 11sudo wings --debug

🎮 Create Your First Server

In the Pterodactyl Panel

  1. Create a user:

    • Go to Users → New User
    • Create an account for yourself (if not already done)
  2. Create a server:

    • Click on "Create a new server"
    • Select a node (your Wings)
    • Choose an egg (Minecraft, FiveM, etc.)
    • Configure resources (RAM, CPU, disk)
    • Set the name and description
  3. Start the server:

    • Once created, click on your server
    • Click on "Power" → "Start" to start

✅ Verification and Testing

Verify Everything Works

Bash
1# Verify the Panel (should return HTTP 200) 2curl -I http://localhost 3 4# Verify Wings 5sudo systemctl status wings 6 7# Verify required services 8sudo systemctl status nginx 9sudo systemctl status mysql 10sudo systemctl status redis

Test Panel → Wings Connection

In the Panel:

  1. Go to Administration → Nodes
  2. Verify that your node is online (green status)
  3. If the node is offline, check Wings configuration

🆘 Troubleshooting

Panel Does Not Display

Bash
1# Verify that Nginx works 2sudo systemctl status nginx 3 4# Check Nginx logs 5sudo tail -f /var/log/nginx/error.log 6 7# Restart Nginx 8sudo systemctl restart nginx 9 10# Verify Nginx configuration 11sudo nginx -t

Wings Won't Start

Bash
1# Check Wings logs 2sudo journalctl -u wings -n 50 3 4# Check configuration file 5sudo nano /etc/pterodactyl/config.yml 6 7# Verify configuration syntax 8sudo wings --debug 9 10# Verify that port 8080 is free 11sudo netstat -tlnp | grep 8080

Panel → Wings Connection Error

Bash
1# Verify API key in config.yml 2sudo cat /etc/pterodactyl/config.yml | grep -i "api\|token" 3 4# Verify that FQDN is correct 5sudo cat /etc/pterodactyl/config.yml | grep -i "remote" 6 7# Verify network connectivity 8curl -I https://YOUR_PANEL_DOMAIN 9 10# Restart Wings 11sudo systemctl restart wings

Database Problem

Bash
1# Verify that MySQL works 2sudo systemctl status mysql 3 4# Connect to MySQL 5sudo mysql -u root -p 6 7# In MySQL, list databases 8SHOW DATABASES; 9 10# Verify that pterodactyl database exists 11USE pterodactyl; 12SHOW TABLES;

SSL/HTTPS Error

If you have problems with SSL:

Bash
1# Verify Certbot 2sudo certbot --version 3 4# Renew SSL certificate 5sudo certbot renew 6 7# Verify Nginx SSL configuration 8sudo nginx -t 9sudo systemctl reload nginx

📚 Additional Resources

❓ Frequently Asked Questions

Q: Can I install the Panel and Wings on separate servers?
A: Yes, it's even recommended for large deployments. Install the Panel on one server and Wings on one or more other servers. Then configure Wings to connect to the Panel via the API key.

Q: What is the difference between the Panel and Wings?
A: The Panel is the web interface to manage your servers. Wings is the daemon that runs on game servers and actually manages Docker containers and game servers.

Q: Can I install Pterodactyl without a domain?
A: Yes, you can use your server IP, but you will need to configure SSL manually or accept a self-signed certificate. It is strongly recommended to use a domain with Let's Encrypt.

Q: Does the script automatically install Docker?
A: Yes, the script automatically installs Docker and Docker Compose which are required for Wings.

Q: How do I update Pterodactyl after installation?
A: Relaunch the installation script. It will detect the existing installation and offer an update:

Bash
bash <(curl -s https://pterodactyl-installer.se)

Q: Can I use another web server than Nginx?
A: The script automatically installs Nginx. You can use Apache instead, but you will need to configure manually after installation.

Q: How much RAM is needed to install Pterodactyl?
A: Minimum 1 GB of RAM, but 2 GB is recommended. To manage game servers, you will need additional RAM depending on the number and size of your servers.

Q: How do I create multiple game servers?
A: Once the Panel and Wings are configured, you can create as many servers as you want in the Panel. Each server will use a portion of your resources (RAM, CPU, disk).

Q: Can I use Pterodactyl for servers other than games?
A: Yes, Pterodactyl can manage any Docker container. You can use it for web applications, Discord bots, etc.