Aller au contenu

Panneau de contrôle Pterodactyl

Dans cet article

Information

Pterodactyl est un panneau de gestion de serveurs de jeux open-source gratuit. Il permet une gestion centralisée des serveurs pour Minecraft, CS2, Rust et plus de 50 autres jeux via une interface web.

Pterodactyl. Fonctionnalités principales

Pterodactyl est une solution moderne de gestion de serveurs de jeux qui combine :

  • Prise en charge de plus de 50 jeux : Fournit des modèles prêts à l'emploi pour l'installation rapide de serveurs de jeux populaires. Configure automatiquement les logiciels, les dépendances et les paramètres de démarrage, prend en charge la sélection des versions de jeux et l'ajout de modèles personnalisés.
  • Gestion précise des ressources : Contrôle la RAM, le CPU, l'espace disque et l'allocation des priorités entre les serveurs. Empêche les surcharges, alloue les ressources par quotas et utilise la mémoire SWAP pour la stabilité.
  • Sauvegardes automatiques fiables : Assure une sauvegarde planifiée flexible avec sélection des données (serveur entier ou fichiers clés). Stocke les sauvegardes localement ou dans le cloud (S3, FTP, GDrive) avec chiffrement et récupération instantanée.
  • Capacité multi-serveurs efficace : Exécute chaque serveur dans un conteneur Docker isolé. Distribue automatiquement la charge entre les nœuds, attribue des ports sans conflits et permet de regrouper les serveurs apparentés.
  • Accès multi-utilisateurs flexible : Gère les autorisations via un modèle basé sur les rôles (rôles prédéfinis + personnalisés) avec plus de 50 autorisations granulaires. Prend en charge l'accès temporaire, l'audit des actions et l'authentification à deux facteurs.
  • Console de gestion en temps réel : Offre un contrôle total via une interface web avec un terminal interactif (similaire à SSH). Inclut le formatage en couleur, l'historique des commandes, des boutons d'action rapide et des notifications d'événements.
  • Surveillance des statistiques en temps réel : Affiche des graphiques d'utilisation des ressources (CPU, RAM, disque, réseau) et des métriques de jeu (joueurs en ligne, TPS, ping). Permet de créer des tableaux de bord personnalisés, de configurer des alertes et d'exporter les données au format CSV.
  • Gestion simplifiée des mods/plugins : Propose une boutique intégrée pour l'installation automatique de mods, la gestion des versions et des dépendances. Inclut un éditeur de configuration visuel avec coloration syntaxique et notifications de mise à jour.
  • Mises à jour automatiques : Assure un fonctionnement ininterrompu du système. Met à jour les serveurs de jeux selon un planning avec un mode test et un retour en arrière en cas d'erreur. Met à jour le panneau de contrôle avec une seule commande (php artisan p:upgrade), vérifie la compatibilité et migre la base de données sans perte de données. Met à jour automatiquement le démon Wings, maintenant la compatibilité avec différentes distributions Linux.

Fonctionnalités de déploiement

ID Nom du logiciel Système d'exploitation compatible VM BM VGPU GPU Min CPU (Cœurs) Min RAM (GB) Min HDD/SSD (GB) Domaine personnalisé Actif
326 Pterodactyl Ubuntu 22.04 + + + + 1 1 - Non COMMANDER

Composants principaux du système :

Composant Objectif
Panel Interface de gestion web (PHP/Laravel). Fournit le panneau d'administration et l'interface utilisateur pour la gestion des serveurs
Wings Démon pour le démarrage physique des serveurs de jeux (Go). Installé séparément sur les machines où les serveurs de jeux s'exécuteront
Base de données MariaDB pour le stockage des configurations, utilisateurs, serveurs et paramètres
Docker Plateforme de conteneurisation, requise pour le fonctionnement de Wings et l'isolation des serveurs de jeux

Fichiers de configuration

Chemin Objectif
/var/www/pterodactyl/.env Paramètres principaux du Panel : connexion à la base de données, Redis, APP_URL, APP_KEY
/var/www/pterodactyl/storage/logs/laravel.log Journaux de fonctionnement du Panel (erreurs d'application, requêtes)
/var/log/nginx/pterodactyl.app-error.log Journaux du serveur web NGINX pour le Panel
/etc/pterodactyl/config.yml Configuration de Wings : jeton d'autorisation, URL du Panel, paramètres Docker. Créé lors de l'installation de Wings
/var/lib/pterodactyl/volumes/ Répertoire des données des serveurs de jeux : fichiers de monde, configurations, plugins. Créé après l'installation de Wings

Ce qui est installé automatiquement

Le playbook installe et configure automatiquement :

  • Pterodactyl Panel - panneau de gestion central avec interface web ;
  • MariaDB - base de données pour stocker toutes les données du système ;
  • Redis - pour la mise en cache et les files d'attente de tâches ;
  • NGINX - serveur web pour servir le Panel ;
  • PHP 8.3 + PHP-FPM - pour le fonctionnement de l'application Laravel ;
  • Certbot - pour l'acquisition automatique de certificats SSL ;
  • Services Systemd - pteroq (traitement de la file d'attente), tâches cron (planificateur).

Ce qui doit être installé en supplément

Pour exécuter des serveurs de jeux, vous avez besoin de :

  • Wings - démon qui démarre et gère physiquement les serveurs de jeux dans des conteneurs Docker

Wings est installé sur chaque machine (nœud) où les serveurs de jeux sont prévus pour s'exécuter. Il peut s'agir du même serveur où le Panel est installé (configuration "tout-en-un") ou de serveurs dédiés séparés (architecture distribuée).

Configuration système requise

Pour le Panel (Panneau de contrôle)

Configuration minimale :

  • Processeur : 2+ cœurs ;
  • Mémoire : 2 Go de RAM (4 Go recommandés pour un fonctionnement stable) ;
  • Disque : 20 Go SSD (40+ Go recommandés pour les journaux et les sauvegardes) ;
  • OS : Ubuntu 22.04 LTS (Jammy) - strictement cette version pour l'installation automatique.

Logiciels (installés automatiquement) :

  • PHP 8.3 + PHP-FPM ;
  • MariaDB 10.6+ ;
  • Redis 7.0+ ;
  • NGINX ;
  • Composer 2 ;
  • Certbot (pour SSL) ;
  • Docker (préinstallé dans l'image).

Exigences réseau :

  • Ports ouverts : 80 (HTTP), 443 (HTTPS) ;
  • Adresse IP statique ou nom de domaine (pour le certificat SSL) ;
  • Connexion Internet stable.

Pour le Nœud (Nœuds avec serveurs de jeux)

Pour 5-10 serveurs de jeux simultanés :

  • Processeur : 4+ cœurs (6-8 cœurs recommandés pour les jeux exigeants) ;
  • Mémoire : 8 Go de RAM (12-16 Go recommandés selon les jeux) ;
  • Disque : 50 Go SSD (100+ Go recommandés pour plusieurs serveurs avec mods) ;
  • OS : Ubuntu 20.04/22.04, Debian 10/11, CentOS ⅞ (tout Linux avec support Docker).
  • Logiciels :
    • Docker (préinstallé dans l'image) ;
    • Wings (nécessite une installation).

Exigences réseau :

  • Ports ouverts :
    • 8080 - API Wings (communication avec le Panel) ;
    • 2022 - SFTP (téléchargement de fichiers vers les serveurs de jeux) ;
    • 25565-25665 - plage de ports de jeu (configurée individuellement) ;
  • Connexion Internet stable avec une bonne bande passante ;
  • Faible latence pour un jeu confortable.

Configuration "Tout-en-un" (Panel + Wings sur un seul serveur)

Pour les tests ou les petits projets, vous pouvez utiliser un seul serveur :

  • Processeur : 4+ cœurs ;
  • Mémoire : 8 Go de RAM (minimum 6 Go) ;
  • Disque : 60 Go SSD (100+ Go recommandés) ;
  • OS : Ubuntu 22.04 LTS.

Dans cette configuration, un seul serveur exécute :

  • Pterodactyl Panel (interface web) ;
  • Wings (démon de démarrage des serveurs) ;
  • Base de données et cache ;
  • Serveurs de jeux dans des conteneurs Docker.

Recommandations de ressources pour les jeux

Exigences approximatives par serveur de jeu :

Jeu RAM CPU Disque
Minecraft (Vanilla/Paper) 2-4 Go 2+ cœurs 5-10 Go
Minecraft avec mods (Forge/Fabric) 4-8 Go 4+ cœurs 10-20 Go
CS2 / CS:GO 4-6 Go 4+ cœurs 15-20 Go
Rust 8-12 Go 4+ cœurs 20-30 Go
ARK: Survival Evolved 8-16 Go 6+ cœurs 30-50 Go
Terraria 1-2 Go 2+ cœurs 2-5 Go
Valheim 4-6 Go 4+ cœurs 5-10 Go

Premiers pas après le déploiement de Pterodactyl

Après avoir payé votre commande, vous recevrez une notification à l'adresse e-mail que vous avez enregistrée, vous informant que votre serveur est prêt à fonctionner. Elle contiendra l'adresse IP du VPS, ainsi qu'un nom d'utilisateur et un mot de passe pour la connexion. Les clients de notre entreprise gèrent le matériel dans le panneau de contrôle des serveurs et de l'APIInvapi.

Les données d'autorisation que l'on peut trouver dans l'onglet Configuration* >> **Tags du panneau de contrôle du serveur ou dans l'e-mail sont les suivantes :

  • Lien : dans la balise webpanel. Pour accéder au panneau d'administration, ajoutez /admin au lien principal ;
  • Identifiant : admin ;
  • Mot de passe : envoyé par e-mail à votre adresse lorsque le serveur est prêt à fonctionner après le déploiement du logiciel.

Première connexion

  1. Ouvrez un navigateur web et accédez à l'adresse de votre panneau Pterodactyl
  2. Cliquez sur Login :

  3. Après une autorisation réussie, vous serez redirigé vers la page principale du panneau.

  4. Pour accéder au panneau d'administration, cliquez sur le bouton :

Création d'un utilisateur

  1. Dans le menu de gauche du panneau d'administration, cliquez sur le nom de la section Users ;
  2. Cliquez sur le bouton Create New dans le coin supérieur droit :

  3. Remplissez les champs requis :

    • Username : nom d'utilisateur ;
    • Email : adresse e-mail de l'utilisateur ;
    • First Name : prénom ;
    • Last Name : nom de famille ;
    • Password : mot de passe (minimum 8 caractères, doit contenir des lettres de différentes casse et des chiffres) ;
  4. Si nécessaire, sélectionnez Yes dans la ligne Administrator pour accorder des droits d'administrateur ;
  5. Cliquez sur Create User :

Création d'un emplacement

Qu'est-ce qu'un emplacement

Un emplacement est un regroupement logique de nœuds par emplacement géographique ou par objectif. Utilisé pour organiser les serveurs, par exemple : "EU", "US", "Asie", "Production", "Test". Les utilisateurs ne voient pas directement les emplacements ; il s'agit d'un outil administratif.

  1. Dans le menu de gauche, sélectionnez Locations ;
  2. Cliquez sur le bouton Create New dans le coin supérieur droit :

  3. Remplissez les champs :

    • Short Code : code court de l'emplacement (par exemple, "US1", "EU1") ;
    • Description : description de l'emplacement (par exemple, "Centre de données aux États-Unis") ;
  4. Cliquez sur Create :

Création d'un nœud

Qu'est-ce qu'un nœud

Un nœud est un serveur physique ou virtuel sur lequel les serveurs de jeux sont lancés via Wings. Chaque nœud dispose de ses propres ressources (CPU, RAM, disque) et peut servir plusieurs serveurs de jeux simultanément.

Préparation avant la création d'un nœud

Avant de créer un nœud, assurez-vous que :

  • Docker est installé sur le serveur (préinstallé dans les images HOSTKEY) ;
  • Vous disposez d'une adresse IP ou d'un nom de domaine pour le nœud ;
  • Les ports 8080 (API Wings) et 2022 (SFTP) seront ouverts dans le pare-feu.

Création d'un nœud dans le Panel

  1. Dans le menu de gauche du panneau d'administration, sélectionnez Nodes ;

  2. Cliquez sur le bouton Create New dans le coin supérieur droit :

  3. Remplissez les paramètres de base :

    • Name : nom unique du nœud (par exemple, hostkey-us-node1) ;
    • Location : sélectionnez l'emplacement créé précédemment ;
    • Public : cochez la case si le nœud doit être visible par les utilisateurs ;
    • FQDN : spécifiez le nom de domaine du panneau (par exemple, pterodactyl50514.hostkey.in) ou l'adresse IP ;
    • Communicate Over SSL : cochez la case si le Panel utilise HTTPS ;
    • Behind Proxy : laissez désactivé si le nœud n'est pas derrière un proxy.
  4. Configurez les paramètres de ressources :

    • Daemon Server File Directory : /var/lib/pterodactyl/volumes (ne pas modifier) ;
    • Total Memory : spécifiez la RAM disponible en Mo (par exemple, 4608 pour un serveur de 6 Go en tenant compte de la réserve) ;
    • Memory Over-Allocation : spécifiez 0 (pas de sur-allocation) ;
    • Total Disk Space : spécifiez l'espace disque disponible en Mo (par exemple, 102400 pour un disque de 120 Go en tenant compte de la réserve) ;
    • Disk Over-Allocation : spécifiez 0 (pas de sur-allocation) ;
    • Daemon Port : 8080 (laisser par défaut) ;
    • Daemon SFTP Port : 2022 (laisser par défaut).

  5. Cliquez sur le bouton Create Node.

Important lors de l'utilisation d'HTTPS

Si le Panel fonctionne via HTTPS, vous devez spécifier un nom de domaine dans le champ FQDN, et non une adresse IP. Spécifier une adresse IP avec SSL activé entraînera une erreur de validation.

Exemple de paramètres pour une configuration tout-en-un (4 vCore / 6 Go RAM / 120 Go SSD)

    Name: hostkey-us-node1
    Location: US1
    Public: ☑
    FQDN: pterodactyl50514.hostkey.in
    Communicate Over SSL: ☑
    Behind Proxy: ☐


    Total Memory: 4608 MB (laissant 1,5 Go pour le système)
    Memory Over-Allocation: 0
    Total Disk Space: 102400 MB (laissant 20 Go pour le système)
    Disk Over-Allocation: 0

Configuration des allocations

Après la création d'un nœud, vous devez configurer les allocations - il s'agit de combinaisons d'adresses IP et de ports qui seront disponibles pour l'attribution aux serveurs de jeux.

  1. Après la création du nœud, sa page s'ouvrira automatiquement. Accédez à l'onglet Allocation ;

  2. Dans la section Assign New Allocations (côté droit), remplissez les champs :

    • IP Address : saisissez l'adresse IP du serveur ;
    • IP Alias : spécifiez une description (par exemple, Main IP) ou laissez vide ;
    • Ports : spécifiez une plage de ports (par exemple, 25565-25570 pour les serveurs Minecraft).
  3. Cliquez sur le bouton vert Submit :

  4. Les allocations créées apparaîtront dans le tableau Existing Allocations (côté gauche). Chaque ligne représente une combinaison IP:port distincte qui peut être attribuée à un serveur de jeux.

Remarque

Sans configuration des allocations, vous ne pourrez pas créer de serveurs sur ce nœud. Vous devez ajouter au moins une adresse IP avec des ports.

Recommandations de ports

  • Minecraft : 25565-25570 (port standard 25565) ;
  • CS2/CS:GO : 27015-27020 (port standard 27015) ;
  • Rust : 28015-28020 (port standard 28015) ;
  • Valheim : 2456-2460 (port standard 2456).

Installation de Wings

Critique pour le fonctionnement

Après la création d'un nœud et la configuration des allocations, vous devez installer Wings sur le serveur. Sans Wings, le nœud affichera un statut Hors ligne et ne pourra pas démarrer les serveurs de jeux.

Connectez-vous au serveur via SSH et exécutez les commandes :

Créez un répertoire pour la configuration :

mkdir -p /etc/pterodactyl
Téléchargez Wings :

curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
Accordez les permissions d'exécution :

chmod u+x /usr/local/bin/wings
Vérifiez l'installation :

wings version

La version de Wings doit s'afficher (par exemple, wings vv1.12.1).

Configuration de Wings via Auto-Deploy (Recommandé)

  1. Dans le panneau d'administration, accédez à l'onglet Configuration du nœud créé ;

  2. Dans la section Auto-Deploy (côté droit), cliquez sur le bouton Generate Token :

  3. Copiez la commande générée. Elle ressemblera à ceci :

        cd /etc/pterodactyl && wings configure --panel-url https://your-domain.com --token TOKEN --node 1
    

  4. Exécutez la commande copiée sur le serveur :

        cd /etc/pterodactyl && wings configure --panel-url https://pterodactyl50514.hostkey.in --token TOKEN --node 1
    

    Le message suivant doit apparaître : Successfully configured wings.

  5. Vérifiez la configuration créée :

        cat /etc/pterodactyl/config.yml
    

Création d'un service systemd

Créez un service systemd pour le démarrage automatique de Wings :

cat > /etc/systemd/system/wings.service <<'EOF'
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service


[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s


[Install]
WantedBy=multi-user.target
EOF

Démarrage de Wings

Rechargez la configuration systemd

systemctl daemon-reload
Activez le démarrage automatique et démarrez Wings

systemctl enable --now wings
Vérifiez le statut

systemctl status wings

Le statut doit afficher Active: active (running).

Vérification du fonctionnement

Vérifiez les journaux de Wings :

journalctl -u wings -n 50

Les journaux doivent contenir les messages suivants :

  • fetching list of servers from API - Wings connecté au Panel ;
  • configuring internal webserver - Serveur web Wings démarré ;
  • sftp server listening for connections - Le serveur SFTP fonctionne.

Vérifiez la création du répertoire du serveur :

ls -la /var/lib/pterodactyl/volumes/

Vérification du statut dans le panneau d'administration

  1. Ouvrez le panneau d'administration : https://your-domain.com/admin ;
  2. Accédez à : Admin > Nodes > votre nœud ;
  3. Actualisez la page (F5) ;
  4. L'indicateur de statut vert Online doit s'afficher en haut à droite ;
  5. Sur l'onglet About, les informations sur les ressources doivent s'afficher (CPU, RAM, Disque).

Si le nœud affiche le statut En ligne

Le nœud est entièrement configuré et prêt à créer des serveurs de jeux !

Dépannage

Le nœud affiche le statut Hors ligne

Vérifiez le statut de Wings :

systemctl status wings

Si Wings ne fonctionne pas, démarrez-le :

systemctl start wings

Vérifiez les journaux pour les erreurs :

journalctl -u wings -n 100

Problèmes courants :

  1. Wings ne peut pas se connecter au Panel :

    • Vérifiez l'URL du panneau dans la configuration : cat /etc/pterodactyl/config.yml | grep remote ;
    • Assurez-vous que le Panel est accessible : curl -I https://your-domain.com.
  2. Le port 8080 est bloqué par le pare-feu :

    • Vérifiez le port : netstat -tulpn | grep 8080 ;
    • Ouvrez le port : ufw allow 8080/tcp.
  3. Problèmes SSL :

    • Si le Panel utilise HTTPS, Wings doit également fonctionner avec SSL ;
    • Vérifiez les paramètres SSL dans /etc/pterodactyl/config.yml.

Configuration manuelle (Méthode alternative)

Si Auto-Deploy ne fonctionne pas, vous pouvez configurer Wings manuellement :

  1. Dans le panneau d'administration, accédez à l'onglet Configuration du nœud ;
  2. Copiez le contenu du fichier de configuration depuis le champ de texte de gauche ;
  3. Sur le serveur, créez un fichier de configuration :

    nano /etc/pterodactyl/config.yml
    

  4. Collez la configuration copiée et enregistrez (Ctrl+X, puis Y, puis Entrée) ;

  5. Redémarrez Wings : systemctl restart wings ;
  6. Vérifiez le statut : systemctl status wings.

Création d'un nid et ajout d'un œuf

Création d'un nid

  1. Dans le menu de gauche, sélectionnez la section Nests ;
  2. Cliquez sur le bouton Create New dans le coin supérieur droit :

  3. Remplissez les champs :

    • Name : nom du nid (par exemple, "Minecraft") ;
    • Description : description du nid ;
  4. Cliquez sur Save :

Télécharger un œuf prêt à l'emploi

  1. Ouvrez le site https://pelican-eggs.github.io/ ;

  2. Trouvez le jeu souhaité :

    • Dans la section Game Eggs, sélectionnez une catégorie (par exemple, Minecraft) ;
    • Trouvez le type de serveur souhaité (par exemple, Paper, Vanilla, Forge) ;
  3. Cliquez sur le nom du serveur pour ouvrir la page GitHub ;

  4. Trouvez le fichier egg-name.json (par exemple, egg-paper.json) ;

  5. Cliquez sur le fichier, puis sur le bouton Raw dans le coin supérieur droit ;

  6. Enregistrez le fichier (Ctrl+S ou clic droit > Save as).

Œufs populaires

Importer l'œuf dans le Panel

  1. Dans le panneau d'administration, accédez à la section Nests ;

  2. Cliquez sur le bouton Import Egg dans le coin supérieur droit :

  3. Cliquez sur Choose File et sélectionnez le fichier .json téléchargé ;

  4. Cliquez sur Import :

L'œuf sera importé avec tous les paramètres, images Docker et variables.

Vérification de l'œuf importé

  1. Dans la liste des œufs, trouvez celui importé (par exemple, Paper) ;

  2. Cliquez dessus pour afficher les paramètres ;

  3. Assurez-vous que les éléments suivants sont remplis :

    • Docker Images : liste des images disponibles ;
    • Install Script : script d'installation du serveur ;
    • Variables : variables d'environnement (version, paramètres).

Création d'un serveur

  1. Dans le menu de gauche, sélectionnez Servers ;

  2. Cliquez sur le bouton Create New dans le coin supérieur droit :

  3. Remplissez le formulaire de création :

Détails principaux :

  • Server Name : nom du serveur (par exemple, Test Minecraft Server) ;
  • Server Owner : sélectionnez l'utilisateur propriétaire dans la liste ;
  • Server Description : description (facultatif) ;
  • Start Server when Installed : laissez la case cochée.

Gestion des allocations :

  • Node : sélectionnez le nœud créé ;
  • Default Allocation : sélectionnez l'adresse IP:port dans la liste ;
  • Additional Allocations : laissez vide.

Limites des fonctionnalités de l'application :

  • Database Limit : 0 ;
  • Allocation Limit : 0 ;
  • Backup Limit : 0.

Gestion des ressources :

  • CPU Limit : 0 (pas de limites) ;
  • Memory : 2048 Mio (2 Go pour démarrer) ;
  • Swap : 0 Mio ;
  • Disk Space : 5120 Mio (5 Go) ;
  • Block IO Weight : 500 ;
  • Enable OOM Killer : laissez désactivé.

Configuration du nid :

  • Nest : Minecraft ;
  • Egg : Paper (pas Sponge !) ;
  • Docker Image : Java 21 ;
  • Service Variables : laissez les valeurs par défaut.

  • Cliquez sur Create Server en bas de la page ;

  • Attendez la fin de l'installation (le statut Installing passera à Offline) :

Démarrage et configuration du serveur

  1. Après l'installation, ouvrez le serveur depuis la liste (Admin > Servers) :

  2. Accédez au panneau utilisateur (sans /admin), connectez-vous en tant que propriétaire du serveur ;

  3. Cliquez sur le bouton Start :

  4. Au premier lancement, une fenêtre d'acceptation de licence apparaîtra :

  5. Cliquez sur I Accept pour accepter l'EULA de Minecraft ;

  6. Attendez que le serveur démarre (le statut passera à Running) :

Vérification des performances

Ouvrez dans votre navigateur (remplacez l'IP par la vôtre) :

https://api.mcsrvstat.us/3/<adresse IP>:25565
Si la réponse affiche "online": true, le serveur fonctionne et est accessible aux joueurs.

Adresse de connexion :

<adresse IP>:25565

Remarque

Des informations détaillées sur les paramètres principaux de Pterodactyl sont contenues dans la documentation des développeurs.

Commander un serveur Pterodactyl via l'API