Passer au contenu principal

Pterodactyl

Prérequis

  • Un serveur Ubuntu 20.04 ou supérieur

  • Droits root ou utilisateur avec sudo

  • Un domaine (ex: panel.mondomaine.com)

  • Ports 80 et 443 ouverts


1. Création de l'utilisateur Pterodactyl

sudo adduser --disabled-login pterodactyl

2. Installation du Panel

cd /var/www/
sudo git clone https://github.com/pterodactyl/panel.git
cd panel
sudo chown -R $USER:$USER .

3. Installation des dépendances

sudo apt update && sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-mysql \
php8.1-mbstring php8.1-xml php8.1-curl php8.1-zip php8.1-bcmath php8.1-gd \
unzip curl mysql-server nginx redis composer
composer install --no-dev --optimize-autoloader

4. Configuration de l'environnement

cp .env.example .env
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail

5. Génération des clés et migrations

php artisan key:generate --force
php artisan migrate --seed --force

6. Permissions

chown -R www-data:www-data /var/www/panel/*
chmod -R 755 /var/www/panel/storage/* /var/www/panel/bootstrap/cache

7. Configuration NGINX

Fichier /etc/nginx/sites-available/pterodactyl.conf :

server {
    listen 80;
    server_name panel.mondomaine.com;

    root /var/www/panel/public;
    index index.php;

    access_log /var/log/nginx/pterodactyl.access.log;
    error_log /var/log/nginx/pterodactyl.error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Activation :

sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

8. Activation du HTTPS avec Certbot

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d panel.mondomaine.com

Installation de Wings (Daemon)

1. Créer l'utilisateur

sudo useradd -r -m -d /etc/pterodactyl -s /bin/false pterodactyl

2. Installer Wings

curl -Lo /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64
chmod +x /usr/local/bin/wings

3. Configuration de Wings

Télécharge le fichier de config via le panel (Nodes > Configuration), puis :

nano /etc/pterodactyl/config.yml

4. Service systemd

nano /etc/systemd/system/wings.service

Contenu :

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service

[Service]
User=pterodactyl
WorkingDirectory=/etc/pterodactyl
ExecStart=/usr/local/bin/wings
Restart=on-failure
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target

Puis :

sudo systemctl daemon-reexec
sudo systemctl enable --now wings

Création de Serveurs de Jeux

  1. Accède au Panel

  2. Crée un Node (si ce n’est pas encore fait)

  3. Crée un Serveur (Minecraft, Rust, etc.)

  4. Attribue un Egg (modèle de jeu)


Maintenance

Mettre à jour le Panel

cd /var/www/panel
php artisan down
git pull origin master
composer install --no-dev --optimize-autoloader
php artisan migrate --seed --force
php artisan queue:restart
php artisan up

Mettre à jour Wings

curl -Lo /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64
chmod +x /usr/local/bin/wings
sudo systemctl restart wings

Vérification


Auteur : Gabriel Gasser
Projet : Infrastructure Pterodactyl auto-hébergée
Date : Mai 2025