GameHosting.pl

Notatki operatora

Pterodactyl: panel do zarządzania serwerami gier

Praktyczny przewodnik po Pterodactylu: czym jest ten panel, jak działa rozdział na Panel i Wings, jakie ma wymagania, jak go zainstalować krok po kroku, jak utworzyć pierwszy serwer przez egg i jak nim potem zarządzać. Z perspektywy kogoś, kto stawiał to na świeżym VPS i zdążył już raz złapać błąd „Wings nie łączy się z Panelem” o drugiej w nocy.

Opublikowano · ~9 min czytania

W skrócie: Pterodactyl to darmowy, open-source panel do zarządzania serwerami gier oparty na Dockerze. Składa się z dwóch części: Panel (aplikacja webowa, którą widzisz w przeglądarce) i Wings (demon na maszynie, na której faktycznie chodzą gry). Każdy serwer gry działa we własnym kontenerze Docker, dzięki czemu na jednym VPS postawisz wiele gier i wiele instancji obok siebie, z osobnymi limitami RAM i CPU. Nowe serwery dodajesz przez eggi, czyli gotowe szablony gier. Pterodactyl daje pełną kontrolę, ale całą administrację, w tym aktualizacje i bezpieczeństwo systemu, robisz sam.

Czym jest Pterodactyl

Pterodactyl to otwarty panel do zarządzania serwerami gier, napisany w PHP (Panel) i Go (Wings), udostępniany na licencji MIT. Jego zadanie jest proste do opisania, a niełatwe do zrobienia samemu od zera: dać przyjazny interfejs webowy, z którego uruchamiasz, zatrzymujesz i konfigurujesz serwery gry, masz wgląd w konsolę na żywo, przeglądasz pliki i zakładasz konta dla innych osób, bez logowania się przez SSH za każdym razem.

Najważniejsza decyzja architektoniczna Pterodactyla to oparcie wszystkiego na Dockerze. Każdy serwer gry, niezależnie czy to Minecraft, czy Rust, czy boty Discorda, działa we własnym kontenerze. To z pozoru techniczny szczegół, ale daje trzy rzeczy, na których zależy każdemu operatorowi: izolację (jedna gra nie psuje drugiej), twarde limity zasobów (przydzielasz konkretne RAM i CPU na serwer) oraz możliwość trzymania obok siebie wielu gier i wersji bez konfliktów bibliotek systemowych.

W efekcie na jednym VPS spokojnie postawisz kilka serwerów Minecrafta, jeden serwer Rust i parę mniejszych projektów, a panel pilnuje, żeby żaden z nich nie zjadł całej maszyny. To właśnie dlatego Pterodactyl jest tak popularny u mniejszych firm hostingowych i u osób, które prowadzą serwery dla swojej społeczności i chcą rozdać znajomym dostęp bez dawania im roota.

Czego Pterodactyl nie robi: nie jest dostawcą serwera ani sprzętu. Maszynę musisz mieć własną, a o jej utrzymanie, aktualizacje systemu, kopie zapasowe i bezpieczeństwo dbasz sam. Panel to narzędzie, nie usługa.

Architektura: Panel vs Wings

Cała koncepcja Pterodactyla opiera się na rozdzieleniu mózgu od mięśni. Warto to dobrze zrozumieć na starcie, bo połowa problemów początkujących bierze się z mylenia tych dwóch ról.

ElementCo to jestZa co odpowiada
PanelAplikacja webowa (PHP), z bazą danych i serwerem WWW.Logowanie, lista serwerów, konsola w przeglądarce, menedżer plików, użytkownicy, eggi, allocations. To, co widzisz i klikasz.
WingsDemon napisany w Go, działający na maszynie z grami.Uruchamia i zatrzymuje kontenery Docker, pobiera pliki gry, przesyła konsolę i pliki do Panelu, pilnuje limitów zasobów. To, co naprawdę pracuje.

Panel sam z siebie nie uruchamia żadnej gry. Kiedy klikasz „Start” w przeglądarce, Panel wysyła polecenie do Wings, a dopiero Wings odpala kontener z serwerem na swojej maszynie. Komunikacja idzie po HTTP/WebSocket, dlatego tak ważne jest, żeby obie strony widziały się po sieci i miały zgodny certyfikat oraz token.

Na małej instalacji Panel i Wings stawiasz na jednym VPS i to w zupełności wystarcza. Przy większej skali rozdzielasz je: jeden Panel zarządza wieloma maszynami, na każdej z nich siedzi osobny Wings. W terminologii Pterodactyla każda taka maszyna z Wings to node, a serwery rozkładasz na nody zależnie od dostępnych zasobów. Dzięki temu dorzucenie mocy sprowadza się do dodania kolejnego VPS z Wings, bez ruszania samego Panelu.

Wymagania

Zanim zaczniesz, upewnij się, że masz pod ręką cztery rzeczy. Pterodactyl nie jest wybredny, ale kilka warunków musi być spełnionych, inaczej instalacja utknie w połowie.

Na maszynie pod gry przelicz zasoby z zapasem. Pterodactyl pozwala przydzielać RAM i CPU per serwer, ale to Ty decydujesz, ile fizycznie masz do rozdania. Przydzielenie sumarycznie więcej niż maszyna ma naprawdę (overselling) kończy się tym, że pod obciążeniem wszystkie serwery zaczynają się dławić naraz.

Instalacja krok po kroku

Pełna, oficjalna instrukcja jest długa i dotyczy konkretnych wersji systemu, więc nie ma sensu jej tu przepisywać polecenie po poleceniu. Ważniejsze jest, żebyś rozumiał kolejność i to, co dzieje się na każdym etapie, bo wtedy łatwiej naprawić, gdy coś pójdzie nie tak.

1. Panel

Najpierw stawiasz Panel. Składa się on z aplikacji PHP, więc na maszynie musisz mieć PHP w odpowiedniej wersji z wymaganymi rozszerzeniami, serwer WWW (Nginx jest standardem) oraz Composera do pobrania zależności. Pobierasz pliki Panelu, kopiujesz przykładowy plik środowiskowy, ustawiasz w nim adres URL i dane do bazy, a potem uruchamiasz konfigurator, który generuje klucz aplikacji i przygotowuje resztę.

2. Baza danych

Panel potrzebuje bazy danych, zwykle MySQL lub MariaDB. Zakładasz osobną bazę i osobnego użytkownika tylko dla Pterodactyla, z hasłem, którego nigdzie indziej nie używasz. Następnie uruchamiasz migracje, które tworzą całą strukturę tabel. Na koniec zakładasz pierwsze konto administratora, którym zalogujesz się do Panelu w przeglądarce. To moment, w którym po raz pierwszy widzisz, że Panel żyje.

3. Wings

Teraz instalujesz Wings na maszynie, na której mają chodzić gry (na małej instalacji to ta sama maszyna co Panel). Wings to pojedynczy plik binarny w Go, którego stawiasz jako usługę systemową (systemd), żeby startował automatycznie i sam się podnosił po restarcie. Na tej maszynie musi już działać Docker.

4. Node i konfiguracja Wings

W Panelu tworzysz node, czyli rekord opisujący maszynę z Wings: jej adres, port demona, ile RAM i miejsca na dysku udostępnia. Panel generuje wtedy plik konfiguracyjny zawierający token i adres Panelu, który wgrywasz na maszynę z Wings. Po restarcie usługi Wings łączy się z Panelem, a w interfejsie node zapala się na zielono. Ten token to sekret, który łączy obie strony, dlatego pilnuj go jak hasła.

5. Allocations, czyli porty

Na koniec dla noda definiujesz allocations: pary adres IP plus port, które będą rozdawane serwerom gier. Każdy serwer dostaje przynajmniej jedną allocation jako swój główny port (np. 25565 dla Minecrafta). Bez wolnych allocations nie utworzysz serwera, bo nie będzie na czym go uruchomić. Dobrze od razu zarezerwować większą pulę portów, żeby nie dodawać ich pojedynczo przy każdym nowym serwerze.

Gdy node świeci na zielono i ma wolne porty, instalacja jest gotowa. Reszta to już tworzenie serwerów i codzienne zarządzanie.

Tworzenie serwera

Mając działający node, dodanie pierwszego serwera to kwestia kilku minut. W Panelu wybierasz „Create Server” i przechodzisz przez formularz.

Kluczowy wybór to egg. Egg to gotowy szablon konkretnej gry: mówi panelowi, jaki obraz Docker pobrać, jak zainstalować pliki gry, jakim poleceniem ją uruchomić i jakie zmienne ustawić. Dla Minecrafta wybierzesz np. egg „Paper”, podasz wersję gry i plik startowy, a Pterodactyl sam pobierze odpowiedni build i przygotuje serwer. Dla gier spoza listy wbudowanej importujesz egg społecznościowy z pliku JSON i działa tak samo.

Dalej przydzielasz zasoby. Tu wpisujesz limit RAM (np. 4096 MB) i ewentualnie limit CPU w procentach rdzenia (np. 200% to dwa pełne rdzenie). To są twarde granice egzekwowane przez Dockera, więc serwer nie wyjdzie poza to, co mu dasz, ale też nie zabierze zasobów sąsiadom. Przydzielasz też miejsce na dysku oraz wspomnianą wcześniej allocation, czyli port.

Po zatwierdzeniu Pterodactyl uruchamia instalację: Wings pobiera obraz Docker, ściąga pliki gry zgodnie z eggiem i przygotowuje serwer. Po chwili w konsoli zobaczysz log instalacji, a serwer przejdzie w stan gotowy do uruchomienia. Od tej pory wystarczy „Start”.

Z doświadczenia: przy pierwszym serwerze Minecrafta nie ustawiaj limitu RAM za nisko „na próbę”. Java pod limitem ledwie wystarczającym potrafi działać, dopóki na serwer nie wejdzie kilku graczy, a potem ginie z błędem braku pamięci w środku rozgrywki. Daj realny zapas od razu (dla małego serwera Paper 3 do 4 GB to rozsądne minimum) i raczej zejdź później, gdy zobaczysz faktyczne zużycie w panelu, niż goń braki pod obciążeniem.

Zarządzanie serwerem

Codzienna praca z serwerem dzieje się w widoku pojedynczego serwera w Panelu. Najważniejsze zakładki, z których będziesz korzystać:

Ten zestaw to właściwie cały sens Pterodactyla: wszystko, do czego normalnie potrzebowałbyś SSH i znajomości Linuksa, robisz z przeglądarki, a uprawnieniami precyzyjnie sterujesz przez subuserów.

Typowe problemy

Jeśli to wszystko brzmi jak sporo administrowania, bo jest, i nie chcesz samodzielnie stawiać oraz utrzymywać panelu, Dockera i certyfikatów, hosting zarządzany robi to za Ciebie: dostajesz gotowy panel i działający serwer od ręki, a aktualizacje, sprzęt i bezpieczeństwo zostają po stronie dostawcy. Pterodactyl wybierasz wtedy, gdy administracja jest dla Ciebie częścią zabawy, a nie przeszkodą.

Kiedy Pterodactyl, a kiedy hosting zarządzany

Decyzja sprowadza się do jednego pytania: czy chcesz być administratorem własnej infrastruktury, czy tylko prowadzić serwer gry. Pterodactyl wybierz, jeśli zamierzasz prowadzić kilka serwerów naraz, chcesz pełną kontrolę nad maszyną, rozdawać dostępy znajomym przez subuserów i nie przeszkadza Ci dbanie o system, aktualizacje i bezpieczeństwo VPS. To świetne rozwiązanie dla społeczności, mniejszych hostingów i osób, które lubią mieć wszystko u siebie.

Hosting zarządzany wybierz, jeśli zależy Ci na jednym lub dwóch serwerach i nie chcesz zostać administratorem Linuksa. Gotowy panel, działający serwer i wsparcie po stronie dostawcy oszczędzają godziny, które inaczej spędziłbyś na instalacji i naprawianiu Wings o nieludzkich porach. Jeśli wahasz się, gdzie leży granica między jednym a drugim, zajrzyj do osobnego porównania niżej.

Najczęstsze pytania

Czy Pterodactyl jest darmowy?

Tak, to oprogramowanie open-source na licencji MIT. Za sam panel nie płacisz. Koszt to serwer (VPS lub dedykowany), na którym go postawisz, plus opcjonalnie domena i SSL oraz Twój czas na utrzymanie.

Jaka jest różnica między Panel a Wings?

Panel to aplikacja webowa, którą widzisz w przeglądarce. Wings to demon na maszynie z grami, który naprawdę uruchamia kontenery. Panel wydaje polecenia, Wings je wykonuje. Na małej instalacji oba stoją na jednym VPS.

Czy Pterodactyl wymaga Dockera?

Na maszynie z Wings tak, bo każdy serwer gry działa w kontenerze. To Docker daje izolację i limity zasobów. Bez niego Wings się nie uruchomi. Sam Panel potrzebuje PHP, bazy danych i serwera WWW.

Co to jest egg w Pterodactylu?

Egg to gotowy szablon serwera gry: jaki obraz Docker pobrać, jak zainstalować pliki, jak uruchomić serwer i jakie zmienne ustawić. Dla popularnych gier eggi są wbudowane, dla reszty importujesz społecznościowe z pliku JSON.

Pterodactyl czy hosting zarządzany: co wybrać?

Pterodactyl, gdy chcesz pełną kontrolę, prowadzisz kilka serwerów i nie przeszkadza Ci administracja. Hosting zarządzany, gdy zależy Ci na jednym serwerze bez zostawania administratorem Linuksa, a aktualizacje i sprzęt mają być po stronie dostawcy.

Powiązane