Pterodactyl Panel is the industry standard for game server hosting. If you are starting a hosting reseller business, this is the panel your customers expect. Here is how to set it up properly.
Overview
Pterodactyl has two components:
- Panel - The web interface where customers manage their servers
- Wings - The daemon that runs on each server node and manages game server processes
You can run both on the same machine for small operations, or separate them as you grow.
Requirements
Panel Server
- Ubuntu 22.04 or Debian 12
- 2GB+ RAM (for the panel itself - game servers need their own resources)
- PHP 8.1+, MySQL/MariaDB, Nginx or Apache, Redis, Composer
Wings Server
- Ubuntu 22.04 or Debian 12
- Docker installed
- Enough RAM and CPU for your game servers
Panel Installation
1. Install Dependencies
# Update system
apt update && apt upgrade -y
# Install PHP and extensions
apt install -y php8.1 php8.1-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip}
# Install MySQL
apt install -y mariadb-server
# Install Nginx
apt install -y nginx
# Install Redis
apt install -y redis-server
# Install Composer
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
2. Database Setup
mysql -u root -p
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'your-secure-password';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1';
FLUSH PRIVILEGES;
EXIT;
3. Download and Configure 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/
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
4. Configure Nginx
Create an Nginx site configuration that proxies to PHP-FPM. Set up SSL with Certbot for HTTPS - this is non-negotiable for customer trust.
5. Set Up Queue Worker and Cron
# Crontab
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
# Queue worker (systemd service)
php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
Wings Installation
1. Install Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
2. Install Wings
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
3. Configure Wings
In the Panel, go to Nodes, create a new node, and copy the configuration to /etc/pterodactyl/config.yml.
4. Set Up as Service
Create a systemd service for Wings so it starts automatically on boot.
Game Server Eggs
Eggs define how game servers are installed and started. Pterodactyl includes default eggs for popular games:
- Minecraft (Java, Bedrock, Paper, Forge, Fabric)
- FiveM
- Rust
- Garry's Mod
- And many more
Community eggs are available for less common games. Install them through the Panel's Nest/Egg management.
WHMCS Integration
The Pterodactyl WHMCS module automates server provisioning:
- Customer orders a plan through WHMCS
- WHMCS calls the Pterodactyl API
- Server is created automatically with the correct resources
- Customer receives panel login details
This module is free and maintained by the community.
Security
- Keep Panel and Wings updated
- Use strong passwords for the database and admin account
- Enable 2FA for admin accounts
- Restrict Panel access with a firewall (only allow HTTPS)
- Regular backups of the Panel database
Performance Tips
- Use Redis for caching and sessions
- Enable OPcache for PHP
- Set appropriate memory limits for game servers
- Monitor node resource usage - don't oversell beyond 80% of available resources
Pterodactyl is powerful and free. Set it up right, and it handles the operational side of game hosting so you can focus on growing your business.
