-
Get in touch
-
611 Gateway Blvd ,
South San Francisco ,
CA 94080 United States - [email protected]
-
Pterodactyl Panel is an open-source game server management panel that provides a modern web interface for managing multiple game servers from one place. This Servers99 guide walks you through installing the Pterodactyl Panel on a fresh Linux dedicated server, including required dependencies, database configuration, background workers, and optional webserver + SSL setup.
Before You Begin
Supported operating systems
Pterodactyl Panel supports modern Linux distributions such as:
- Ubuntu 22.04 / 24.04
- Debian 11 / 12 / 13
- RHEL-based distributions (Rocky/Alma/RHEL)
Requirements (Dependencies)
You’ll need:
- PHP 8.2 or 8.3 with extensions:
cli, openssl, gd, mysql, PDO, mbstring, tokenizer, bcmath, xml/dom, curl, zip,andfpm(for Nginx) - MySQL 5.7.22+ (MySQL 8 recommended) or MariaDB 10.2+
- Redis (
redis-server) A web server (this guide uses Nginx) - Utilities:
curl, tar, unzip, git - Composer v2
Step 1 - Update the Server
Log in as root (or use sudo -i), then run:
apt update && apt -y upgrade
Step 2 - Install Dependencies (Ubuntu/Debian)
Log in as root (or use sudo -i), then run:
apt -y install software-properties-common curl
apt-transport-https ca-certificates gnupg
This enables add-apt-repository and installs tools used
throughout the setup
This enables add-apt-repository and installs tools
used throughout the setup
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" |
sudo tee /etc/apt/sources.list.d/redis.list
apt -y install nginx
# If UFW is enabled:
ufw allow 'Nginx Full'
apt update
apt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \
mariadb-server nginx tar unzip git redis-server
Step 3 - Install Composer (v2)
Composer is required to install Panel dependencies:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Step 4 - Download the Pterodactyl Panel
Create the installation directory:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
Download and extract the 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/
Step 5 - Create the Database and User
Log in to MariaDB:
mariadb -u root -p
Create the database and user (replace YOUR_STRONG_PASSWORD):
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'YOUR_STRONG_PASSWORD';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exit
Step 6 - Configure and Install the Panel
Copy the environment file and install PHP dependencies:
cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
Generate the application key:
php artisan key:generate --force
APP_KEY from
.env. Losing it makes encrypted data irrecoverable.
Step 7 - Run the Interactive Setup
Run the built-in setup wizards:
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail
Create the first admin user:
php artisan migrate --seed --force
Create the first admin user:
php artisan p:user:make
Step 8 - Set Correct Permissions
On Ubuntu/Debian (Nginx uses www-data):
chown -R www-data:www-data /var/www/pterodactyl/*
Step 9 - Enable Cron + Queue Worker (Required)
Pterodactyl uses queues for background jobs
sudo crontab -e
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
nano /etc/systemd/system/pteroq.service
[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
sudo systemctl enable --now redis-server
sudo systemctl enable --now pteroq.service
Step 10 - Configure Nginx (Optional but Recommended)
On Ubuntu/Debian (Nginx uses www-data):
rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/pterodactyl.conf
Paste (replace < domain > with your domain or server IP):
server {
listen 80;
server_name ;
root /var/www/pterodactyl/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
This is based on the official Nginx configuration template
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
sudo systemctl restart nginx
Step 11 - SSL (HTTPS) with Certbot (Optional)
Pterodactyl’s documentation provides a simple Certbot flow for SSL certificates.
sudo apt update
sudo apt install -y certbot
sudo apt install -y python3-certbot-nginx
Replace example.com with your domain:
certbot certonly --nginx -d example.com
Add this to root crontab to attempt renewal daily at 23:00:
0 23 * * * certbot renew --quiet --deploy-hook "systemctl restart nginx"
Access Your Panel
Once Nginx is running, open:
http://YOUR_SERVER_IP(HTTP), orhttps://YOUR_DOMAIN(if SSL is configured)
Power Your Pterodactyl Setup with Servers99 Dedicated Servers
Servers99 provides dedicated hardware built for reliable performance, ideal for installing Pterodactyl Panel and running game server workloads with full control.