SLBCloud
Avancé18 min de lecture

Installer Pterodactyl sur son serveur

Le panneau et le démon Wings, de la base de données au premier serveur créé — avec les pièges qui coûtent le plus de temps.

Avez-vous besoin de l'installer ?

Nos serveurs de jeux sont livrés avec une console web, un gestionnaire de fichiers et les sauvegardes déjà en place : vous n'avez rien à installer. Cet article s'adresse à ceux qui veulent leur propre panneau sur un VPS ou un dédié, pour héberger plusieurs serveurs, ou en revendre.

Pterodactyl se compose de deux morceaux qu'on confond souvent. Le panneau est le site web : comptes, serveurs, console, fichiers. Wings est le démon qui tourne sur la machine qui héberge réellement les jeux, dans des conteneurs Docker. Les deux peuvent cohabiter sur une même machine, mais ils n'ont pas les mêmes besoins : le panneau demande peu, Wings demande de la mémoire et du disque.

Ce qu'il faut avant de commencer

  • Une machine sous Debian ou Ubuntu à jour, avec les droits root.
  • Un nom de domaine pointant vers elle — le panneau a besoin d'un certificat, donc d'un domaine.
  • 2 Go de mémoire pour le panneau seul ; comptez large pour Wings, chaque serveur de jeu prend la sienne.
  • Les ports 80 et 443 pour le panneau, 8080 et 2022 pour Wings.

Le panneau

  1. 1

    Installer les dépendances

    PHP avec ses extensions, MariaDB, Redis et nginx. Vérifiez la version de PHP attendue dans la documentation officielle : elle change à chaque version majeure du panneau.

    bash
    sudo apt install -y php-cli php-gd php-mysql php-pdo php-mbstring php-tokenizer php-bcmath php-xml php-fpm php-curl php-zip \
      mariadb-server nginx redis-server tar unzip git
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
  2. 2

    Créer la base et son utilisateur

    Un utilisateur dédié au panneau, avec un mot de passe long. Il n'a besoin d'aucun droit ailleurs.

    bash
    sudo mariadb -e "CREATE DATABASE panel; \
      CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'un-mot-de-passe-long'; \
      GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1'; FLUSH PRIVILEGES;"
  3. 3

    Déposer les fichiers

    bash
    sudo mkdir -p /var/www/pterodactyl && cd /var/www/pterodactyl
    sudo curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
    sudo tar -xzvf panel.tar.gz
    sudo chmod -R 755 storage/* bootstrap/cache/
  4. 4

    Installer et configurer

    Les commandes artisan posent les questions une à une : adresse du panneau, base de données, courriel, puis créent votre compte administrateur.

    bash
    sudo cp .env.example .env
    sudo composer install --no-dev --optimize-autoloader
    sudo php artisan key:generate --force
    sudo php artisan p:environment:setup
    sudo php artisan p:environment:database
    sudo php artisan migrate --seed --force
    sudo php artisan p:user:make
  5. 5

    Donner les fichiers au serveur web

    bash
    sudo chown -R www-data:www-data /var/www/pterodactyl/*
  6. 6

    La tâche planifiée et la file d'attente

    Sans ces deux-là, le panneau s'affiche mais rien ne se passe : ni sauvegardes, ni redémarrages programmés, ni courriels. C'est l'oubli le plus fréquent.

    bash
    # crontab -e -u www-data
    * * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1

/etc/systemd/system/pteroq.service — le service de file d'attente

ini
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service

[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
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target
bash
sudo systemctl enable --now pteroq.service

Wings

  1. 1

    Installer Docker

    bash
    curl -sSL https://get.docker.com/ | sudo sh
    sudo systemctl enable --now docker
  2. 2

    Poser le binaire

    bash
    sudo mkdir -p /etc/pterodactyl
    sudo curl -Lo /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
    sudo chmod u+x /usr/local/bin/wings
  3. 3

    Déclarer le nœud dans le panneau

    Dans l'interface d'administration, créez un nœud. Le panneau vous donne alors un fichier de configuration à coller dans /etc/pterodactyl/config.yml — il contient le jeton qui lie les deux moitiés.

  4. 4

    Démarrer

    bash
    sudo systemctl enable --now wings

Les pièges qui coûtent une soirée

  • Wings refuse de démarrer en se plaignant de la mémoire : activez la comptabilité de swap du noyau, en ajoutant swapaccount=1 aux paramètres de démarrage, puis redémarrez.
  • La console reste vide : le panneau parle à Wings en WebSocket. Si nginx est devant, il faut transmettre les en-têtes Upgrade et Connection, sinon la connexion est coupée.
  • Les serveurs de jeu ne démarrent pas : vérifiez que Docker tourne, et que le disque annoncé au nœud existe vraiment.
  • Rien ne se passe à l'heure dite : la tâche planifiée ou le service pteroq n'est pas actif.
  • Le certificat du nœud ne correspond pas : le domaine déclaré dans le panneau doit être exactement celui du certificat de Wings.

Les versions bougent

Pterodactyl change de dépendances au fil des versions majeures — la version de PHP en particulier. Les commandes ci-dessus donnent le déroulé et les pièges ; vérifiez les numéros exacts sur pterodactyl.io avant de lancer l'installation. Nous n'assurons pas le support de Pterodactyl sur votre propre machine : nous administrons ce qui est sous notre responsabilité, et nous vous donnons ici de quoi faire le reste.

Bloqué malgré tout ? Ouvrez un ticket : on répond en français, et on regarde votre machine si besoin.

Ouvrir un ticket