Initial vault setup
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
---
|
||||
title: Pterodactyl
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, gaming, game-server, panel, minecraft, docker, php, nodejs]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources:
|
||||
- https://selfh.st/apps/?tag=Gaming
|
||||
- https://github.com/pterodactyl/panel
|
||||
- https://pterodactyl.io/
|
||||
---
|
||||
|
||||
# 🦖 Pterodactyl
|
||||
|
||||
> Panel de gestion open source pour serveurs de jeux, supportant des dizaines de titres (Minecraft, Valheim, CS2, Rust, ARK…) via un système d'images Docker par jeu (Eggs).
|
||||
|
||||
| Métadonnée | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | https://pterodactyl.io/ |
|
||||
| **GitHub** | https://github.com/pterodactyl/panel |
|
||||
| **License** | MIT |
|
||||
| **Langage** | PHP (Laravel) / Node.js (Wings daemon) |
|
||||
| **Étoiles** | 2 578 ⭐ |
|
||||
| **Dernière MAJ** | 2026-05-15 |
|
||||
| **Catégorie** | [[cat-gaming\|Gaming]] |
|
||||
|
||||
## Description
|
||||
|
||||
Pterodactyl est la **référence open source** pour administrer une flotte de serveurs de jeux depuis une interface web unique. Le projet se compose de deux briques complémentaires : le **Panel** (UI Laravel en PHP) qui gère utilisateurs, permissions, facturation et planification, et **Wings** (daemon Node.js) qui s'installe sur chaque machine hôte et orchestre les conteneurs Docker hébergeant les serveurs de jeux eux-mêmes. Cette séparation permet de scaler horizontalement en ajoutant simplement de nouveaux nœuds Wings derrière le Panel central.
|
||||
|
||||
L'extension « Eggs » est l'autre clé du système : ce sont des manifestes YAML décrivant comment lancer un jeu précis (image Docker, variables d'environnement, fichiers de configuration, scripts de démarrage). La communauté maintient plusieurs centaines d'Eggs officiels pour Minecraft (Vanilla, Paper, Spigot, Forge, Fabric, Bedrock), Valheim, CS2, Rust, ARK, Satisfactory, Terraria, Project Zomboid, etc. L'utilisateur clique « Deploy New Server » → choisit un Egg → l'instance démarre en quelques secondes.
|
||||
|
||||
Cas d'usage typique : un hébergeur de serveurs de jeux communautaires, une asso gaming qui mutualise des machines, ou un particulier qui héberge 3-4 serveurs Minecraft pour ses amis. Limites connues : la courbe d'apprentissage est raide pour l'auto-installation, l'UI commence à dater (Pas de réécriture majeure depuis 2020), et la branche 1.x stable a des bugs persistants — d'où l'émergence de forks comme [[app-pelican-panel]].
|
||||
|
||||
## Installation
|
||||
|
||||
### Docker Compose (méthode officielle)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
panel:
|
||||
image: ghcr.io/pterodactyl/panel:latest
|
||||
container_name: pterodactyl-panel
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./data/var:/app/var
|
||||
- ./data/nginx:/etc/nginx/http.d
|
||||
- ./data/certs:/etc/letsencrypt
|
||||
- ./data/logs:/app/storage/logs
|
||||
environment:
|
||||
APP_URL: "https://panel.example.com"
|
||||
APP_TIMEZONE: "Europe/Paris"
|
||||
APP_SERVICE_AUTHOR: "[email protected]"
|
||||
depends_on:
|
||||
- database
|
||||
- cache
|
||||
|
||||
database:
|
||||
image: mariadb:11
|
||||
container_name: pterodactyl-db
|
||||
restart: unless-stopped
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
volumes:
|
||||
- ./data/db:/var/lib/mysql
|
||||
environment:
|
||||
MYSQL_DATABASE: panel
|
||||
MYSQL_USER: pterodactyl
|
||||
MYSQL_PASSWORD: ChangeM3_DB_PWD
|
||||
MYSQL_ROOT_PASSWORD: ChangeM3_ROOT_PWD
|
||||
env_file:
|
||||
- .env.db
|
||||
|
||||
cache:
|
||||
image: redis:7-alpine
|
||||
container_name: pterodactyl-redis
|
||||
restart: unless-stopped
|
||||
|
||||
wings:
|
||||
image: ghcr.io/pterodactyl/wings:latest
|
||||
container_name: pterodactyl-wings
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
||||
- ./data/wings:/etc/pterodactyl
|
||||
depends_on:
|
||||
- panel
|
||||
```
|
||||
|
||||
### Installation manuelle (LAMP)
|
||||
|
||||
Sur un Debian/Ubuntu dédié : installer PHP 8.2+, MariaDB 10.6+, Redis, Nginx. Cloner le repo `pterodactyl/panel`, `composer install --no-dev`, configurer `.env`, `php artisan migrate --seed --force`, créer un vhost Nginx + PHP-FPM. Pour Wings : `curl -L https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64 -o /usr/local/bin/wings && chmod +x /usr/local/bin/wings`. Configurer `/etc/pterodactyl/config.yml` avec le token fourni par le Panel.
|
||||
|
||||
## Configuration
|
||||
|
||||
- **Nodes** : dans l'admin, ajouter un Node (nom, FQDN, port Wings 8080, mémoire totale, disque, location) puis copier-coller le `config.yml` auto-généré sur la machine Wings.
|
||||
- **Allocations** : définir les plages de ports par Node (ex : 25565-25600 pour Minecraft), un port = un slot de serveur.
|
||||
- **Eggs** : importer depuis l'admin (`/admin/eggs/import`) en collant un JSON. La communauté fournit des **Nests** (catégories de jeux) complets.
|
||||
- **Reverse proxy** : Traefik/Caddy devant le Panel, et haproxy/nginx devant Wings (le traffic des jeux passe par Wings directement).
|
||||
- **Backups** : configurer des backups S3 (compatible MinIO, Backblaze B2, Wasabi) ou locaux via cron + S3 Wings daemon.
|
||||
- **SFTP** : activé par serveur, l'utilisateur peut uploader des mods/maps via n'importe quel client SFTP.
|
||||
|
||||
## Alternatives
|
||||
|
||||
### Open Source
|
||||
- [[app-pelican-panel]] — Fork moderne avec UI refaite (Svelte) et panel plus réactif.
|
||||
- [[app-crafty-controller]] — Spécialisé Minecraft uniquement, plus simple d'approche.
|
||||
- [[app-linuxgsm]] — Approche CLI pure, pas de panel web, ~100 jeux supportés.
|
||||
- Yatopia — Ancien fork communautaire (déprécié).
|
||||
- AMP (CubeCoders) — Concurrent direct, propriétaire.
|
||||
|
||||
### Propriétaires
|
||||
- **Multiplay** (Unity) — Panel historique, payant.
|
||||
- **GameServerKings**, **Host Havoc** — Offres commerciales utilisant Pterodactyl.
|
||||
- **BisectHosting**, **Aternos** (gratuit) — Solutions SaaS grand public.
|
||||
|
||||
## Sécurité
|
||||
|
||||
- **Wings = accès root** : le daemon s'exécute en root pour gérer Docker. Isoler la machine (VM dédiée, pas de panel web sur le même host).
|
||||
- **HTTPS obligatoire** : un Panel exposé en HTTP révèle identifiants + tokens API. Utiliser [[app-traefik]] + Let's Encrypt.
|
||||
- **Fail2ban** : configurer pour les logs Panel et SSH sur le serveur Wings.
|
||||
- **Mises à jour** : suivre la branche `release/v1.11.x`, les releases sont peu fréquentes mais contiennent souvent des correctifs XSS critiques.
|
||||
- **SFTP jail** : par utilisateur, l'accès SFTP est cloisonné au répertoire de son serveur (très bon point du design Pterodactyl).
|
||||
- **2FA** : activable par utilisateur dans l'admin.
|
||||
- **Anti-DDoS** : si vous exposez les ports de jeu directement, prévoir un reverse proxy TCP (HAProxy) avec rate limiting.
|
||||
|
||||
## Ressources
|
||||
|
||||
- [Site officiel](https://pterodactyl.io/)
|
||||
- [Documentation](https://pterodactyl.io/project/introduction.html)
|
||||
- [Repository Panel](https://github.com/pterodactyl/panel)
|
||||
- [Repository Wings](https://github.com/pterodactyl/wings)
|
||||
- [Eggs communautaire (Yolks)](https://github.com/pterodactyl/yolks)
|
||||
- [Discord communautaire](https://discord.gg/pterodactyl)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-gaming]] — Catégorie parente (8 apps)
|
||||
- [[app-pelican-panel]] — Fork moderne
|
||||
- [[app-crafty-controller]] — Panel Minecraft
|
||||
- [[app-linuxgsm]] — Alternative CLI
|
||||
- [[app-traefik]] — Reverse proxy HTTPS
|
||||
- [[app-docker]] — Conteneurisation
|
||||
- [[recettes-docker-compose]] — Templates
|
||||
- [[securisation-home-lab]] — Bonnes pratiques
|
||||
Reference in New Issue
Block a user