Installer Pterodactyl avec Docker
Pterodactyl

Installer Pterodactyl avec Docker

Table des matières

Conçu dans un souci de sécurité, Pterodactyl exécute tous les serveurs de jeu dans des conteneurs Docker isolés tout en exposant une interface utilisateur belle et intuitive aux administrateurs et aux utilisateurs.

Pterodactyl prend en charge une grande variété de jeux en utilisant des conteneurs Docker pour isoler chaque instance, vous donnant ainsi la possibilité d'héberger vos jeux à travers le monde sans avoir à surcharger chaque machine physique avec des dépendances supplémentaires.

Certains de nos principaux jeux pris en charge incluent :

  • Minecraft — y compris Spigot, Sponge, Bungeecord, Waterfall, et plus...
  • Rust
  • Terraria
  • Teamspeak
  • Mumble
  • Team Fortress 2
  • Counter Strike: Global Offensive
  • Garry's Mod
  • ARK: Survival Evolved

En plus de notre nid standard de jeux pris en charge, notre communauté repousse constamment les limites de ce logiciel et de nombreux autres jeux sont disponibles fournis par la communauté. Certains de ces jeux incluent :

  • Factorio
  • San Andreas: MP
  • Pocketmine MP
  • Squad
  • FiveM
  • Xonotic
  • Discord ATLBot

⚡Caractéristiques

  • La sécurité avant tout: La sécurité est de premier ordre sur cette plate-forme avec le hachage bcrypt, le cryptage AES-256-CBC et la prise en charge HTTPS prête à l'emploi.
  • Outillage moderne: Construit sur une pile moderne utilisant les meilleures pratiques de conception qui facilitent l’intervention et la modification.
  • Gratuit et open source: Ptérodactyle est 100% gratuit et sous licence MIT. Tout le code est également entièrement open source.
  • Convivial: L'interface de Pterodactyl est si bien conçue que même Hanzo peut l'utiliser.
  • Évolutive: Que vous soyez une société d'hébergement, le prochain Hyplex ou simplement des mecs jouant à des jeux vidéo, nous avons ce qu'il vous faut.

L'installation du panel

  1. Créez un dossier pterodactyl:
sudo mkdir pterodactyl
  1. Créez votre docker-compose.yml dedans:
sudo nano docker-compose.yml
  1. Collez ça dedans en prenant soin d'adapter le port et les volumes suivant votre configuration, il y aura quelques modifications à faire, qui sont indiquées en dessous:
version: '3.8'
x-common:
  database:
    &db-environment
    # Do not remove the "&db-password" from the end of the line below, it is important
    # for Panel functionality.
    MYSQL_PASSWORD: &db-password "CHANGE_ME"
    MYSQL_ROOT_PASSWORD: "CHANGE_ME_TOO"
  panel:
    &panel-environment
    # This URL should be the URL that your reverse proxy routes to the panel server
    APP_URL: "https://pterodactyl.example.com"
    # A list of valid timezones can be found here: http://php.net/manual/en/timezones.php
    APP_TIMEZONE: "UTC"
    APP_SERVICE_AUTHOR: "noreply@example.com"
    TRUSTED_PROXIES: "*" # Set this to your proxy IP
    # Uncomment the line below and set to a non-empty value if you want to use Let's Encrypt
    # to generate an SSL certificate for the Panel.
    # LE_EMAIL: ""
  mail:
    &mail-environment
    MAIL_FROM: "noreply@example.com"
    MAIL_DRIVER: "smtp"
    MAIL_HOST: "mail"
    MAIL_PORT: "1025"
    MAIL_USERNAME: ""
    MAIL_PASSWORD: ""
    MAIL_ENCRYPTION: "true"

#
# ------------------------------------------------------------------------------------------
# DANGER ZONE BELOW
#
# The remainder of this file likely does not need to be changed. Please only make modifications
# below if you understand what you are doing.
#
services:
  database:
    image: mariadb:10.5
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - "/srv/pterodactyl/database:/var/lib/mysql"
    environment:
      <<: *db-environment
      MYSQL_DATABASE: "panel"
      MYSQL_USER: "pterodactyl"
  cache:
    image: redis:alpine
    restart: always
  panel:
    image: ghcr.io/pterodactyl/panel:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    links:
      - database
      - cache
    volumes:
      - "/srv/pterodactyl/var/:/app/var/"
      - "/srv/pterodactyl/nginx/:/etc/nginx/http.d/"
      - "/srv/pterodactyl/certs/:/etc/letsencrypt/"
      - "/srv/pterodactyl/logs/:/app/storage/logs"
    environment:
      <<: [*panel-environment, *mail-environment]
      DB_PASSWORD: *db-password
      APP_ENV: "production"
      APP_ENVIRONMENT_ONLY: "false"
      CACHE_DRIVER: "redis"
      SESSION_DRIVER: "redis"
      QUEUE_DRIVER: "redis"
      REDIS_HOST: "cache"
      DB_HOST: "database"
      DB_PORT: "3306"
networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Il faut prendre soin de changer absolument ces deux paramètres:

MYSQL_PASSWORD: &db-password "CHANGE_ME"
MYSQL_ROOT_PASSWORD: "CHANGE_ME_TOO"

Remplacez "CHANGE_ME" par un password fort en conservant les " ".
Par exemple:

MYSQL_PASSWORD: &db-password "eJR645PGzJQjxKik4xCNxa2ibaSkH79mz"
MYSQL_ROOT_PASSWORD: "FtZZhjEq4SxLDr4JqQXM&uJKYbcUHq$GU"

Si vous avez un nom de domaine il faudra également modifier cette ligne par votre propre domaine, dans le cas contraire, ne changez rien:

APP_URL: "https://example.tld"

Vous pouvez accessoirement compléter la partie mail avec vos informations, c'est facultatif:

mail:
    &mail-environment
    MAIL_FROM: "noreply@example.com"
    MAIL_DRIVER: "smtp"
    MAIL_HOST: "mail"
    MAIL_PORT: "1025"
    MAIL_USERNAME: " "
    MAIL_PASSWORD: " "
    MAIL_ENCRYPTION: "true"
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Créez votre compte principal:
docker-compose run --rm panel php artisan p:user:mak

Il faudra répondre à quelques questions:

Is this user an administrator: yes
Email Address: un e-mail qui fera office de login
Username: choisir un nom d'utilisateur
First Name: choisir un prénom
Last Name: choisir un nom de famille
Password: un mot de passe devant comporter au moins 8 caractères et contenir au moins une lettre majuscule et un chiffre.

  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi:
http://ip:880

Ou par votre domaine:

https://ndd.tld

L'installation de wings

  1. Créer un dossier wings
sudo mkdir wings
  1. Créez votre docker-compose.yml:
version: '3.8'

services:
  wings:
    image: ghcr.io/pterodactyl/wings:latest
    restart: always
    networks:
      - wings0
    ports:
      - "8080:8080"
      - "2022:2022"
    tty: true
    environment:
      TZ: "UTC"
      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/"
      - "/etc/pterodactyl/:/etc/pterodactyl/"
      - "/var/lib/pterodactyl/:/var/lib/pterodactyl/"
      - "/var/log/pterodactyl/:/var/log/pterodactyl/"
      - "/tmp/pterodactyl/:/tmp/pterodactyl/"
      - "/etc/ssl/certs:/etc/ssl/certs:ro"
      # you may need /srv/daemon-data if you are upgrading from an old daemon
      #- "/srv/daemon-data/:/srv/daemon-data/"
      # Required for ssl if you use let's encrypt. uncomment to use.
      #- "/etc/letsencrypt/:/etc/letsencrypt/"

networks:
  wings0:
    name: wings0
    driver: bridge
    ipam:
      config:
        - subnet: "172.21.0.0/16"
    driver_opts:
      com.docker.network.bridge.name: wings0
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Créez ce fichier:
sudo nano /etc/pterodactyl/config.yml
  1. Collez ça dedans:
docker:
  network:
    interface: 172.24.0.1 # replaced from 172.18...
    dns:
    - 1.1.1.1
    - 1.0.0.1
    name: pterodactyl_nw
    ispn: false
    driver: ""
    network_mode: pterodactyl_nw
    is_internal: false
    enable_icc: true
    network_mtu: 1500
    interfaces:
      v4:
        subnet: 172.24.0.0/16
        gateway: 172.24.0.1

# Collez votre Configuration File de Pterodactyl ci-dessous:
  1. ⏬ Collez le fichier généré dans Configuration, partie nœud (Nodes) sous la ligne # Collez votre Configuration File de Pterodactyl ci-dessous: du fichier config.yml.
  1. Recréez le container wings, pour le faire, allez dans le dossier wings, ou il y a le docker-compose:
docker-compose up -d --force-recreate

Pour finir vous avez le fameux cœur vert nécessaire au bon fonctionnement de Pterodactyl:

zarev

🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.

Vous pourriez aussi aimer