DockerLogicielTechTuto

Pterodactyl sous docker

Pterodactyl est un logiciel qui permet d’héberger des serveurs de jeux (Minecraft, GTA…) il possède un système de customisation qui lui permet de prendre en charge tous les serveurs de jeux possibles.

Les serveurs de jeux creer le sont sous docker.

L’ajout des containers

Il va falloir installer 4 containers :

  • MariaDB : La base de donnees
  • Redis : Le cache
  • Panel : Le front (la vue web)
  • Wings : Le backend (Celui qui gère la création des serveurs de jeux)

Installation

ATTENTION ⚠️

Pterodactyl nécessite que les dossiers lib et log aient le même chemin sur votre system ET DANS LE CONTAINER !

Dans mon tuto j’ai ces 2 chemins :

  • /home/Pterodactyl/wings/var/lib/pterodactyl/
  • /home/Pterodactyl/wings/var/log/pterodactyl/

Vous pouvez changer le chemin en fonction d’où vous stockez vos fichiers, mais vous devez absolument mapper le même chemin sur votre system et dans le container peu importe la méthode d’installation choisie

Il vous suffit de changer l’emplacement des volumes en fonction de votre serveur ainsi que les variables d’environnements.

docker-compose.yml

version: '3.8'

services:
  wings:
    image: ghcr.io/pterodactyl/wings:latest
    restart: always
    tty: true
    ports:
      - "10103:443"
    environment:
      TZ: "Europe/Paris"
      WINGS_UID: 988
      WINGS_GID: 988
      WINGS_USERNAME: "pterodactyl"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/var/lib/docker/containers/:/var/lib/docker/containers/"
      - "/home/Pterodactyl/wings/etc/pterodactyl/:/etc/pterodactyl/" #À changer
      - "/home/Pterodactyl/wings/var/lib/pterodactyl/:/home/Pterodactyl/wings/var/lib/pterodactyl/" #À changer
      - "/home/Pterodactyl/wings/var/log/pterodactyl/:/home/Pterodactyl/wings/var/log/pterodactyl/" #À changer
      - "/tmp/pterodactyl/:/tmp/pterodactyl/"
  PterodactylPanel:
    image: ghcr.io/pterodactyl/panel:latest
    restart: always
    ports:
      - "10101:80"
    links:
      - PterodactylMariadb
      - PterodactylRedis
    volumes:
      - "/home/Pterodactyl/panel/app/var/:/app/var/" #À changer
      - "/home/Pterodactyl/panel/app/storage/logs:/app/storage/logs/" #À changer
    environment:
      APP_TIMEZONE: "Europe/Paris"
      APP_URL: "http://panel.jamestech.fr" #À changer
      REDIS_HOST: "PterodactylRedis"
      DB_PASSWORD: "password" #À changer
      APP_ENV: "production"
      DB_USERNAME: "pterodactyl"
      DB_DATABASE: "pterodactyl"
      DB_HOST: "PterodactylMariadb"
      DB_PORT: 3306
  PterodactylMariadb:
    image: mariadb:10.5
    restart: always
    ports:
      - "10102:3306"
    volumes:
      - "/home/Pterodactyl/db/var/lib/mysql:/var/lib/mysql"
    environment:
      MARIADB_DATABASE: "pterodactyl"
      MARIADB_USER: "pterodactyl"
      MARIADB_PASSWORD: "password" #À changer
      MARIADB_ROOT_PASSWORD: "password" #À changer
  PterodactylRedis:
    image: redis:alpine
    restart: always

Pour les utilisateurs d’Unraid, c’est très simple, il vous suffit d’exécuter cette commande :

wget https://jamestech.fr/wp-content/uploads/2024/01/JamesTech-Tuto-Pterodactyl.zip && unzip JamesTech-Tuto-Pterodactyl.zip -d /boot/config/plugins/dockerMan/templates-user && rm JamesTech-Tuto-Pterodactyl.zip

Cela ajoute les templates dans votre serveur et vous pouvez les retrouver au moment de l’ajout d’un nouveau container :

Il vous suffit se sélectionner le Network Type et de changer le mot de passe de la base de données.


docker run -d --name PterodactylPanel \
  -p 10101:80 \
  --link PterodactylMariadb \
  --link PterodactylRedis \
  -v /home/Pterodactyl/panel/app/var/:/app/var/ \
  -v /home/Pterodactyl/panel/app/storage/logs:/app/storage/logs/ \
  -e APP_TIMEZONE="Europe/Paris" \
  -e APP_URL="http://panel.jamestech.fr" \
  -e REDIS_HOST="PterodactylRedis" \
  -e DB_PASSWORD="password" \
  -e APP_ENV="production" \
  -e DB_USERNAME="pterodactyl" \
  -e DB_DATABASE="pterodactyl" \
  -e DB_HOST="PterodactylMariadb" \
  -e DB_PORT=3306 \
  ghcr.io/pterodactyl/panel:latest
docker run -d --name PterodactylMariadb \
  -p 10102:3306 \
  -v /home/Pterodactyl/db/var/lib/mysql:/var/lib/mysql \
  -e MARIADB_DATABASE="pterodactyl" \
  -e MARIADB_USER="pterodactyl" \
  -e MARIADB_PASSWORD="password" \
  -e MARIADB_ROOT_PASSWORD="password" \
  mariadb:10.5
docker run -d --name PterodactylRedis \
  redis:alpine

Ajouter les redirections sur votre Reverse Proxy

Sur votre Reverse proxy ajouté une redirection panel.VotreDomaine.fr vers le container Panel sur le port 10101 et la même chose pour wings.VotreDomaine.fr pour le container Wings sur le port 10103

Creation de l’utilisateur Admin

Pour ajouter le premier utilisateur il va falloir executer une commande dans le container du Panel, pour ce faire executer cette commande :

compose_PterodactylPanel_1 est le nom du container en fonction de votre méthode d’installation le nom peut être diffèrent

docker exec -it compose_PterodactylPanel_1 sh

Une fois dans le container exécuté cette commande et remplissez les champs demandés :

php artisan p:user:make

C’est bon, vous pouvez maintenant vous connecter

Ajout du Node

En premier lieu, vous devez ajouter une location :

Maintenant il faut ajouter un Node

Remplacer les differents champs en fonction de votre configuration :

  • Name : Vous pouvez mettre ce que vous voulez
  • Location : Sélectionner la location créée précédemment
  • FQDN : Ajouter le domaine que vous avez configurer plus tôt pour le container Wings
  • Communicate Over SSL : Cocher Use SSL Connection
  • Behind Proxy : Cocher Behind Proxy
  • Daemon Server File Directory : Attention : Vous devez mettre le même lien que dans votre config docker donc pour moi :  /home/Pterodactyl/wings/var/lib/pterodactyl
    Et ajouter /volumes à la fin :
     /home/Pterodactyl/wings/var/lib/pterodactyl/pterodactyl
  • Total Memory : La ram maximum que l’ensemble de vos serveurs de jeux peuvent utiliser
  • Memory Over-Allocation : Mettez 0 pour empêcher la création de nouveau serveur si vous dépassez la ram
  • Total Disk Space : La taille maximum que peuvent prendre vos serveurs sur vos disques
  • Disk Over Allocation : Mettez 0 pour empêcher la création de nouveau serveur si vous dépassez la taille maximum de stockage configuré
  • Daemon Port : Ajouter 443
  • Daemon SFTP Port : Laisser 2022

Cliquer sur Create Node et sélectionner l’onglet Configuration

Maintenant, vous allez devoir créer un fichier config.yml et copier cette configuration à l’emplacement /etc/pterodactyl dans le container, donc pour ma configuration cela donne :  /home/Pterodactyl/wings/etc/pterodactyl/config.yml

Une fois fait, redémarrer le container Wings et normalement sur le Panel le node devrait apparaître en vert :

Configuration

Penser a ajouter des ports dans l’onglet Allocation de votre Node

Dans IP Adresses ajouter l’ip de votre serveur et pour les ports mettez une plage d’ip pour en ajouter plusieurs

Ajouter un serveur de jeux

Pour ajouter un serveur de jeux il faut se rendre sur Servers, Create New :

Reinseignez les diffenrents champs obligatoire :

  • Server Name : Le nom du serveur
  • Server Owner : Le propriétaire du serveur
  • Default Allocation: Le port principale du serveur
  • Addional Allocations : Si vous voulez ajouter des ports supplémentaires (nécessaire pour certains jeux)
  • Application Feature Limits : Si vous avez besoin d’une base de données (utilisateur avancé)
  • CPU Limit : Le nombre de cœurs processeur allouer au serveur (100 = 1 cœur, 200 = 2 cœurs…) 0 = illimité
  • CPU Pinning : Si vous voulez utiliser des cœurs en particulier
  • Memory : La memoire du serveur (Ex: 1024 pour 1gb de ram)
  • Swap : Le swap alloué (si vous utilisez toutes la ram allouer le serveur utilisera le swap)
  • Disk Space : L’espace de stockage attribué au serveur
  • Block IO Weight : (utilisateur avancé)
  • Nest : Le jeu
  • Egg : La  version du jeu (Ex: pour Minercaft, on peut sélectionner Vanilla, Forge, Spigot…)
  • Docker Image : (utilisateur avancé)
  • Startup Command : (utilisateur avancé)
  • Service Variables : Change en fonction du jeu

Une fois votre serveur créer cliquer tout en haut à droite sur Exit Admin Control

On voit le serveur que je viens de créer et si je clique dessus, je peux le gérer

Conclusion

J’ai décidé de faire cet article, car l’installation de ce logiciel est un peu complexe, si cela vous a aidé n’hésitez pas a laisser un commentaire.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page