Blog ·
Minecraft-hosting verkopen met MCSManager
MCSManager draait gameservers zonder Docker te vereisen, over meerdere nodes, vanuit één paneel. Wat dat oplevert, en wat verkopen daarbovenop nog vraagt.
Door Provibr
Minecraft-hosting is waar de meeste gamehostingbedrijven beginnen, en met reden: de vraag is constant, de klanten zijn geduldig met kleine aanbieders, en de technische drempel tot je eerste betalende klant is werkelijk laag. Het paneel waarop je begint is meestal wat er draaide op de hardware die je had.
MCSManager is waar veel mensen op uitkomen. Het is open source, het is klein, het spant over meerdere machines, en het vereist geen Docker: de eigenschap die voor velen de doorslag geeft. Dat ene feit zet het op hardware waar de Pterodactyl-familie onpraktisch is, en het is de moeite waard om te begrijpen waarom voordat je er een bedrijf op bouwt.
Wat MCSManager eigenlijk is
Twee onderdelen, in de inmiddels gebruikelijke vorm: een webpaneel en een daemon. Het paneel is de interface en de plek waar beheer over meerdere nodes gebeurt; de daemon draait op elke machine en is wat de processen werkelijk start, stopt en bewaakt. Eén paneel kan met veel daemons praten, dus groeien betekent een machine toevoegen in plaats van een tweede paneel neerzetten.
Het is geschreven in TypeScript (Node.js en Vue aan de voorkant, Node.js op de daemons), waardoor het licht draait en makkelijk te lezen is als je ooit precies moet weten wat het doet. Ruwweg 4.800 sterren op GitHub op het moment van schrijven, actief in ontwikkeling, en vertaald in meerdere talen.
De reikwijdte is Minecraft eerst, met op Steam gebaseerde titels ernaast: Palworld, Terraria, Project Zomboid en de rest van die familie. Is je catalogus "Minecraft, plus het survivalspel dat iedereen dit jaar speelt", dan past dat netjes op MCSManager.
De Docker-vraag, en waarom die de doorslag geeft
Pterodactyl en zijn nakomelingen vereisen containers. Dat is een verdedigbaar ontwerp (het geeft je isolatie en resourcelimieten gratis), maar het legt ook een ondergrens onder waar je kunt draaien.
MCSManager ondersteunt Docker en dringt er niet op aan. Servers kunnen als gewone processen draaien, beheerd door de daemon. Drie praktische gevolgen:
- Het draait op goedkope en lastige hardware. Een kleine VPS waar geneste containers vervelend zijn, een OpenVZ- of LXC-machine, een herbestemde machine op kantoor: MCSManager werkt daar.
- Het draait op Windows. Voor een hobbyist die uitgroeit tot een bedrijf is dat vaak wat er werkelijk beschikbaar is.
- De ruil is isolatie. Zonder containers is "de server van deze klant heeft al het geheugen opgegeten" niet automatisch iemand anders' probleem dat ingedamd wordt. Welke isolatie en limieten je ook wil, die regel je zelf: cgroups, aparte gebruikers, aparte machines, of Docker toch aanzetten.
Dat laatste punt is degene om over na te denken vóór je tiende klant in plaats van erna. Ongeïsoleerde processen draaien voor mensen die je betaald hebben is prima bij drie servers en een slecht idee bij driehonderd. Het paneel laat je allebei doen.
Authenticatie en meerdere gebruikers
MCSManager heeft meerdere gebruikers en API-sleutels: er wordt per gebruiker een sleutel gegenereerd en die authenticeert programmatische toegang, en de daemon heeft zijn eigen sleutel als enige manier waarop een paneel zich bij hem authenticeert.
Het is goed om helder te zijn over waar dat model voor is: MCSManager-gebruikers zijn mensen die servers bedienen. Het zijn geen klanten met een abonnement. Er hangt geen plan aan een gebruiker, geen vervaldatum, geen prijs, geen factuur, en niets dat zegt dat een gebruiker gestopt is met betalen. Geef je elke klant een paneellogin, dan heb je ze een operatoraccount op je infrastructuur gegeven en houd je ergens anders bij wie je geld schuldig is.
Dat is geen gebrek. Het is in elk gamepaneel zo, ook in de panelen waar mensen geld aan uitgeven. Het is simpelweg de grens waar het paneel ophoudt en jouw bedrijf begint.
Wat verkopen werkelijk vraagt
Het paneel geeft je de machinehelft: een server aanmaken, starten, stoppen, herstarten, bij een console komen, verwijderen. De commerciële helft is volledig aan jou om te bouwen of te kopen:
- Een bestelformulier en een catalogus, met plannen die iets betekenen in geheugen, slots of opslag.
- Een betaling die binnen seconden provisioning start. In gamehosting is dat geen luxe: de klant zit meestal met vrienden te wachten om erin te komen, en een provisioningvertraging in minuten is hoe je ze kwijtraakt.
- Een aanmaningspad: te laat, gewaarschuwd, opgeschort, hersteld. Opschorten telt hier zwaarder dan bij webhosting, want een gameserver die blijft draaien verbruikt continu geheugen voor iemand die gestopt is met betalen.
- Capaciteit die je kunt zien, zodat je weet wat je over al die daemons draagt voordat de hostingfactuur het je vertelt.
- Een auditspoor, zodat "wie heeft die wereld verwijderd" een antwoord heeft. Juist in Minecraft-hosting wordt die vraag gesteld, en het antwoord moet beter zijn dan een schouderophalen.
- Een rechtenmodel voor je mensen, zodat een supportvrijwilliger een server kan herstarten zonder er een te kunnen verwijderen.
De meeste kleine Minecraft-hosts draaien die helft op een spreadsheet, een betaallink en een hoop goede wil. Dat werkt tot het niet meer werkt, en de mislukking is zelden dramatisch. Het is een langzame opeenstapeling van servers waarvoor niemand betaalt, terugbetalingen die je niet kunt reconstrueren, en een avond per maand die je met de hand zit af te stemmen.
Eén praktische noot over het project zelf
MCSManager komt uit de Chineestalige gemeenschap en daar ligt het zwaartepunt nog steeds. Het paneel is netjes geïnternationaliseerd en er is Engelstalige documentatie, maar zoek je een diep antwoord (een randgeval in het daemonprotocol, een ongebruikelijke opstelling), dan staat het rijkste materiaal vaak in het Chinees, en komen de snelste antwoorden uit de gemeenschap daar ook vandaan. Machinevertaling redt het prima. Het is fijn om dat te weten vóórdat je om middernacht support nodig hebt in plaats van het dán te ontdekken.
Waar Provibr past
Ondersteuning voor MCSManager is live. Een agent in je eigen netwerk praat over http of https met het webpaneel, zodat noch het paneel noch de daemons erachter aan het internet hoeven te staan. Aanmaken, starten, stoppen, herstarten, opschorten en verwijderen werken allemaal, en wat er al op het paneel staat kun je importeren. Daaromheen zit de laag hierboven: plannen en capaciteit tegen een prijs per eenheid, een rechtenmodel voor je team, een volledig activiteitenlog, en een REST-API en een WHMCS-module zodat waar je nu al mee factureert het kan aansturen.
MCSManager verspreidt één installatie al over meerdere daemons, dus groeien betekent een host erbij en niet een tweede paneel. Provibr leest die lijst en plaatst een nieuwe server op vrij geheugen, en staat er meer dan één daemon zonder standaardkeuze, dan weigert hij in plaats van te gokken. Opschorten is hier het echte werk: MCSManager houdt een verlopen instance zelf omlaag, dus een klant met paneeltoegang krijgt hem niet meer aan.
Wat de integratie niet kan is de gaten in het paneel wegtoveren. Er is geen console, want die van MCSManager loopt over socket.io, en er zijn geen verbruiksgrafieken, want het paneel meet ze niet. Herinstalleren zit er ook niet in: MCSManager bouwt alleen opnieuw vanaf een preset en Provibr bouwt vanaf een startcommando. Zonder Docker dwingt het paneel helemaal geen limieten af, en de integratie zegt dat in plaats van te doen alsof.
Wat het niet doet
Servers beheren is niet het paneel beheren. MCSManager installeren, bijwerken, daemons toevoegen, kiezen of je Docker gebruikt en de machines eronder onderhouden blijft bij jou. Werelden, plugins, mods en back-ups blijven in het paneel, waar jij en je klanten ze blijven gebruiken.
Gamehosting blijft zelden alleen gamehosting. Provibr draait vandaag zijn controlepanelen, hypervisors en gamepanelen naast elkaar, onder één inventaris, één rechtenmodel en één activiteitenlog. Minecraft-servers op het ene paneel, de VPS waar een klant naartoe doorgroeit op het andere, en één plek waar je allebei ziet.