Pterodactyl expliqué

Sous le capot, ecloudserv s'appuie sur Pterodactyl, un panneau open-source d'hébergement de jeux/applications basé sur des conteneurs Docker. Voici comment les pièces s'emboîtent.

Les composants

  • Panel — l'interface et l'API d'administration de Pterodactyl. Il gère utilisateurs, serveurs, nodes et œufs (« eggs »). ecloudserv ne l'expose pas directement : notre bot/API parle au Panel via son Application API.
  • Wings — le démon installé sur chaque machine d'hébergement (node). Il crée les conteneurs Docker, démarre/arrête les serveurs et diffuse la console en temps réel via WebSocket.
  • Node — une machine (VPS/serveur) qui fait tourner Wings + Docker. C'est là que vivent réellement les bots.
  • Egg — un modèle de runtime (Node.js, Python, Java…) : image Docker, variables et commande de démarrage. Choisir un runtime = choisir un egg.

Comment ecloudserv s'y intègre

Quand tu crées un serveur depuis le panel ecloudserv :

  1. Notre API enregistre le serveur en base (statut INSTALLING).
  2. Elle appelle l'Application API de Pterodactyl pour provisionner le serveur sur un node.
  3. Wings crée le conteneur Docker et installe l'egg correspondant.
  4. Le statut passe à RUNNING et la console devient disponible.

Les deux clés d'API Pterodactyl

CléUsage
Application (ptla_…)Administration : créer des serveurs, lister nodes/eggs/users.
Client (ptlc_…)Actions côté utilisateur : power, fichiers, backups, console.

La console en temps réel

Le panel récupère un jeton court auprès de l'API, puis ouvre un WebSocket vers Wings. Les logs arrivent via l'évènement console output ; les commandes sont envoyées via send command. Le jeton expire vite et est renouvelé automatiquement.

Installer Wings sur un node (admin)

Pour ajouter une machine d'hébergement, installe Docker puis Wings :

# Wings (daemon Pterodactyl)
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
mkdir -p /etc/pterodactyl

# Récupère la config dans : Panel → Admin → Nodes → [node] → Configuration
# Colle-la dans /etc/pterodactyl/config.yml, puis :
systemctl enable --now wings

Le panel admin ecloudserv (section Agent Wings) fournit ces commandes toutes prêtes.

Pour aller plus loin

Documentation officielle : pterodactyl.io.