đ ïž 1. PrĂ©parer le serveur (VPS)
đ SystĂšme requis
Le tutoriel utilise Ubuntu 22.04, mais Debian ou dâautres versions LTS dâUbuntu sont aussi compatibles.
Etre en Superutilisateur voir la doc Ubuntu ou entrer la commande
Sudo suđŠ 2. Installer les dĂ©pendances nĂ©cessaires
Connecte-toi en SSH en tant que root sur ton VPS, puis lance ces commandes :
đ Mise Ă jour et paquets de base
apt update && apt upgrade -y
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
add-apt-repository ppa:redislabs/redis -yđ Installer PHP, Nginx, MariaDB (base de donnĂ©es) et Redis
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
apt update
apt-add-repository universe
apt -y install php8.1 php8.1-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} \
mariadb-server nginx unzip redis-serverđ Installer Composer (gestionnaire PHP)
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerđ Installer Node.js 25
curl -sL https://deb.nodesource.com/setup_25.x | bash -
apt update
apt -y install nodejs make gcc g++đ Installer Docker (pour isoler les serveurs de jeu)
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
usermod -aG docker www-data
systemctl enable --now docker
/etc/init.d/docker restartđïž 3. Configurer MariaDB (la base de donnĂ©es)
1. Lance MariaDB:
/usr/bin/mariadb -u root -p2. CrĂ©e lâutilisateur pterodactyl et la base de donnĂ©es :
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'TON_MOT_DE_PASSE';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;3. On quitte MariaDB:
exit;4. Solution Reddit Il nous reste une derniĂšre Ă©tape cruciale avant de passer Ă l’installation du panel : Changer les rĂšgles de comparaison d’encodage de MariaDB. Ceci est trĂšs simple Ă faire, ne vous inquiĂ©tez pas, derriĂšre ce nom barbare, nous n’avons qu’Ă modifier un paramĂštre.
Rendez-vous dans le fichier de configuration Ă l’aide de cette commande :
nano /etc/mysql/mariadb.conf.d/50-server.cnfCherchez maintenant la ligne character-set-collations et remplacez le contenu de la variable par utf8mb4=utf8mb4_general_ci.
Pour sauvegarder et sortir de Nano, faites CTRL + X puis appuyez sur Y et enfin appuyez sur Entrée.
đ 4. Installer le panel Pterodactyl
1. Passe sous l’utilisateur www-data:
chown -R www-data:www-data /var/www
su -l www-data -s /bin/bash2. Crée le dossier du panel :
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl3. Télécharge et décompresse le panel :
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/download/v1.11.7/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/4. Configure l’environement :
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate --forceâïž 5. Configurer le panel
đ§ Configuration interactive
Lance :
php artisan p:environment:setupTu seras invité à renseigner :
- Egg Author Email <- Votre adresse email
- Application URL <- L’adresse IP de votre serveur avec http devant, exemple:Â
http://51.89.132.2. - Application Timezone <- EntrezÂ
Europe/Paris, si vous vivez en France bien sĂ»r. - Cache Driver <- EntrezÂ
file. - Session Driver <- EntrezÂ
database. - Queue Driver <- EntrezÂ
database. - Enable UI based settings editor? <- EntrezÂ
yes. - Enable sending anonymous telemetry data? <- EntrezÂ
no.
đ Base de donnĂ©es
Lance :
php artisan p:environment:database- Database Host <- EntrezÂ
127.0.0.1 - Database Port <- EntrezÂ
3306 - Database Name <- EntrezÂ
panel - Database Username <- EntrezÂ
pterodactyl - Database Password <- Entrez le mot de passe de l’utilisateurÂ
pterodactyl, que vous avez configuré plus haut, dans Installation de la base de données.
đ§° 6. Finaliser le panel
đ ExĂ©cuter les migrations (crĂ©ation des tables)
php artisan migrate --seed --forceđ€ CrĂ©er un utilisateur admin
php artisan p:user:make- Is this user an administrator? (yes/no)Â <– EntrezÂ
yes - Email Adress <– Votre adresse email
- Username <- Entrez votre nom d’utilisateur, exempleÂ
Seb - First Name <- Entrez votre prénom
- Last Name <- Entrez votre nom
- Password <- Entrez le mot de passe qui sera utilisĂ© pour le compte, doit ĂȘtre diffĂ©rent des mots de passe prĂ©cĂ©dents
Votre utilisateur est maintenant pret !
đĄ 7. Configurer le service & tĂąches planifiĂ©es
Ajoute la tĂąche cron :
echo "* * * * * www-data php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1" >> /etc/crontabCrée et active le worker :
echo "[Unit]
Description=Pterodactyl Queue Worker
[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
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/pteroq.serviceEt on l’active :
systemctl enable --now pteroq.serviceđ 8. Activer le site Nginx
DerniÚre étape, la configuration du serveur web nginx .
Créez un fichier /etc/nginx/sites-available/pterodactyl.conf, par exemple avec nano :
nano /etc/nginx/sites-available/pterodactyl.confEt ajoutez le contenue suivant :
server {
listen 80 default_server;
server_name _;
root /var/www/pterodactyl/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}Pour sauvegarder et sortir de Nano, faites CTRL + X puis appuyez sur Y et enfin appuyez sur Entrée.
Activons le site web du panel que nous venons d’ajouter sur le serveur web, et supprimons la configuration par dĂ©faut:
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
/etc/init.d/nginx restartSi besoin, vous pouvez consultez les logs du panel dans /var/log/nginx/pterodactyl.app-error.log et /var/www/pterodactyl/storage/logs/.
Et voilà , le panel Pterodactyl est installé sur votre VPS ! Pour aller plus loin dans la configuration, consultez la documentation officielle.
đ 9. AccĂ©der au panel
Ouvre ton navigateur Ă :
http://TON_IP/Connecte-toi avec lâemail et le mot de passe de lâutilisateur admin que tu as créé.
đ€ 10. Installation et configuration de Wings
1. Télécharge Wings :
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/download/v1.11.13/wings_linux_amd64
chmod u+x /usr/local/bin/wings2. Ensuite, on va initialiser les donnĂ©es dans le panel. Connectez-vous Ă Â Pterodactyl et allez dans les options d’administration :

Nous allons tout d’abord dĂ©clarer un nouvel emplacement, nĂ©cessaire pour initialiser ensuite la configuration de Wings :
- Allez dansÂ
Locations. - Cliquer surÂ
Create New. - DansÂ
Short Code, entrezÂlocalhost. - Sauvegardez en cliquant surÂ
Create.

Ensuite, créez le Node :
- Allez dansÂ
Nodes. - Cliquez surÂ
Create New. - DansÂ
name, entrezÂnode1. - DansÂ
FQDN, indiquez l’adresse IP du VPS, par exemple pour moiÂ51.38.243.187. - DansÂ
Communicate Over SSL, sĂ©lectionnezÂUse HTTP Connection. - DansÂ
Daemon Server File Directory, entrezÂ/var/www/daemon-data. - DansÂ
Total Memory, indiquez la RAM total du VPS en Mo. Dans mon cas j’ai 8 Go, donc 8 * 1024 =Â8192. - DansÂ
Memory Over-Allocation, entrezÂ0. - DansÂ
Total Disk Space, indiquez l’espace disque rĂ©servĂ© pour vos serveurs de jeu sur le VPS, en Mo. Par exemple pour 40 Go, 40 * 1024 =Â40960. - DansÂ
Disk Over-Allocation, entrezÂ0. - Sauvegardez la node en cliquant surÂ
Create.
On peut maintenant importer la configuration de la node dans Wings. Cliquez sur Configuration :

Copiez maintenant le contenu dans Configuration File, et ajoutez le dans un fichier /etc/pterodactyl/config.yml :
nano /etc/pterodactyl/config.ymlCTRL + S pour enregistrer et CTRL + X pour sortir.

Le contenu de votre fichier /etc/pterodactyl/config.yml est bon ? On peut créer le service Wings :
echo "[Unit]
Description=Pterodactyl Wings Daemon
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=600
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/wings.serviceEt on l’active :
systemctl enable --now wings
service wings restartVous pouvez vérifier le bon fonctionnement de Wings en consultant le fichier de log /var/log/pterodactyl/wings.log.
Et voila, le panel est dĂ©sormais prĂȘt Ă fonctionner Ă 100%.
đ§ Allocation IP et ports
Avant de pouvoir crĂ©er notre premier serveur de jeu, nous devons configurer l’adresse IP qui sera utilisĂ©e, ainsi que les ports disponibles.
Pour cela :
- Cliquez surÂ
Nodes dans la navigation, et sĂ©lectionnez laÂnode1. - Cliquez ensuite surÂ
Allocation.

Déclarons notre IP et les ports disponibles pour créer des serveurs de jeu dans la partie Assign New Allocations :
- DansÂ
IP Address, entrez l’adresse IP de votre VPS, par exemple pour moiÂ51.38.243.187. - DansÂ
Port, indiquez les ports disponibles pour crĂ©er vos serveurs de jeu par la suite. Vous pouvez rentrer une rangĂ©e de port, par exemple:Â25001-25565. - Cliquez surÂ
Submit.
Et voila, nous avons fini la configuration, il ne reste plus qu’Ă crĂ©er nos serveurs de jeu et profiter du panel đ

đ„Notre premier serveur de jeux
Tout est prĂȘt, passons enfin Ă la crĂ©ation d’un serveur de jeu.
Rendez-vous dans l’onglet servers du panel :

Pour créer un nouveau serveur de jeu :
- Cliquez surÂ
Create New. - DansÂ
Server Name, entrez le nom du serveur, par exempleÂServeur de test. - DansÂ
Server Owner, entrez le nom du compte utilisateur qui sera propriĂ©taire du serveur sur le panel, dans mon casÂSeb. - DansÂ
Default Allocation, sĂ©lectionnez le port qui sera utilisĂ© pour le serveur de jeu. - DansÂ
Memory, indiquez la RAM allouĂ©e Ă votre serveur Minecraft. Pour notre exemple, on alloueÂ4096 Mo. - DansÂ
Disk Space, vous pouvez spĂ©cifier l’espace disque max du serveur, nous vous conseillons de rentrerÂ-1 pour dĂ©sactiver. - DansÂ
Nest Configuration, sĂ©lectionnez la famille du jeu dans le champÂNest, et la version que vous souhaitez utiliser dansÂEgg. Pour notre exemple, nous allons sĂ©lectionnerÂMinecraft etÂMinecraft Vanilla. - DansÂ
Server Version, vous pouvez spĂ©cifier la version que vous souhaitez. - Cliquez surÂ
Create Server pour créer votre premier serveur de jeu sur Pterodactyl !

Votre serveur de jeu est prĂȘt !
Pour rentrer dans le panel du serveur de jeu, cliquez sur l’icone:

Et voila, vous avez accĂšs Ă un super panel pour votre serveur:

Pour démarrer le serveur, cliquez sur Start.
Attention: dans le cadre d’un serveur Minecraft, vous devez accepter la licence EULA pour pouvoir lancer le serveur. Pour cela, lancez une premiere fois le serveur pour gĂ©nĂ©rer les fichiers. Il devrait refuser de se lancer
Pour accepter la licence:
- Allez dansÂ
File Manager. - Ouvrez le fichierÂ
eula.txt. - AjoutezÂ
eula=true. - Cliquez surÂ
Save Content.

Il ne vous reste plus qu’Ă redĂ©marrer le serveur :

â ïžErreurs frĂ©quentes
En cas d’erreur de type CSRF lorsque vous soumettez les formulaires, vĂ©rifiez le contenu du fichier /var/www/pterodactyl/.env, notamment le APP_URL qui doit bien contenir votre adresse http://VOTRE_IP. Si la ligne SESSION_SECURE_COOKIE est prĂ©sente en toute fin du fichier, supprimez-lĂ .
Videz ensuite le cache:
su -l www-data -s /bin/bash
cd /var/www/pterodactyl
php article clear:cacheAutres erreur:
En fonction de votre configuration, il se peut que votre serveur soit derriĂšre une gateway qui, si vous n’avez pas ouvert les ports, empĂȘche Wings de fonctionner.


Pour éviter toute erreur, assurez-vous que les ports que vous avez spécifiés lors de la configuration de Wings sont ouverts sur votre gateway.
Une fois les ports ouvert le resultat doit etre :
