Install Pterodactyl Panel & Wings
Complete procedure: required, installation Panel/Wings, node, phpMyAdmin, MySQL and first game servers.
Ready to start your service? Check offers and order online.
View offers and orderObjective
Install Pterodactyl Panel and Wings on a Linux VPS (Debian / Ubuntu), then configure a node, phpMyAdmin and MySQL in a clean and secure manner.
The Panel is the web interface. Wings is the daemon that launches Docker containers from game servers.
Prerequisite
- VPS Anthony IT Solutions (Debian 11/12 or Ubuntu 22.04/24.04)
- Access root to SSH (first SSH connection)
- Recommended minimum: 2 vCPU / 4 GB RAM / 40GB disk
- A domain (e.g.
panel.votredomaine.fr) in registration A to the IP of the VPS - Ports: 22, 80/443, 8080 (Wings), 2022 (SFTP), + game ports
1. Preparing the system
Log in as a root, update and restart:
apt update
apt full-upgrade -y
apt install -y bash curl wget sudo unzip nano ca-certificates gnupg
rebootReconnect after reboot and check the OS:
cat /etc/os-release
hostnamectl2. Install Panel and Wings
Launch the interactive installer:
bash <(curl -s https://pterodactyl-installer.se)- Installation option
First install Panel, then Wings on the same machine (ideal for a single VPS).
- FQDN domain
Ex.
panel.votredomaine.fr- the DNS A must already point to the VPS. - E-mail & SSL
Enter a valid e-mail and accept Lets Encrypt.
- Database
Note the MySQL password / Panel user displayed by the script.
- Admin account
Create admin Panel (e-mail, username, strong password).
Check the services:
systemctl status nginx
systemctl status mariadb
systemctl status wings
systemctl status dockerOpen https://panel.votredomaine.fr and log in with the created admin account.
3. Configure Node
- Rental
Admin → Rentals → New (ex.
France/FR-01). - Node
Admin → Nodes → Create :
- Name :
node-01 - FQDN : same domain or
node.votredomaine.fr - Memory / Disk: leave a margin for the system
- Daemon Port :
8080 - SFTP Port :
2022
- Name :
- Allowances
Add public IP + a port range (e.g.
25565-25600,30120). - Config Wings
Open the node → tab Configuration → copy the displayed YAML.
Paste the config on the VPS:
sudo nano /etc/pterodactyl/config.ymlThen restart Wings:
systemctl restart wings
systemctl status wingswings after each change.4. Open ports (UFW)
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 8080/tcp
ufw allow 2022/tcp
ufw allow 25565:25600/tcp
ufw allow 30120/tcp
ufw allow 30120/udp
ufw enable
ufw status5. Install phpMyAdmin (optional)
cd /var/www/pterodactyl/public
mkdir -p phpmyadmin && cd phpmyadmin
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
unzip phpMyAdmin-5.2.1-all-languages.zip
mv phpMyAdmin-5.2.1-all-languages/* .
rm -rf phpMyAdmin-5.2.1-all-languages phpMyAdmin-5.2.1-all-languages.zip
cp config.sample.inc.php config.inc.php
nano config.inc.phpDefine a blowfish_secret random (32+ characters):
$cfg['blowfish_secret'] = 'REMPLACEZ_PAR_UNE_CHAINE_ALEATOIRE_32+';Access: https://panel.votredomaine.fr/phpmyadmin
6. Configure MySQL / MariaDB
Recommended local listening:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfbind-address = 127.0.0.1systemctl restart mariadbCreate users (strong passwords):
mysql -u root -pCREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'MOT_DE_PASSE_FORT';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
CREATE USER 'games'@'localhost' IDENTIFIED BY 'AUTRE_MOT_DE_PASSE_FORT';
GRANT ALL PRIVILEGES ON *.* TO 'games'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;admin@'%' An account open to the entire network is dangerous if port 3306 is exposed. Prefer localhost.7. Create the first game server
- Eggs
Admin → Nests: choose l'egg (Paper, FiveM, etc.).
- User
Admin → Users: client account (or admin to test).
- Server
Admin → Servers → Create : node, allocation, RAM/CPU/disc, egg, then Start.
- MySQL base
Create a dedicated database with the user
gamesand inform it in the server variables.
8. Verifications
- HTTPS Panel OK
- Node Connected
systemctl is-active wings docker nginx mariadb→active- Test server starts correctly
journalctl -u wings -n 50 --no-pager
docker ps
df -h
free -hTroubleshooting
- Offline node : token /
config.yml/ port 8080 /systemctl restart wings - SSL failed: DNS A incorrect or port 80 closed
- Installation blocked : Docker, full disk, invalid egg
- MySQL refused : user/host/password or
bind-address
Related guides
- Install Pelican Panel & Wings
- First SSH connection
- UFWfirewall
- Certbot SSL Certificate
- Secure MySQL
- Install Docker
- Start a game server