August 23, 2026 · by Alex M.
If you run game servers — Minecraft, CS2, Rust, Valheim, or others — you know how important a stable and professional control panel is. Pterodactyl Panel is the go-to open-source solution: a modern web interface, Docker-based isolation, a powerful API, and support for dozens of game server types.
In this guide, you'll learn how to fully install Pterodactyl (Panel + Wings) on a VPS SSD running Ubuntu 22.04, from scratch to a working game server.
Pterodactyl is a game server management platform built with Laravel (PHP), MySQL, and Redis. Each game instance runs in an isolated Docker container, significantly improving security and stability.
Minimum requirements:
A VPS NVMe from CLIQHOST is an ideal choice thanks to its fast disk speed and low latency.
Connect to your VPS via SSH and update the system:
apt update && apt upgrade -y
apt install -y curl wget tar unzip git
Set the hostname:
hostnamectl set-hostname panel.yourdomain.com
Make sure you have a domain or subdomain (e.g., panel.yourdomain.com) with an A record pointing to your VPS IP. Pterodactyl requires an SSL certificate — we'll use the free Let's Encrypt option.
apt install -y software-properties-common
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y php8.3 php8.3-cli php8.3-fpm php8.3-mysql \
php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-curl \
php8.3-zip php8.3-gd php8.3-tokenizer
apt install -y mysql-server
mysql_secure_installation
Create the Pterodactyl database:
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;
apt install -y redis-server nginx
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Create the application directory and download the latest release:
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/
Copy the environment file and install dependencies:
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --force
Configure the environment:
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail
Run migrations and create the admin user:
php artisan migrate --seed --force
php artisan p:user:make
Fix file permissions:
chown -R www-data:www-data /var/www/pterodactyl/
Install Certbot and obtain a Let's Encrypt certificate:
apt install -y certbot python3-certbot-nginx
certbot certonly --nginx -d panel.yourdomain.com
Create the Nginx config /etc/nginx/sites-available/pterodactyl.conf:
server {
listen 80;
server_name panel.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name panel.yourdomain.com;
root /var/www/pterodactyl/public;
index index.php;
ssl_certificate /etc/letsencrypt/live/panel.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/panel.yourdomain.com/privkey.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Enable the config:
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Add the cron job:
crontab -e
# Add:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
Create the systemd service /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
systemctl enable --now pteroq.service
Wings handles Docker containers directly. For small setups, Wings can run on the same VPS as the Panel; for production, separate nodes are recommended.
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
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
In the Pterodactyl web panel, go to Admin → Nodes → Create Node, fill in the details, and copy the generated config to /etc/pterodactyl/config.yml.
Start Wings as a service:
curl -o /etc/systemd/system/wings.service \
https://raw.githubusercontent.com/pterodactyl/wings/develop/installer/wings.service
systemctl enable --now wings
https://panel.yourdomain.comThe web interface lets you start/stop the server, view the live console, manage files, and configure backups — all without SSH.
htop, df -h, and docker stats to prevent overloadFor help choosing the right plan or configuring your server, the CLIQHOST support team is ready to assist.
Pterodactyl Panel turns a standard VPS SSD into a professional game server hosting platform with full container isolation, a modern web interface, and easy scalability.
For maximum performance, explore VPS NVMe or dedicated server options from CLIQHOST — guaranteed resources, high uptime, and expert technical support whenever you need it.
Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."