// ssd vps

How to Install and Configure Pterodactyl Panel on a VPS SSD: Complete Guide

August 23, 2026 · by Alex M.

How to Install and Configure Pterodactyl Panel on a VPS SSD: Complete Guide

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.


What Is Pterodactyl and Why You Need a Solid VPS

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:

  • 2 vCPU (4 recommended for multiple instances)
  • 2 GB RAM for the Panel (Wings needs additional memory per game server)
  • NVMe SSD for fast I/O — critical for game servers
  • Ubuntu 22.04 LTS or Debian 12
  • Root access via SSH

A VPS NVMe from CLIQHOST is an ideal choice thanks to its fast disk speed and low latency.


Step 1: Preparing the Server

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.


Step 2: Installing Dependencies

PHP 8.3

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

MySQL 8

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;

Redis, Composer and Nginx

apt install -y redis-server nginx
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Step 3: Installing Pterodactyl Panel

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/

Step 4: Configuring Nginx with SSL

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

Step 5: Queue Worker and Scheduler

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

Step 6: Installing Wings (the Node Agent)

Wings handles Docker containers directly. For small setups, Wings can run on the same VPS as the Panel; for production, separate nodes are recommended.

Install Docker

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

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

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

Step 7: Creating Your First Game Server

  1. Log in to the panel at https://panel.yourdomain.com
  2. Go to Admin → Nests and import an egg (e.g., Minecraft Java)
  3. Go to Servers → Create Server
  4. Select the user, node, egg, and allocate resources (RAM, disk, CPU)
  5. The server will be created and started automatically

The web interface lets you start/stop the server, view the live console, manage files, and configure backups — all without SSH.


Tips for a Stable Installation

  • Keep Panel and Wings updated — the community releases patches frequently
  • Configure UFW: allow only ports 80, 443, 8080 (Wings API), and required game ports
  • Monitor resources with htop, df -h, and docker stats to prevent overload
  • Automate backups: configure them directly in the panel or at the system level on your VPS
  • For large-scale deployments, consider managed dedicated servers for guaranteed performance

For help choosing the right plan or configuring your server, the CLIQHOST support team is ready to assist.


Conclusion

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.

SHARE
// what clients say

What Our Clients Say

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."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău