Comment héberger un serveur pterodactyl

Comment héberger un serveur pterodactyl

Table des matières

Guide Complet : Comment Installer un Serveur Pterodactyl en 2025

Introduction

Pterodactyl est un panel de gestion de serveurs de jeux open-source qui révolutionne la façon dont nous gérons nos serveurs de jeux. Que vous soyez un hébergeur professionnel ou un passionné souhaitant gérer ses propres serveurs, Pterodactyl offre une interface moderne, intuitive et puissante pour déployer et gérer facilement des serveurs Minecraft, CS:GO, Rust, et bien d'autres jeux.

Dans ce guide complet, nous allons parcourir ensemble toutes les étapes nécessaires pour installer et configurer votre propre serveur Pterodactyl sur un VPS ou serveur dédié Linux.

Pourquoi Choisir Pterodactyl ?

Les Avantages Clés

  • Interface Moderne : Un dashboard élégant et responsive
  • Multi-jeux : Support de centaines de jeux différents
  • Isolation des Serveurs : Utilisation de Docker pour une sécurité maximale
  • API Complète : Intégration facile avec d'autres systèmes
  • Gestion des Ressources : Contrôle précis de la RAM, CPU et stockage
  • Open Source : Gratuit et personnalisable

Prérequis Système

Avant de commencer l'installation, assurez-vous que votre serveur répond aux exigences minimales suivantes :

Configuration Minimale

  • OS : Ubuntu 20.04/22.04, Debian 10/11, ou CentOS 7/8
  • RAM : 2 GB minimum (4 GB recommandé)
  • CPU : 2 cœurs minimum
  • Stockage : 20 GB minimum
  • Accès Root : Nécessaire pour l'installation
  • Nom de Domaine : Un domaine pointant vers votre serveur

Configuration Recommandée

  • RAM : 8 GB ou plus
  • CPU : 4 cœurs ou plus
  • Stockage : SSD de 100 GB ou plus
  • Bande Passante : Connexion 100 Mbps minimum

Étape 1 : Préparation du Serveur

Mise à jour du système

Commencez par mettre à jour votre système :

# Pour Ubuntu/Debian
apt update && apt upgrade -y

# Pour CentOS/RHEL
yum update -y

Installation des dépendances de base

Installez les outils essentiels :

# Ubuntu/Debian
apt install -y wget curl tar unzip git

# CentOS/RHEL
yum install -y wget curl tar unzip git

Configuration du pare-feu

Ouvrez les ports nécessaires :

# UFW (Ubuntu/Debian)
ufw allow 22/tcp    # SSH
ufw allow 80/tcp    # HTTP
ufw allow 443/tcp   # HTTPS
ufw allow 2022/tcp  # SFTP Wings
ufw allow 8080/tcp  # Panel Wings
ufw enable

Étape 2 : Installation de Docker

Pterodactyl utilise Docker pour isoler les serveurs de jeux. Voici comment l'installer :

Installation de Docker

# Télécharger et exécuter le script d'installation Docker
curl -sSL https://get.docker.com/ | sh

# Démarrer Docker
systemctl enable docker
systemctl start docker

# Vérifier l'installation
docker version

Configuration de Docker pour Pterodactyl

Créez le réseau Docker pour Pterodactyl :

docker network create pterodactyl_nw

Étape 3 : Installation de MariaDB

Installation du serveur de base de données

# Ubuntu/Debian
apt install -y mariadb-server

# CentOS/RHEL
yum install -y mariadb-server

# Démarrer MariaDB
systemctl enable mariadb
systemctl start mariadb

Sécurisation de MariaDB

Exécutez le script de sécurisation :

mysql_secure_installation

Répondez aux questions comme suit :


  • Enter current password for root: Appuyez sur Entrée

  • Set root password? Y

  • New password: Votre mot de passe fort

  • Remove anonymous users? Y

  • Disallow root login remotely? Y

  • Remove test database? Y

  • Reload privilege tables? Y

Création de la base de données Pterodactyl

mysql -u root -p

# Dans MySQL/MariaDB :
CREATE DATABASE panel;
CREATE USER 'pterodactyl'@'localhost' IDENTIFIED BY 'VotreMotDePasseFort';
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Étape 4 : Installation de PHP et Extensions

Installation de PHP 8.1

# Ubuntu/Debian
apt install -y software-properties-common
add-apt-repository ppa:ondrej/php -y
apt update
apt install -y php8.1 php8.1-{cli,common,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip,tokenizer}

# CentOS/RHEL (utiliser Remi repository)
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php81
yum install -y php php-{cli,common,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip,tokenizer}

Étape 5 : Installation de Nginx

Installation et configuration de Nginx

# Ubuntu/Debian
apt install -y nginx

# CentOS/RHEL
yum install -y nginx

# Démarrer Nginx
systemctl enable nginx
systemctl start nginx

Configuration du Virtual Host

Créez un fichier de configuration pour Pterodactyl :

nano /etc/nginx/sites-available/pterodactyl.conf

Ajoutez la configuration suivante (remplacez panel.votredomaine.com par votre domaine) :

server {
    listen 80;
    server_name panel.votredomaine.com;
    
    root /var/www/pterodactyl/public;
    index index.php;
    
    access_log /var/log/nginx/pterodactyl.app-access.log;
    error_log  /var/log/nginx/pterodactyl.app-error.log error;
    
    client_max_body_size 100m;
    client_body_timeout 120s;
    
    sendfile off;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        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;
    }
}

Activez le site :

# Ubuntu/Debian
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
systemctl reload nginx

# CentOS/RHEL (ajouter directement dans /etc/nginx/conf.d/)
mv /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/conf.d/
systemctl reload nginx

Étape 6 : Installation de Composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Étape 7 : Installation du Panel Pterodactyl

Téléchargement des fichiers

# Créer le répertoire
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl

# Télécharger le panel
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/

Installation des dépendances

# Installation sans dev dependencies
composer install --no-dev --optimize-autoloader

Configuration de l'environnement

# Copier le fichier d'environnement
cp .env.example .env

# Générer la clé d'application
php artisan key:generate --force

Configuration de la base de données

Éditez le fichier .env :

nano .env

Modifiez les paramètres suivants :

APP_URL=https://panel.votredomaine.com
APP_TIMEZONE=Europe/Paris

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=panel
DB_USERNAME=pterodactyl
DB_PASSWORD=VotreMotDePasseFort

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=votrepassword
MAIL_ENCRYPTION=tls
[email protected]

Migration de la base de données

php artisan migrate --seed --force

Création du premier utilisateur administrateur

php artisan p:user:make

Suivez les instructions pour créer votre compte administrateur.

Définition des permissions

chown -R www-data:www-data /var/www/pterodactyl/*

Étape 8 : Configuration du Cron

Ajoutez une tâche cron pour Pterodactyl :

crontab -e

Ajoutez la ligne suivante :

* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1

Étape 9 : Configuration de la Queue Worker

Créez un service systemd pour le worker :

nano /etc/systemd/system/pteroq.service

Ajoutez le contenu suivant :

[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

Activez et démarrez le service :

systemctl enable pteroq
systemctl start pteroq

Étape 10 : Installation de Wings (Node)

Wings est le démon qui gère les serveurs de jeux sur les nodes.

Installation sur le serveur node

# Créer le répertoire
mkdir -p /etc/pterodactyl
cd /etc/pterodactyl

# Télécharger Wings
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64
chmod u+x /usr/local/bin/wings

Configuration de Wings

Dans le panel web, allez dans l'administration et créez un nouveau node. Copiez le fichier de configuration généré et collez-le dans :

nano /etc/pterodactyl/config.yml

Création du service Wings

nano /etc/systemd/system/wings.service

Ajoutez :

[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

Démarrez Wings :

systemctl enable wings
systemctl start wings

Étape 11 : Configuration SSL avec Let's Encrypt

Installation de Certbot

# Ubuntu/Debian
apt install -y certbot python3-certbot-nginx

# CentOS/RHEL
yum install -y certbot python3-certbot-nginx

Obtention du certificat SSL

certbot --nginx -d panel.votredomaine.com

Conseils de Sécurité

1. Firewall Configuration

Configurez strictement votre firewall pour n'autoriser que les ports nécessaires.

2. Fail2ban

Installez fail2ban pour protéger contre les attaques brute-force :

apt install fail2ban

3. Mises à jour régulières

Maintenez votre système et Pterodactyl à jour :

cd /var/www/pterodactyl
php artisan down
git pull
composer install --no-dev --optimize-autoloader
php artisan migrate --seed --force
php artisan up

4. Sauvegardes

Mettez en place des sauvegardes automatiques :

# Script de sauvegarde
#!/bin/bash
mysqldump -u pterodactyl -p panel > /backup/pterodactyl-$(date +%Y%m%d).sql
tar -czf /backup/pterodactyl-files-$(date +%Y%m%d).tar.gz /var/www/pterodactyl

Dépannage Courant

Problème 1 : Erreur 500

Solution : Vérifiez les permissions et les logs :

chown -R www-data:www-data /var/www/pterodactyl/*
tail -f /var/www/pterodactyl/storage/logs/laravel-*.log

Problème 2 : Wings ne démarre pas

Solution : Vérifiez Docker et la configuration :

docker ps
systemctl status wings
journalctl -u wings

Problème 3 : Base de données inaccessible

Solution : Vérifiez MariaDB :

systemctl status mariadb
mysql -u pterodactyl -p

Optimisations Recommandées

1. Redis pour le Cache

Installez Redis pour améliorer les performances :

apt install redis-server
systemctl enable redis-server

Dans .env, modifiez :

CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis

2. Optimisation PHP

Modifiez /etc/php/8.1/fpm/php.ini :

memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 300

3. Optimisation MariaDB

Dans /etc/mysql/mariadb.conf.d/50-server.cnf :

[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2

Conclusion

Félicitations ! Vous avez maintenant un serveur Pterodactyl pleinement fonctionnel. Ce panel vous permettra de gérer facilement vos serveurs de jeux avec une interface moderne et des fonctionnalités avancées.

Prochaines Étapes

1. Explorez le Panel : Familiarisez-vous avec l'interface d'administration
2. Créez vos premiers serveurs : Testez avec un serveur Minecraft
3. Personnalisez : Adaptez les thèmes et paramètres à vos besoins
4. Automatisez : Utilisez l'API pour intégrer avec d'autres systèmes
5. Rejoignez la Communauté : Discord et forums Pterodactyl pour support

Ressources Utiles

  • Documentation Officielle : https://pterodactyl.io/
  • GitHub : https://github.com/pterodactyl/panel
  • Discord Communauté : https://discord.gg/pterodactyl
  • Forum : https://community.pterodactyl.io/

N'hésitez pas à partager cet article si vous l'avez trouvé utile, et n'oubliez pas de sécuriser votre installation avec des mises à jour régulières !

---

Dernière mise à jour : Janvier 2025