Aller au contenu

Documentation

MCSManager

Connectez un panneau MCSManager et Provibr y provisionne, contrôle et importe des serveurs de jeu. Cette page couvre ce qui diffère des autres panneaux de jeu.

Clé d'API

MCSManager s'authentifie avec une seule clé d'API, sans client OAuth2 ni paire de clés. Créez-en une dans le panneau, sous votre compte, puis collez-la dans Provibr avec l'URL du panneau.

  • Hôte : l'URL complète du panneau avec le port, par exemple http://panel.example.com:23333. MCSManager tourne par défaut en HTTP en clair sur le 23333, et il n'y a aucun port que Provibr puisse ajouter sans deviner.
  • Clé d'API : la clé de 32 caractères que le panneau génère. Il y a une clé par utilisateur du panneau et en créer une deuxième écrase la première ; donnez donc à Provibr un utilisateur dédié plutôt que le compte dans lequel vous travaillez tous les jours.
  • Empreinte TLS (facultative) : uniquement pour un hôte https://, afin d'épingler le certificat.
Dans une installation neuve de MCSManager, les clés d'API sont désactivées. Tant que vous ne les activez pas sous Réglages → API, chaque appel répond 403 Insufficient Permissions, la même réponse qu'une clé révoquée, et rien dedans ne désigne cet interrupteur.

La clé doit appartenir à un administrateur : créer, modifier et supprimer des instances sont des routes réservées aux administrateurs, donc une clé d'utilisateur ordinaire peut lire le panneau mais ne peut rien provisionner. Provibr le vérifie au test de connexion, et non à la première commande. C'est en outre un mandat large : la même clé ouvre le gestionnaire de fichiers et la gestion des utilisateurs du panneau, ce qui est la deuxième raison de lui donner un utilisateur dédié.

Transport

MCSManager sert du HTTP en clair sur le port 23333 et n'apporte aucun certificat. Si le panneau est derrière un reverse proxy avec TLS, renseignez l'empreinte de ce proxy ; l'agent fait alors confiance à ce seul certificat au lieu de désactiver la vérification. Lisez-la avec :

shell
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Les commandes et les sorties de terminal sont en anglais partout, dans le panneau comme dans ces pages. Un seul texte, une seule vérité : ce que vous lisez ici est littéralement ce que votre hôte affichera.

Laissez le champ vide pour un certificat d'une autorité publique, et aussi lorsque le panneau n'est joignable qu'en http. Une empreinte à côté d'une adresse http est refusée, car il n'y a aucun certificat à épingler. Un panneau en http fonctionne, mais la clé d'API et tout ce que fait l'intégration circulent alors en clair.

Instances

Une instance MCSManager est au fond une commande de démarrage et un répertoire de travail. Il n'y a ni egg, ni code de jeu, ni modèle avec des variables, donc Provibr ne construit pas un serveur à partir d'une entrée de catalogue : la commande de démarrage vient du plan de jeu que vous écrivez.

Le panneau porte bien 63 préréglages d'installation, mais aucun ne possède d'identifiant : MCSManager cherche un préréglage par son titre et sa description, une phrase entière, les titres ne sont pas uniques, et les deux valeurs suivent la langue du panneau. Un lien fondé là-dessus casse dès que quelqu'un met le panneau dans une autre langue ; c'est pourquoi Provibr ne les propose pas en liste déroulante.

Plans

Un plan de jeu porte la commande de démarrage et, si le serveur en a besoin, la façon de l'arrêter. La commande passe par un plan : ce qui tourne vient du plan, et le daemon sur lequel l'instance atterrit vient des réglages de l'intégration, ou est choisi pour vous quand le panneau n'en a qu'un.

  • Commande de démarrage : obligatoire. Rien d'autre ne décide de ce qui tourne ; contrairement à un panneau à eggs, il n'y a aucune valeur par défaut sur laquelle se rabattre.
  • Commande d'arrêt : facultative. Vide signifie ^C, la notation propre de MCSManager pour SIGINT et la valeur par défaut du panneau ; un serveur Minecraft veut stop.
  • Délai d'arrêt : facultatif. Vide signifie la valeur par défaut du panneau, 10 secondes, après quoi le daemon intervient durement.
La commande de démarrage ne passe pas par un shell. MCSManager la découpe sur les espaces et transmet les morceaux comme arguments, donc les guillemets, les tubes et les redirections ne font pas ce que vous attendez. Une construction bash -c revient sous forme d'erreur d'analyse dans le serveur. Mettez tout ce qui exige un shell dans un fichier de script et démarrez ce fichier.

Placement

MCSManager liste ses daemons et indique la mémoire totale de chacun, le moteur de placement dispose donc d'un vrai plafond pour classer, plus que ce qu'offrent PufferPanel et GameAP. Sur un panneau à un seul daemon, ce qui est l'installation ordinaire, l'agent le choisit lui-même et il n'y a rien à saisir.

Avec plusieurs daemons, indiquez celui par défaut dans les réglages de l'intégration. Laissé vide, Provibr refuse la commande au lieu de deviner : une instance ne se déplace pas vers une autre machine après coup.

Suspension

MCSManager suspend au moyen d'une date d'expiration posée sur l'instance, et le panneau la fait respecter lui-même : le daemon refuse de démarrer une instance dont le délai est passé. C'est donc la suspension honnête : qui se connecte directement à l'interface MCSManager ne peut pas démarrer un serveur suspendu par Provibr, ce qui n'est le cas ni chez PufferPanel ni chez GameAP.

  • La suspension arrête aussi le serveur. Le balayage propre du panneau tourne une fois par heure ; sans cette seconde étape, une instance en marche continuerait donc jusqu'à soixante minutes après la suspension.
  • La reprise rétablit l'expiration précédente au lieu de l'effacer. Si une date était déjà posée, l'effacer transformerait discrètement l'instance en une instance qui n'expire jamais.
Ce champ d'expiration appartient à MCSManager : son mode commercial s'en sert pour vendre des instances à l'heure. Ce mode activé, le panneau écrit dans le même champ que Provibr et les deux se recouvrent ; Provibr refuse donc les identifiants tant qu'il est allumé.

Docker

MCSManager exécute une instance de deux façons : comme simple processus dans un pty, ou dans un conteneur Docker. Toute limite de ressources que connaît le panneau relève de la seconde : mémoire, processeur, disque. Un simple processus tourne sans cgroup, sans plafond mémoire et sans quota de disque.

Sur un panneau sans Docker, rien n'est donc limité. Provibr ne refuse pas un tel panneau, car toutes les commandes y fonctionnent, mais un plan qui promet 2 Go de mémoire promet alors quelque chose que le panneau n'applique pas. Vérifiez que Docker est installé avant d'y vendre un produit borné ; Provibr le signale sur l'intégration quand il manque.

Ce que Provibr ne fait pas

Il n'y a pas de console : le terminal de MCSManager passe par socket.io avec son propre heartbeat plutôt que par un websocket simple, et l'adresse de daemon que rend le panneau est une adresse locale qu'un agent situé ailleurs n'atteint pas. Il n'y a pas non plus de graphiques d'usage. Le processeur et la mémoire sont de vraies mesures, mais le disque est figé à zéro dans le daemon et le réseau manque entièrement, deux des quatre graphiques resteraient donc à zéro pour toujours. La réinstallation est refusée avec un motif lisible, car MCSManager ne réinstalle qu'à partir d'un préréglage et Provibr n'en crée pas depuis un. Créer, démarrer, arrêter, redémarrer, tuer, lire l'état, suspendre, reprendre, supprimer et importer des instances existantes fonctionnent tous.