Installation du panel Pterodactyl Ubuntu 22.04

đŸ› ïž 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 -p

2. 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.cnf

Cherchez 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/bash

2. Crée le dossier du panel :

mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl

3. 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:setup

Tu seras invité à renseigner :

  1. Egg Author Email <- Votre adresse email
  2. Application URL <- L’adresse IP de votre serveur avec http devant, exemple: http://51.89.132.2.
  3. Application Timezone <- Entrez Europe/Paris, si vous vivez en France bien sûr.
  4. Cache Driver <- Entrez file.
  5. Session Driver <- Entrez database.
  6. Queue Driver <- Entrez database.
  7. Enable UI based settings editor? <- Entrez yes.
  8. Enable sending anonymous telemetry data? <- Entrez no.

📌 Base de donnĂ©es

Lance :

php artisan p:environment:database
  1. Database Host <- Entrez 127.0.0.1
  2. Database Port <- Entrez 3306
  3. Database Name <- Entrez panel
  4. Database Username <- Entrez pterodactyl
  5. 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
  1. Is this user an administrator? (yes/no) <– Entrez yes
  2. Email Adress <– Votre adresse email
  3. Username <- Entrez votre nom d’utilisateur, exemple Seb
  4. First Name <- Entrez votre prénom
  5. Last Name <- Entrez votre nom
  6. 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/crontab

Cré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.service

Et 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.conf

Et 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 restart

Si 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/wings

2. 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 :

  1. Allez dans Locations.
  2. Cliquer sur Create New.
  3. Dans Short Code, entrez localhost.
  4. Sauvegardez en cliquant sur Create.

Ensuite, créez le Node :

  1. Allez dans Nodes.
  2. Cliquez sur Create New.
  3. Dans name, entrez node1.
  4. Dans FQDN, indiquez l’adresse IP du VPS, par exemple pour moi 51.38.243.187.
  5. Dans Communicate Over SSL, sélectionnez Use HTTP Connection.
  6. Dans Daemon Server File Directory, entrez /var/www/daemon-data.
  7. Dans Total Memory, indiquez la RAM total du VPS en Mo. Dans mon cas j’ai 8 Go, donc 8 * 1024 = 8192.
  8. Dans Memory Over-Allocation, entrez 0.
  9. 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.
  10. Dans Disk Over-Allocation, entrez 0.
  11. 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.yml

CTRL + 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.service

Et on l’active :

systemctl enable --now wings
service wings restart

Vous 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 :

  1. Cliquez sur Nodes dans la navigation, et sélectionnez la node1.
  2. 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 :

  1. Dans IP Address, entrez l’adresse IP de votre VPS, par exemple pour moi 51.38.243.187.
  2. 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.
  3. 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 :

  1. Cliquez sur Create New.
  2. Dans Server Name, entrez le nom du serveur, par exemple Serveur de test.
  3. Dans Server Owner, entrez le nom du compte utilisateur qui sera propriétaire du serveur sur le panel, dans mon cas Seb.
  4. Dans Default Allocation, sélectionnez le port qui sera utilisé pour le serveur de jeu.
  5. Dans Memory, indiquez la RAM allouée à votre serveur Minecraft. Pour notre exemple, on alloue 4096 Mo.
  6. Dans Disk Space, vous pouvez spĂ©cifier l’espace disque max du serveur, nous vous conseillons de rentrer -1 pour dĂ©sactiver.
  7. 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.
  8. Dans Server Version, vous pouvez spécifier la version que vous souhaitez.
  9. 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:

  1. Allez dans File Manager.
  2. Ouvrez le fichier eula.txt.
  3. Ajoutez eula=true.
  4. 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:cache

Autres 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 :