What is Pterodactyl?

Pterodactyl is the industry-leading open-source game server management panel built on PHP, React, and Go. It runs all game servers inside secure, isolated Docker containers while providing a modern web GUI, live console, SFTP file management, and API controls.

Deploy a high-performance Ubuntu VPS before proceeding with this installation.

System Prerequisites

  • Ubuntu 22.04 or 24.04 LTS (x86_64)
  • At least 2GB RAM (4GB+ recommended for running Wings nodes)
  • A fully qualified domain name (FQDN) pointed to your server IP (e.g., panel.yourdomain.com)

Step 1: Install Dependencies (PHP 8.3, MariaDB, Redis, Nginx)

# Add PHP repository
sudo apt update
sudo apt install -y software-properties-common curl apt-transport-https ca-certificates gnupg
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update

# Install Core Stack
sudo apt install -y php8.3 php8.3-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} mariadb-server nginx redis-server tar unzip git certbot python3-certbot-nginx

Step 2: Configure MariaDB Database

sudo mysql -u root -p
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'StrongPasswordHere!';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Step 3: Download and Set Up Pterodactyl Panel

# Create web root directory
sudo mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl

# Download latest panel release
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/

# Install Composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

# Configure Environment
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan p:environment:setup
php artisan p:environment:database
php artisan migrate --seed --force
php artisan p:user:make

Step 4: Configure Queue Worker and Permissions

# Set web server permissions
sudo chown -R www-data:www-data /var/www/pterodactyl/*

# Create systemd worker
sudo tee /etc/systemd/system/pteroq.service > /dev/null <<EOF
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service

[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable --now pteroq.service

Step 5: Install and Configure Wings Daemon

To run game servers, install Docker and the Wings daemon binary on your node:

# Install Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
sudo systemctl enable --now docker

# Download Wings
sudo mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
sudo chmod u+x /usr/local/bin/wings

Navigate to your Pterodactyl Panel administrative interface, create a new Node, copy the auto-generated YAML configuration into /etc/pterodactyl/config.yml, and start Wings with sudo systemctl enable --now wings.