About Pterodactyl Panel
Pterodactyl is an open source panel for hosting and managing game servers (Minecraft, Rust, Source engine games, voice servers, bots). Each server runs in its own Docker container, controlled by the Wings daemon, and you manage everything from a web interface: console, files, backups, user accounts and resource limits.
This option installs the panel (PHP, Nginx, MariaDB, Redis), phpMyAdmin, Docker and Wings on a single Linux VPS. The script also creates a location called "main", a node called "Node-1" linked to Wings, and the port allocations 25565 to 25590, so you can create your first server without any extra configuration.
One thing to know before you order: the Let's Encrypt HTTPS certificate requires a domain name. The install script waits for you to set that domain and your email address, and for the DNS A record to point to the server. The procedure is described step by step in the quick start below.
What you can do with Pterodactyl Panel
Full-featured web panel
The panel is served by Nginx and PHP-FPM, with MariaDB as the database and Redis for cache, sessions and the job queue. A systemd service, pteroq, processes the queue in the background.
Wings and Docker preinstalled
Docker and the Wings daemon are installed, and the node configuration is generated by the panel in /etc/pterodactyl/config.yml. Wings starts as a systemd service if that configuration is valid.
Local node already created
A node named Node-1 is registered with about 80% of the RAM and of the disk space on /var, ports 8080 (Wings) and 2022 (SFTP), and the allocations 25565 to 25590.
Automatic Let's Encrypt HTTPS
The certificate is requested with certbot for your domain. A renewal hook reloads Nginx and restarts Wings after each renewal.
phpMyAdmin on the same domain
phpMyAdmin is available under /phpmyadmin, with a dedicated account and a randomly generated password. Handy for inspecting the panel database or the databases of your game servers.
Credentials generated at install
The panel administrator account and the phpMyAdmin account get random passwords, written to /tmp/credentials.txt (mode 600). Panel telemetry is disabled.
Get started with Pterodactyl Panel
From order to production in a few minutes.
- 1
Order the VPS with the application ticked
Choose a Linux VPS in Paris or Frankfurt, then tick Pterodactyl Panel in the "Applications" tab. Pick Ubuntu 22.04, Ubuntu 24.04 or Debian 12, and 4 GB of RAM if you plan to run game servers.
- 2
Connect and point your domain
Once the server is delivered, create an A record for your subdomain pointing to SERVER_IP at your registrar (see /web-domains), then open an SSH session.
Bashssh root@SERVER_IP - 3
Set your domain and run the installation
The script /opt/install-pterodactyl.sh stops as long as DOMAIN and LE_EMAIL still hold their example values. Edit them, run the script again, then read your credentials (user admin) and open https://YOUR_DOMAIN. Allow a few minutes, longer if DNS is slow to propagate.
Bashnano /opt/install-pterodactyl.sh bash /opt/install-pterodactyl.sh cat /tmp/credentials.txt - 4
Secure it before going to production
Copy /tmp/credentials.txt off the server, change the admin password, then enable a firewall that allows SSH, HTTP(S), Wings (8080), SFTP (2022) and your game ports. Schedule backups of the database and of /var/lib/pterodactyl/volumes.
Bashcp /tmp/credentials.txt /root/credentials.txt apt-get install -y ufw ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp ufw allow 8080/tcp && ufw allow 2022/tcp && ufw allow 25565:25590/tcp ufw enable
Pterodactyl Panel use cases
Minecraft server hosting
Create several isolated servers in containers, with memory and disk limits per server, and give each player or customer restricted access to their own.
Gaming community or clan
Centralise your game servers and Discord bots in a single interface, with subusers who can start, stop or edit files without SSH access.
Reselling game servers
A small business can offer game servers to its customers, each with their own panel account, console and SFTP access.
Test bed before a wider rollout
Try out the panel, eggs and resource limits on a single VPS, then add more Wings nodes or move to a [dedicated gaming server](/serveur-dedie-gaming) when the load calls for it.
Pterodactyl Panel FAQ
Yes. The Let's Encrypt certificate is issued for a domain, and the Wings node is declared with that name. Create an A record pointing to the VPS IP before running the script. You can register a domain on the [domains](/web-domains) page.
More about Pterodactyl Panel
What the script expects from you
The script is launched by cloud-init on first boot. If DOMAIN and LE_EMAIL have not been changed, it prints a message and stops without installing anything beyond the base packages. You then just edit the file and run it again with bash /opt/install-pterodactyl.sh.
Once it runs, it waits up to about 10 minutes for your domain's DNS to resolve to the server's public IP, then tries five times to obtain the certificate. Port 80 must therefore be reachable. The script also requires PHP 8.1 or later: it is designed for Ubuntu 22.04, Ubuntu 24.04 and Debian 12. On any other version, it stops if PHP is too old.
It is written for a fresh server. Avoid running it again on a machine where the panel has already been installed successfully.
Where things are
- Panel: /var/www/pterodactyl (the .env configuration file is at the root)
- Nginx configuration: /etc/nginx/sites-available/pterodactyl.conf
- Wings configuration: /etc/pterodactyl/config.yml
- Game server data: /var/lib/pterodactyl/volumes
- Services:
pteroq,wings,nginx,mariadb,redis-server,docker
The file /tmp/credentials.txt may disappear after a reboot, since /tmp is sometimes cleared. Copy it as soon as you first log in.
Backups
Three things matter: the panel's MariaDB database (named panel), the panel's .env file (it holds the application key) and the game volumes folder. A daily mysqldump and a copy of these paths to external storage cover most of what you need.
Bashmysqldump panel > /root/panel-$(date +%F).sql cp /var/www/pterodactyl/.env /root/pterodactyl.env
phpMyAdmin and firewall
The pma_admin account has all privileges on MariaDB. If you do not need phpMyAdmin all the time, restrict access by IP in the Nginx configuration or remove the link /var/www/pterodactyl/public/phpmyadmin.
Game ports published by Docker can bypass ufw rules. Check from the outside afterwards which ports actually respond. For protection against volumetric attacks, see the anti-DDoS VPS offer.