Skip to content

Intégration Pterodactyl

Infrarust inclut une intégration avec Pterodactyl, un panneau de gestion de serveurs de jeux open-source populaire. Cette intégration permet à Infrarust de surveiller l'état des serveurs et de les démarrer automatiquement lorsque des joueurs se connectent.

Aperçu

Le fournisseur Pterodactyl dans Infrarust :

  • Surveille l'état du serveur en temps réel (Démarrage, En cours d'exécution, Arrêt, Arrêté, Planté)
  • Démarre automatiquement les serveurs lorsque des joueurs tentent de se connecter
  • Prend en charge le contrôle à distance du serveur (démarrer, arrêter, redémarrer)
  • Arrête automatiquement les serveurs vides après un délai configurable
  • Utilise l'API Client de Pterodactyl pour la communication

Configuration

Configuration du gestionnaire

Pour activer l'intégration Pterodactyl, ajoutez ce qui suit à votre config.yaml :

yaml
managers_config:
  pterodactyl:
    enabled: true
    api_key: "votre_cle_api_pterodactyl" # Ce doit être une clé qui commence par "ptlc_" c'est une clé client
    base_url: "https://panel.example.com"

Options de configuration

OptionDescriptionRequis
enabledActiver l'intégration PterodactylOui
api_keyClé API Client du panneau PterodactylOui
base_urlURL de base de votre panneau PterodactylOui

Configuration du serveur

Pour configurer un proxy utilisant Pterodactyl pour la gestion du serveur, ajoutez la section server_manager à votre fichier de configuration proxy :

yaml
domains:
  - "mc.example.com"
addresses:
  - "192.168.1.100:25565"
proxyMode: "passthrough"

server_manager:
  provider_name: Pterodactyl
  server_id: "de0d8f2d"
  empty_shutdown_time: 30

motds:
  online:
    text: "Serveur en ligne"
  offline:
    text: "Serveur hors ligne - La connexion démarrera le serveur"

Options de configuration du serveur

OptionDescriptionRequis
provider_nameDoit être Pterodactyl pour le panneau PterodactylOui
server_idL'identifiant du serveur dans le panneau PterodactylOui
empty_shutdown_timeSecondes avant l'arrêt d'un serveur videNon

Exemple complet

Configuration principale (config.yaml)

yaml
bind: "0.0.0.0:25565"

file_provider:
  proxies_path:
    - "./proxies"
  watch: true

managers_config:
  pterodactyl:
    enabled: true
    api_key: "ptlc_xxxxxxxxxxxxxxxxxxxx"
    base_url: "https://panel.example.com"

Configuration du proxy (proxies/survival.yaml)

yaml
domains:
  - "survival.example.com"
  - "play.example.com"
addresses:
  - "192.168.1.100:25565"
sendProxyProtocol: false
proxyMode: "passthrough"

server_manager:
  provider_name: Pterodactyl
  server_id: "de0d8f2d"
  empty_shutdown_time: 300

motds:
  online:
    version_name: "Serveur Survie"
    text: "Bienvenue en Survie !"
  offline:
    version_name: "Démarrage du serveur..."
    text: "Le serveur est hors ligne. Rejoignez pour le démarrer !"

États du serveur

L'intégration Pterodactyl reconnaît les états de serveur suivants :

ÉtatDescription
StartingLe serveur démarre
RunningLe serveur est en ligne et accepte les connexions
StoppingLe serveur s'arrête
StoppedLe serveur est hors ligne
CrashedLe serveur a planté et peut nécessiter une attention

Fonction d'arrêt automatique

Lorsque empty_shutdown_time est configuré, Infrarust arrêtera automatiquement le serveur après le nombre de secondes spécifié lorsqu'aucun joueur n'est connecté. Cela permet d'économiser des ressources lorsque les serveurs ne sont pas utilisés.

yaml
server_manager:
  provider_name: Pterodactyl
  server_id: "de0d8f2d"
  empty_shutdown_time: 300  # Arrêt après 5 minutes sans joueurs

Capacités de l'API

L'intégration prend en charge les opérations suivantes via l'API Client de Pterodactyl :

  • Obtenir l'état du serveur : Vérifier l'état actuel du serveur et l'utilisation des ressources
  • Démarrer le serveur : Démarrer un serveur hors ligne
  • Arrêter le serveur : Arrêter proprement un serveur en cours d'exécution
  • Redémarrer le serveur : Redémarrer un serveur en cours d'exécution

Points d'API utilisés

Point d'accèsMéthodeBut
/api/client/servers/{id}GETObtenir les informations du serveur
/api/client/servers/{id}/resourcesGETObtenir l'état et les ressources du serveur
/api/client/servers/{id}/powerPOSTContrôler l'état d'alimentation du serveur

Released under the AGPL-3.0 License.