
Strona Internetowa
mycave.pl: serwery Minecraft i ich portal
Trzy światy Minecrafta w domowym homelabie i strona, która pokazuje ich status na żywo, mapy, zasady i podpowiada, jak dołączyć. Do tego jeden czat dla gry i Discorda oraz własny szablon PufferPanel dla paczek z CurseForge.
29.10.2026
mycave.pl to moje serwery gier, które działają od 2012 roku. Dziś są to trzy światy Minecrafta dla rodziny i znajomych, każdy z innym charakterem. Do kompletu brakowało jednego miejsca, w którym widać, co działa, jak dołączyć i jakie panują zasady.
Tak powstał portal mycave.pl. Serwery stoją w moim domowym homelabie, a strona jest ich wizytówką i tablicą ogłoszeń. Skąd w ogóle wziął się pomysł na własne serwery, opisałem we wpisie na blogu Własny serwer Minecraft dla dzieci: wspomnienie po latach.

Trzy światy, trzy silniki
Każdy serwer jest dla innego typu gracza i każdy działa na innym oprogramowaniu:
- Create+ to modpack na NeoForge (Minecraft 1.21.1, ponad 100 modów) zbudowany wokół moda Create: przekładnie, tory i maszyny budowane własnymi rękami. Teren generują Terralith i Tectonic, więc góry i doliny wyglądają dużo ciekawiej niż w zwykłej grze,
- Tom20Plus to spokojny świat na Paper (Minecraft 1.21.10), do którego wchodzi się zwykłym klientem. Pluginy pilnują porządku: CoreProtect zapisuje każdą zmianę i pozwala cofnąć zniszczenia, LuckPerms trzyma role, a WorldEdit i Axiom pomagają budowniczym,
- ATM Gravitas² to ekspercki modpack na Forge (Minecraft 1.20.1, ponad 230 modów). Zaczyna się od łupania krzemienia w świecie TerraFirmaCraft, a kończy rakietą i lotem na inną planetę.
Wszystkie trzy działają na jednym serwerze w domu i są zarządzane przez PufferPanel. Panel daje konsolę, kopie zapasowe i restart z przeglądarki, bez logowania się na serwer.

Co potrafi strona
Portal ma być prosty dla dziecka, które pierwszy raz dołącza do serwera, i przydatny dla stałego gracza:
- status każdego serwera na żywo: online albo offline, liczba graczy, wersja gry i silnik,
- sekcja „Jak dołączyć”: adres do skopiowania jednym przyciskiem i informacja, jakiego klienta potrzebuje dany świat,
- osobna podstrona dla każdego serwera z opisem świata, listą najważniejszych modów i galerią zrzutów ekranu,
- mapa świata na żywo w przeglądarce, z pozycjami graczy,
- aktualności pisane w zwykłych plikach Markdown,
- regulamin i kontakt do administratora w jednym miejscu.

Status bez dodatkowych portów
Dane o serwerze strona pobiera tym samym zapytaniem, którego używa gra na liście serwerów (Server List Ping). Nie trzeba włączać na serwerach ani RCON, ani protokołu query, więc nie otwieram niczego więcej niż sam port gry.
Zapytanie wykonuje serwer strony, a przeglądarka odpytuje tylko jego własny adres. Dzięki temu karta odświeża się co chwilę, a odwiedzający nie łączy się bezpośrednio z serwerem gry.
Mapa, która rozumie mody
Mapy na żywo rysuje BlueMap. Wybrałem go zamiast popularnego Dynmapa, bo Dynmap nie rozpoznaje bloków z modów i w modowanym świecie pokazuje czarne dziury. BlueMap czyta modele bloków prosto z plików modów, więc na mapie Create+ widać maszyny i budowle tak, jak w grze.

Jeden czat dla gry i Discorda
Gracze rozmawiają na wspólnym kanale Discorda. Wiadomości z gry trafiają na Discord i odwrotnie, więc da się umówić na wspólne granie bez uruchamiania Minecrafta. Każdy silnik wymagał innego mostu: na Create+ działa Viscord, a na Tom20Plus EssentialsXDiscord.
Zasady w jednym miejscu
Regulamin jest krótki i obowiązuje na wszystkich serwerach i na Discordzie. Zakazuje oszukiwania, wyzwisk i niszczenia cudzych budowli. Przypomina też, że każda zmiana w świecie jest zapisywana, więc niszczenie zawsze wyjdzie na jaw.
Tom20Plus ma ograniczenie wieku 16+. Młodsi gracze mają swoje miejsce na pozostałych serwerach.

Wygląd: piksel, ale czytelnie
Strona nawiązuje do gry, ale nie udaje jej interfejsu. Krawędzie sekcji są „schodkowe” jak bloki, adresy i wersje są pisane krojem pikselowym, a każdy serwer ma swój kolor: pomarańczowy, zielony i fioletowy.
- motyw jasny, ciemny albo systemowy, wybierany jednym kliknięciem,
- wersja polska i angielska od pierwszego dnia, a nie dopisywana później,
- układ działa na telefonie, a menu da się obsłużyć klawiaturą,
- link „Przejdź do treści” i opisy alternatywne zrzutów ekranu,
- mapa witryny, adresy kanoniczne i dane strukturalne, żeby wyszukiwarki dobrze pokazywały podstrony.

Za kulisami serwerów
Najwięcej pracy nie było przy stronie, tylko przy samych serwerach. Kilka rzeczy, które warto zapamiętać:
- panel po instalacji NeoForge uruchamiał zwykły plik serwera Mojanga zamiast właściwego startu NeoForge. Serwer się włączał, ale gra odrzucała połączenie. Pomogło usunięcie tego pliku z drogi, żeby panel wybrał poprawną ścieżkę startu,
- jeden mod w paczce był błędnie oznaczony jako serwerowy i wywracał serwer przy starcie. Wystarczyło przenieść go do osobnego katalogu,
- paczki z CurseForge, takie jak ATM Gravitas², nie zawierają Forge’a i panel nie umiał go doinstalować. Napisałem własny szablon PufferPanel, który sam rozpoznaje loader (Forge, NeoForge albo Fabric), instaluje go i ustawia poprawną komendę startu,
- na Macu klient ATM Gravitas² wywracał się na ekranie ładowania. Winny był czysto wizualny mod z zorzą polarną, którego shadery nie działają na macOS. Po jego wyłączeniu gra działa, a serwer nie wymagał żadnych zmian.
Strona i mapy są wystawione przez reverse proxy z certyfikatami Let’s Encrypt. Więcej o samym serwerze w domu piszę we wpisie Homelab: własna chmura w domu.
Co dalej
- lista graczy online prosto z map i statystyk serwerów, a nie tylko z odpowiedzi serwera,
- mapa webowa dla ATM Gravitas², który na razie ma tylko mapę w grze,
- więcej zrzutów ekranu i wpisów o tym, co powstaje w naszych światach.
Stack
- Astro (SSR na Node) z TypeScriptem, Tailwind v4, DaisyUI, Lucide,
- i18n PL/EN, treści aktualności w Markdown (content collections),
- Server List Ping jako źródło statusu, BlueMap jako mapy na żywo,
- PufferPanel z własnym szablonem dla paczek CurseForge,
- NeoForge, Paper i Forge, Viscord i EssentialsXDiscord jako most do Discorda,
- Docker w domowym homelabie, Nginx Proxy Manager i Let’s Encrypt.
