Pterodactyl Panel is the go-to solution for managing game servers. Whether you are hosting for friends or starting a hosting business, here is how to install it on a VPS.
What You Need
- A VPS with at least 2GB RAM (for the panel) and a separate VPS or additional resources for Wings (the game server daemon)
- Ubuntu 22.04 or Debian 12
- A domain name pointed to your VPS
- Root or sudo access
Panel Installation
Step 1: Install Dependencies
apt update && apt upgrade -y
# PHP 8.1 and extensions
apt install -y software-properties-common
add-apt-repository -y ppa:ondrej/php
apt install -y php8.1 php8.1-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip,intl}
# MariaDB
apt install -y mariadb-server
# Nginx
apt install -y nginx
# Redis
apt install -y redis-server
# Composer
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Step 2: Create Database
mysql -u root
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'YourSecurePassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1';
FLUSH PRIVILEGES;
EXIT;
Step 3: Download Panel
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/
Step 4: 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
Step 5: Create Admin User
php artisan p:user:make
Step 6: Configure Nginx
Create an Nginx configuration file for the panel. Set up SSL with Certbot:
certbot --nginx -d panel.yourdomain.com
Step 7: Set Up Queue Worker
Create a systemd service for the queue worker:
[Unit]
Description=Pterodactyl Queue Worker
[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
Step 8: Set Up Cron
echo "* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
Wings Installation
Wings runs on the node where game servers actually execute.
Step 1: Install Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
Step 2: Install Wings Binary
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
chmod u+x /usr/local/bin/wings
Step 3: Configure Node in Panel
- Go to Admin > Nodes > Create New
- Set FQDN, memory, disk space, and ports
- Click the Configuration tab
- Copy the config to
/etc/pterodactyl/config.yml
Step 4: Start Wings
Create a systemd service for Wings, then:
systemctl enable --now wings
Creating Your First Server
- Admin > Servers > Create New
- Select the node, allocation (IP:port), and egg (game type)
- Set resource limits (RAM, CPU, disk)
- The server will install automatically
Common Eggs
- Minecraft: Java (Paper, Forge, Fabric), Bedrock
- FiveM: GTA V multiplayer
- Rust: Survival game server
- Garry's Mod: Sandbox
- Valheim: Viking survival
- ARK: Dinosaur survival
Maintenance Tips
- Keep Panel and Wings updated to the latest versions
- Monitor disk usage - game servers can grow quickly
- Set up automated backups of the Panel database
- Review server resource usage weekly
Pterodactyl gives you professional game server management with a clean web interface. Once installed, your users can manage their own servers without needing SSH access.
