Install Pterodactyl on a VPS: Panel and Wings
Complete guide to installing the Pterodactyl panel and the Wings daemon on a Linux VPS at Lordhosting: dependencies, database, configuration and your first node.
Pterodactyl is the most widely used open-source game hosting panel: a modern web interface to create, manage and isolate game servers inside Docker containers. This guide installs both components — the Panel (the interface) and Wings (the daemon that runs the servers) — on a Debian or Ubuntu VPS. Expect around 45 minutes.
⚙️ Requirements
- A Lordhosting KVM VPS, Debian 12 or Ubuntu 22.04/24.04, 4 GB of RAM minimum
- A domain name or subdomain pointing to the VPS IP (e.g.
panel.yourdomain.com) - An already-secured VPS — see Secure a Linux VPS
- Docker installed (required for Wings) — see Install Docker and Docker Compose
⚙️ 1. Install the Panel dependencies
The Panel runs on PHP, a database and a web server. Install what you need:
sudo apt update
sudo apt install -y php8.3 php8.3-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} \
mariadb-server nginx redis-server git unzip
Then install Composer, the PHP dependency manager:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
⚙️ 2. Create the database
Open MariaDB and create the database along with a dedicated user:
sudo mysql -u root
CREATE DATABASE panel;
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'AStrongPassword';
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
Replace AStrongPassword with a strong, unique password. You will need it at the configuration step.
⚙️ 3. Download and configure the Panel
sudo mkdir -p /var/www/pterodactyl && cd /var/www/pterodactyl
sudo curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
sudo tar -xzvf panel.tar.gz && sudo chmod -R 755 storage/* bootstrap/cache/
sudo cp .env.example .env
sudo composer install --no-dev --optimize-autoloader
Generate the application key, then run the setup wizard:
sudo php artisan key:generate --force
sudo php artisan p:environment:setup
sudo php artisan p:environment:database
sudo php artisan migrate --seed --force
Finally, create your admin account:
sudo php artisan p:user:make
⚙️ 4. Configure nginx and SSL
Obtain a certificate for your domain, then enable the virtual host provided by Pterodactyl:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d panel.yourdomain.com
Adjust the permissions for the web server:
sudo chown -R www-data:www-data /var/www/pterodactyl/*
Your Panel is now reachable at https://panel.yourdomain.com.
⚙️ 5. Install Wings (the daemon)
Wings runs the game servers. On the machine that will host them:
sudo mkdir -p /etc/pterodactyl
sudo curl -L -o /usr/local/bin/wings \
"https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo amd64 || echo arm64)"
sudo chmod u+x /usr/local/bin/wings
In the Panel, create a Node (menu Admin → Nodes), then copy the generated configuration file to /etc/pterodactyl/config.yml. Start Wings:
sudo wings --debug
If the connection to the Panel succeeds without errors, create the systemd service so it starts on boot:
sudo systemctl enable --now wings
Check that port 8080 (and 2022 for SFTP) is open in your firewall, and that the domain's SSL is valid: Wings refuses to communicate over unencrypted HTTP.
✅ Conclusion
You now have a working Pterodactyl Panel and a first Wings node ready to host game servers. The rest happens in the interface: create a Nest, import an Egg and deploy your first server — steps we cover in our other Pterodactyl guides.
Would you rather skip the installation? Our Pterodactyl VPS come with the panel pre-installed and fully managed, ready to use in minutes.
❗Always good to know

