Pterodactyl: Game Server Panel

Pterodactyl is an open source panel for managing game servers. It lets you create, start, stop and monitor game servers via browser, with user management, CPU/RAM limits and integrated file manager.

Architecture: Panel (web interface) + Wings (daemon on nodes hosting the servers).

02

Panel requirements

The Panel can run on the same server as game servers (Wings node) or on a dedicated server. For personal use, same server is fine.

  • Ubuntu 22.04 / Debian 12
  • PHP 8.3, MariaDB, Redis, Nginx
  • Minimum 1 GB RAM dedicated to panel
03

Install Panel

Dependencies

bash
# PHP and extensions
apt install -y php8.3 php8.3-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} \
  mariadb-server nginx tar unzip git redis-server

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

Database

bash
mysql -u root << 'SQL'
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'secure_password';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SQL

Download Panel

bash
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
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/

Configuration

bash
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    # create the first admin user

chown -R www-data:www-data /var/www/pterodactyl/

Nginx

nginx
# /etc/nginx/sites-available/pterodactyl.conf
server {
    listen 80;
    server_name panel.yourdomain.com;
    root /var/www/pterodactyl/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
bash
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
systemctl reload nginx
certbot --nginx -d panel.yourdomain.com

Queue worker

bash
cat > /etc/systemd/system/pteroq.service << '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

systemctl enable --now pteroq.service
04

Install Wings (node)

Wings is the daemon that actually runs the game server containers.

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

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

Configure the node from Panel

bash
# Paste the config generated from Panel
nano /etc/pterodactyl/config.yml

Start Wings

bash
cat > /etc/systemd/system/wings.service << 'EOF'
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service

[Service]
User=root
WorkingDirectory=/etc/pterodactyl
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

systemctl enable --now wings
  • Admin Panel → Nodes → Create New
  • Fill in server details (FQDN, memory, disk)
  • In "Configuration" section copy the token
  • On the node server:
05

Egg (server template)

"Eggs" are templates for each game server type. Pterodactyl includes Minecraft ones by default. For other games:

bash
# Download official eggs from:
# https://github.com/pterodactyl/yolks
# https://github.com/parkervcp/eggs

# Import from Panel: Admin → Nests → Import Egg

Available eggs: Minecraft, Paper, Bungeecord, Velocity, FiveM, Rust, CS2, Valheim, ARK, Terraria, TeamSpeak, Palworld and many others.

06

Ports to open

bash
# Panel web
ufw allow 80/tcp
ufw allow 443/tcp

# Wings API (from panel to node)
ufw allow 8080/tcp

# SFTP for file manager
ufw allow 2022/tcp

# Game server ports (customizable range)
ufw allow 25565:25600/tcp   # Minecraft
ufw allow 27015:27020/udp   # Steam games

DeluxHost, fondata nel 2023, offre soluzioni di hosting di alta qualità per diverse esigenze digitali. Forniamo hosting condiviso, VPS e server dedicati con sicurezza avanzata e datacenter globali.

© DeluxHost, Tutti i diritti riservati. | Partita IVA: IT17734661006
Tutti i sistemi operativi