Server, který běží nonstop pro partu hrající dva večery v týdnu, je většinou jen stroj, který pálí peníze v prázdné místnosti. Přirozené řešení je spouštět ho jen tehdy, když chce někdo opravdu hrát. Patří to mezi nejhledanější témata kolem Minecraft hostingu a téměř všechny odpovědi, na které narazíš, jsou nástroje typu „udělej si sám". V tomhle návodu je projdeme poctivě a na závěr přidáme spravovanou alternativu pro každého, kdo nic z toho provozovat nechce.
Co „spustí se, když se někdo připojí" doopravdy vyžaduje
Minecraft klient neposílá žádný kouzelný budicí paket. Něco musí na adrese serveru nepřetržitě poslouchat, odpovídat na pingy seznamu serverů, aby server pořád vypadal živý, rozpoznat skutečný pokus o připojení, spustit samotný serverový proces a předat mu spojení. To „něco" je maličké, jenže musí někde běžet celý den. A právě za to jsi platit nechtěl.
V tom je poctivé jádro celého tématu: wake-on-join přesouvá břemeno nepřetržitého běhu z velkého serverového procesu na drobný listener. Otázka zní, kdo ten listener provozuje.
Možnost 1: lazymc (vlastní hostování, oblíbenec komunity)
lazymc je malá proxy napsaná v Rustu, která sedí na portu tvého serveru. Dokud server spí, odpovídá na pingy stavem „sleeping", a když se hráč připojí, nastartuje skutečný server a spojení přesměruje. Je zdarma, vyzrálý a opravdu dobrý.
Zároveň se ale upisuješ k tomuhle: vlastní stroj (doma nebo pronajaté VPS), který je třeba držet online a aktualizovaný, péče o port forwarding a firewall, config, který je nutné udržovat při každé aktualizaci serveru, a role člověka, který to spraví, když chce parta hrát a něco nesedí. Pokud tě takové vrtání baví, lazymc je dobrá odpověď.
Možnost 2: pluginy a skripty
Do stejné kategorie patří pluginy ze Spigot rodiny jako ServerAlarmClock, systemd socket aktivace a skripty jako mcstart. Plugin vypnutý server spustit neumí, protože JVM, ve kterém žije, je právě ta věc, která neběží. Taková řešení proto kombinují hlídací proces se startovacím skriptem, což znamená víc pohyblivých dílů než lazymc a stejný požadavek na stroj běžící nonstop. Smysl dávají hlavně tehdy, když na stejném stroji už běží něco jiného a shell je ti domovem.
Možnost 3: spravovaný wake-on-join
Třetí cesta je hosting, kde spánek a buzení nejsou projekt, ale funkce. Na VoxelRunu se jmenuje wake-on-join: přepínač pro každý server zvlášť, díky kterému si vypnutý server nechá hostname i port, zůstane v seznamu serverů vidět se spící zprávou a automaticky se spustí, když se hráč připojí. Vestavěná je i druhá polovina cyklu. Automatické vypnutí server zastaví po tichu, jehož délku si zvolíš, od 5 minut po 24 hodin.
Účtování ten cyklus kopíruje. Výkon se měří, jen dokud server běží, nic se nezaokrouhluje na celé hodiny a prvních 10 GB úložiště je zdarma. Běžný server pro partu tedy během spánku nestojí doslova nic. Každé probuzení utrácí kredity majitele, proto je funkce dobrovolná a dá se svázat s whitelistem: se zapnutým whitelistem spustí server jen hráči ze seznamu a skenery seznamu serverů uvidí jen spící zprávu.
Co zažije hráč, který se připojuje
Tohle platí u každého řešení, vlastního i spravovaného. Minecraft klient čeká na přihlášení jen asi 30 sekund, pak to vzdá. Vanilla nebo lehce modovaný server, který naběhne pod půl minuty, dokáže připojení podržet a pustit hráče rovnou do světa. Těžký modpack, který potřebuje několik minut, to nestihne. Hráč tehdy dostane krátkou zprávu, ať se za minutu připojí znovu, a na druhý pokus už vejde. Každý nástroj, který slibuje okamžitý vstup pro 6 GB modpack, slibuje příliš. Vyladěná verze tohohle zážitku je jasná zpráva, ne magie.
Jak si vybrat
lazymc provozuj tehdy, když stejně držíš nějaký stroj online a správcování tě baví. Pluginy a skripty použij, když server sdílí stroj s jinými službami, které spravuješ. Spravovaný wake-on-join si vyber, pokud celý smysl byl přestat být člověkem zodpovědným za stroj běžící nonstop. Listener, automatické vypnutí, zálohy i účtování se pak změní v jeden přepínač v panelu.
Ať zvolíš cokoli, uzavři celý cyklus. Buzení při připojení bez zastavování při nečinnosti automatizuje jen tu levnou polovinu. Peníze totiž stojí prázdné hodiny.