Documentatie
MCSManager
Koppel een MCSManager-paneel en Provibr levert, bedient en importeert er gameservers op. Deze pagina beschrijft wat afwijkt van de andere gamepanelen.
API-sleutel
MCSManager werkt met één API-sleutel, zonder OAuth2-client en zonder sleutelpaar. Maak er een aan in het paneel onder je account en plak hem samen met de paneel-URL in Provibr.
- Host: de volledige paneel-URL inclusief de poort, bijvoorbeeld http://panel.example.com:23333. MCSManager draait standaard op plain HTTP op 23333, en er is geen poort die Provibr zonder gokken kan aanvullen.
- API-sleutel: de sleutel van 32 tekens die het paneel aanmaakt. Er is één sleutel per paneelgebruiker en een tweede aanmaken overschrijft de eerste, dus geef Provibr een eigen paneelgebruiker in plaats van het account waarin je zelf werkt.
- TLS-fingerprint (optioneel): alleen bij een https://-host, om het certificaat vast te pinnen.
De sleutel moet van een beheerder zijn: instances aanmaken, wijzigen en verwijderen zijn alle drie beheerdersroutes, dus een sleutel van een gewone gebruiker kan het paneel wel lezen maar niets leveren. Provibr controleert dat bij de verbindingstest, niet pas bij de eerste bestelling. Het is bovendien een breed mandaat: dezelfde sleutel opent het bestandsbeheer en het gebruikersbeheer van het paneel. Dat is de tweede reden om hem een eigen gebruiker te geven.
Transport
MCSManager levert plain HTTP op poort 23333 en brengt zelf geen certificaat mee. Staat het paneel achter een reverse proxy met TLS, vul dan de fingerprint van die proxy in; de agent vertrouwt dan dat ene certificaat in plaats van de controle uit te zetten. Lees hem uit met:
openssl s_client -connect <host>:443 </dev/null 2>/dev/null | \
openssl x509 -noout -fingerprint -sha256Laat het veld leeg bij een certificaat van een publieke autoriteit, en ook als het paneel alleen over http bereikbaar is. Een fingerprint naast een http-adres wordt geweigerd, want er is geen certificaat om te pinnen. Een paneel op plain http werkt, maar de API-sleutel en alles wat de integratie doet reizen dan onversleuteld.
Instances
Een MCSManager-instance is in wezen een startcommando en een werkmap. Er is geen egg, geen game code en geen template met variabelen, dus Provibr bouwt geen server uit een catalogusregel: het startcommando komt uit het game-plan dat je schrijft.
Plannen
Een game-plan draagt het startcommando en, als de server dat nodig heeft, hoe hij gestopt wordt. Bestellen is plan-gedreven: wat er draait komt uit het plan, en de daemon waarop hij landt komt uit de instellingen van de integratie, of wordt voor je gekozen als het paneel er maar één heeft.
- Startcommando: verplicht. Niets anders bepaalt wat er draait, dus anders dan bij een paneel met eggs is er geen standaard om op terug te vallen.
- Stopcommando: optioneel. Leeg betekent ^C, MCSManagers eigen notatie voor SIGINT en de standaard van het paneel; een Minecraft-server wil stop.
- Stoptimeout: optioneel. Leeg betekent de standaard van het paneel, 10 seconden, waarna de daemon hard ingrijpt.
Plaatsing
MCSManager somt zijn daemons op en meldt van elke daemon het totale geheugen, dus de plaatsingsengine heeft een echte bovengrens om op te rangschikken, meer dan PufferPanel en GameAP geven. Op een paneel met één daemon, en dat is de gewone installatie, kiest de agent hem zelf en valt er niets in te vullen.
Opschorten
MCSManager schort op via een vervaltijdstip op de instance, en het paneel handhaaft dat zelf: de daemon weigert een instance te starten waarvan de tijd verstreken is. Dat maakt dit de eerlijke soort opschorting: wie rechtstreeks in de MCSManager-interface inlogt, kan een door Provibr opgeschorte server niet starten, en dat geldt bij PufferPanel en GameAP juist niet.
- Opschorten stopt de server ook. De eigen controle van het paneel draait één keer per uur, dus zonder die tweede stap zou een draaiende instance na het opschorten nog tot zestig minuten doordraaien.
- Hervatten zet de vorige vervaltijd terug in plaats van hem te wissen. Stond er al een vervaldatum, dan zou wissen de instance stilzwijgend veranderen in een instance die nooit afloopt.
Docker
MCSManager draait een instance op twee manieren: als kaal proces in een pty, of in een Docker-container. Elke resourcelimiet die het paneel heeft, of dat nu geheugen, cpu of schijf is, hoort bij de tweede. Een kaal proces draait zonder cgroup, zonder geheugengrens en zonder schijfquotum.
Wat Provibr niet doet
Er is geen console: de terminal van MCSManager loopt over socket.io met een eigen heartbeat in plaats van over een kale websocket, en het daemonadres dat het paneel teruggeeft is een lokaal adres dat een agent elders niet kan bereiken. Verbruiksgrafieken zijn er ook niet. Cpu en geheugen zijn echte metingen, maar schijf staat in de daemon hardgecodeerd op nul en netwerk ontbreekt volledig, dus twee van de vier grafieken zouden voorgoed op nul staan. Herinstalleren wordt met een leesbare reden geweigerd, want MCSManager herinstalleert alleen uit een preset en Provibr maakt niet uit een preset aan. Aanmaken, starten, stoppen, herstarten, killen, status lezen, opschorten, hervatten, verwijderen en bestaande instances importeren werken allemaal.