Blog ·
Gameserverhosting verkopen met PufferPanel
PufferPanel draait gameservers, maar heeft geen winkel, geen opschorting en geen live console. Wat dat betekent als je erop verkoopt, en wat wél automatiseert.
Door Provibr
PufferPanel is een licht, zelfgehost gameserverpaneel. Het installeert in minuten, het draait veel spellen, en het is verfrissend vrij van de complexiteit van Pterodactyl. Het mist ook een aantal dingen waarvan een hostingbedrijf aanneemt dat ze er zijn.
Deze pagina gaat over verkopen op PufferPanel met open ogen: wat netjes automatiseert, wat niet, en waar de eerlijke grens ligt. Alles hier is gemeten tegen PufferPanel 3.0.9.
PufferPanel is geen Pterodactyl-fork
Meteen maar gezegd, want die aanname kost mensen dagen werk. Pelican ís een fork van Pterodactyl en deelt het meeste van zijn API-vorm. PufferPanel is een zelfstandig project, en er gaat niets over:
- Authenticatie loopt via OAuth2 client credentials, niet via een API-sleutel.
- Servers worden gebouwd uit community-templates op naam, niet uit genummerde eggs.
- Er is geen nest/egg-hiërarchie om af te lopen.
- Server-identifiers zijn zelfgekozen, acht tekens, en je kiest ze bij het aanmaken in plaats van er een te krijgen.
Heb je een Pterodactyl-integratie en hoop je die met een configuratiewijziging op PufferPanel te richten, dan schrijf je een nieuwe integratie.
Koppelen: OAuth2, en een secret dat je één keer ziet
Maak in het paneel onder je account een OAuth2-client aan. Je krijgt een client-id en een client-secret; allebei gaan ze samen met de paneel-URL je automatisering in.
Kopieer het client-secret meteen. PufferPanel toont het één keer, bij het aanmaken. Een half gekopieerd secret levert een gewone authenticatiefout op in plaats van te melden dat het onvolledig is: een heel gewoon uur van je leven, besteed aan het controleren van de verkeerde dingen.
Wat de client mag, volgt het account waar hij bij hoort. Er is geen scopekiezer. Wil je dat hij servers aanmaakt en verwijdert, dan moet hij bij een beheerdersaccount horen. Dat is een betekenisvolle beveiligingsnotitie: een OAuth2-client op een beheerdersaccount ís een beheerderscredential, en hoort ook zo behandeld te worden.
De poort is niet te raden
Een verse PufferPanel spreekt gewoon HTTP op poort 8080. Achter een reverse proxy staat hij op 443. Er is geen poort die een automatisering namens jou kan aanvullen zonder te gokken, dus geef de volledige URL mee: http://panel.voorbeeld.nl:8080 of https://panel.voorbeeld.nl.
En wees eerlijk tegen jezelf over het transport. Een paneel op gewoon http werkt, maar het client-secret (een beheerderscredential) en alles wat de integratie doet reizen dan onversleuteld over je netwerk. Staat het paneel achter TLS met een zelfondertekend certificaat, pin dan zijn fingerprint in plaats van de verificatie uit te zetten. Een fingerprint naast een http-adres wordt geweigerd, want er valt niets te pinnen.
Templates, geen eggs
PufferPanel bouwt een server uit een community-template (minecraft, factorio, enzovoort) in plaats van uit een genummerd egg dat je zelf hebt gedefinieerd. De naam van de template is zijn identiteit.
Twee gevolgen die bepalen hoe je verkoopt:
De volledige templatedefinitie moet inline mee bij het aanmaken. PufferPanel laat je niet zeggen "maak een server uit template X" via een verwijzing; de hele definitie, met zijn variabelen, gaat in het verzoek. Daarom is bestellen op PufferPanel realistisch gezien alleen plan-gedreven: je hebt een catalogus nodig die de template en zijn waarden draagt, want een vrij bestelformulier zou een klant om een document vragen.
Community-templates staan standaard op een host-omgeving. Die omgeving heeft binaries nodig die een verse paneelhost niet heeft: Java, de afhankelijkheden van een spel, wat de template ook aanneemt. Laat je het zo, dan mislukt de bouw met een missing-binary-fout die leest als een bug in jouw platform. De oplossing is overschakelen naar de docker-variant van de template, die ze in zijn image meebrengt. Provibr doet dat automatisch; bouw je je eigen brug, doe het dan zelf, want de faalstand is elke keer opnieuw een supportticket.
Plaatsing over nodes, en waarom die bot is
PufferPanel toont zijn nodes. Het toont niet hun geheugen, schijf of CPU.
Dat is niet klein. Een plaatsingsmotor heeft niets om op te ordenen: hij kan niet vragen welke node plaats heeft, want het paneel beantwoordt die vraag niet. Provibr meldt de node alsnog (een gamepaneel zonder node is niet bestelbaar), maar met onbekende capaciteit, en een paneel met meerdere nodes wordt op naamvolgorde gekozen in plaats van op vrije ruimte.
Praktisch: draai je meer dan één PufferPanel-node, dan ben jíj de capaciteitsplanner. Niets in de keten houdt je tegen als je een node overvult, want niets in de keten kan hem zien vollopen.
Levenscyclus: wat wél werkt
Aanmaken, starten, stoppen, herstarten, kill, herinstalleren en verwijderen werken allemaal.
Eén gemeten detail: verwijderen stopt de server eerst, want de daemon weigert een draaiende container te verwijderen. Een delete op een draaiende server geeft een 500 als je die stap overslaat, precies de soort bug die opduikt zodra de eerste klant op vrijdagavond een drukke Minecraft-server opzegt.
Drie dingen die PufferPanel niet heeft
Dit is de sectie om te lezen voordat je je vastlegt op PufferPanel als verkoopplatform.
Geen opschorting
PufferPanel heeft geen eigen opschorting. Geen kolom, geen endpoint; de serverstatus kent alleen running en installing.
Als een platform een PufferPanel-gameserver dus "opschort" wegens niet betalen, gebeurt er dit: de container wordt gestopt, en de toegang ertoe wordt geblokkeerd in het paneel van het platform. Dat is echt en nuttig, maar het wordt niet door PufferPanel zelf afgedwongen, en dat betekent dat iedereen met directe toegang tot de PufferPanel-installatie de server weer kan starten.
Hebben je klanten geen toegang tot het onderliggende paneel, dan is dit prima. Hebben ze die wel, dan zit er een gat in je aanmaningen, en geen hoeveelheid automatisering dicht dat. Dit is een eigenschap van het paneel, niet van het gereedschap dat je ervoor zet. Vergelijk Pelican, dat wél een echte suspended-vlag heeft.
Geen live console
PufferPanel heeft een console, maar die is poll-gebaseerd: GET /console levert base64-logs met een epoch-cursor, en POST /console stuurt een commando. Een spec-conforme websocket-handshake op /console geeft 200 JSON in plaats van 101, geprobeerd met zowel een bearer-token als de sessiecookie.
De console-relay van Provibr is een tunnel (hij draagt Wings-NDJSON-websockets en VNC), en een pollmodel past daar niet in zonder een tweede relaisvorm te bouwen. De console staat voor PufferPanel dus uit, met opzet, in plaats van een consoleknop die naar een tabblad leidt dat op het overzicht terugvalt.
Voor een gameserver ís de console aantoonbaar het product. Verkoop daarnaar: je klanten krijgen hem in PufferPanel zelf, niet in jouw dashboard.
Vrijwel geen verbruikscijfers
Het statistiekenendpoint van PufferPanel meldt CPU-percentage en geheugen in bytes. Geen schijf, geen netwerk, geen uptime.
De standaard grafiekenset voor een gameserver is CPU, geheugen, schijf en netwerk. Twee van die vier zouden permanent leeg staan. Een grafiek die voor altijd op nul staat is erger dan geen grafiek, dus verbruiksgrafieken staan voor PufferPanel ook uit.
Wanneer is PufferPanel dan de juiste keuze?
Het is een oprecht goed paneel, en de grenzen hierboven diskwalificeren het niet; ze zijn alleen specifiek. PufferPanel past bij je als:
- Je klanten geen directe toegang tot de paneelhost krijgen, waardoor de ontbrekende handhaving niet uitmaakt.
- Je vaste plannen verkoopt in plaats van gemeten resources.
- Je één node draait, of je het prima vindt om je eigen capaciteitsplanner te zijn.
- Je een klein, snel paneel met weinig afhankelijkheden boven functiediepte verkiest.
Het past minder goed als je aan een technisch publiek met paneeltoegang verkoopt, of als verbruiksgrafieken per server onderdeel zijn van waar je voor rekent.
Je hoeft geen paneel te kiezen
Het realistische antwoord voor de meeste gamehosts is allebei. PufferPanel voor de lichte laag, Pelican of Pterodactyl waar de console en de handhaving ertoe doen, en waarschijnlijk webhosting of VPS'en ernaast.
Provibr draait zijn controlepanelen, hypervisors en gamepanelen naast elkaar in één dashboard, met één API en één capaciteitsgetal over alles heen. Waar een provider iets niet kan, weigert het platform met een reden die de ontbrekende capability bij naam noemt in plaats van te doen alsof.
De volgende pagina behandelt het bestel- en het aanmaningspad in detail: facturatie automatiseren met PufferPanel.