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.
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.
| Element | Co to jest | Za co odpowiada |
|---|---|---|
| Panel | Aplikacja 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. |
| Wings | Demon 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.
- VPS lub serwer dedykowany z Linuksem. Najczęściej Ubuntu lub Debian w świeżej, wspieranej wersji. Na maszynie z Wings potrzebujesz uprawnień roota i pełnej kontroli nad systemem, więc współdzielony hosting WWW odpada. Pamięć i procesor dobierasz pod gry, nie pod sam panel.
- Docker. Wymagany na maszynie z Wings, bo każdy serwer gry chodzi w kontenerze. Bez Dockera Wings się nie uruchomi. Instalator zwykle stawia go za Ciebie, ale warto wiedzieć, że to fundament całości.
- Domena. Dla Panelu najlepiej osobna subdomena (np.
panel.twojadomena.pl), a dla każdego noda z Wings również własny adres. Można działać po samym IP, ale wtedy zapomnij o wygodnym, zaufanym SSL. - Certyfikat SSL. Praktycznie obowiązkowy. Panel i Wings komunikują się szyfrowanie, a darmowy certyfikat Let's Encrypt załatwia sprawę. Bez SSL konsola po WebSocket i menedżer plików potrafią po prostu nie działać w przeglądarce.
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ć:
- Konsola. Podgląd logów na żywo i pole do wpisywania komend serwera, dokładnie tak, jakbyś siedział przy terminalu. Stąd restartujesz, banujesz, nadajesz OP, czytasz błędy. To pierwsze miejsce, do którego zaglądasz, gdy coś nie działa.
- Pliki. Wbudowany menedżer plików: edytujesz konfiguracje, wgrywasz pluginy i mody, przeglądasz logi. Do większych transferów Pterodactyl udostępnia osobny dostęp SFTP (inny port i login niż zwykłe SSH), którym wygodnie wrzucisz cały folder pluginów z dysku.
- Backupy. Tworzysz kopie zapasowe serwera jednym kliknięciem, a limit ich liczby ustala administrator panelu. Backupy ratują skórę przy nieudanej aktualizacji moda albo zepsutej konfiguracji, ale traktuj je jako wygodę, nie jako jedyną kopię, bo leżą na tej samej infrastrukturze.
- Harmonogramy (schedules). Zadania uruchamiane automatycznie według cron: nocny restart, regularny backup, komenda ostrzegająca graczy przed restartem. To one zdejmują z Ciebie ręczną robotę o stałych porach.
- Subuserzy. Dajesz innym osobom dostęp do konkretnego serwera z dokładnie określonymi uprawnieniami (np. tylko konsola i pliki, bez prawa do usunięcia serwera). Dzięki temu rozdasz moderatorom dostęp do panelu, nie dając im roota na maszynie.
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
- Wings nie łączy się z Panelem (node świeci na czerwono). Najczęstszy problem świeżej instalacji. Sprawdź po kolei: czy usługa Wings w ogóle działa, czy adres i port noda w Panelu zgadzają się z konfiguracją Wings, czy zapora nie blokuje portu demona oraz czy certyfikat SSL jest ważny i pasuje do domeny noda. Niezgodny lub przeterminowany certyfikat to klasyczna przyczyna, bo Panel i Wings rozmawiają po HTTPS.
- SFTP nie wpuszcza. Pamiętaj, że SFTP Pterodactyla to nie zwykły SSH. Łączysz się na osobny port (domyślnie 2022), a login ma format
twojlogin.idserwera, nie samą nazwę użytkownika. Hasło jest takie samo jak do panelu. Próba wejścia na port 22 zwykłym kontem systemowym po prostu się nie uda. - Brak wolnych portów przy tworzeniu serwera. Jeśli Panel nie pozwala utworzyć serwera albo nie widać dostępnej allocation, to znaczy, że node nie ma wolnych portów. Dodaj nową pulę allocations dla noda i spróbuj ponownie. To samo dotyczy sytuacji, gdy chcesz dać serwerowi dodatkowy port, np. pod dynmapę.
- Problemy z SSL i konsolą w przeglądarce. Jeśli logi w konsoli się nie pokazują albo menedżer plików nie ładuje, najczęściej winny jest WebSocket blokowany przez brak lub błędną konfigurację SSL, czy to na Panelu, czy na nodzie. Upewnij się, że oba mają ważne certyfikaty i że reverse proxy poprawnie przekazuje połączenia WebSocket.
- Serwer pada przy starcie z błędem pamięci. Sprawdź przydzielony limit RAM dla serwera w panelu. Docker egzekwuje go twardo, więc gra dostanie OOM, gdy przekroczy limit, nawet jeśli maszyna ma jeszcze wolną pamięć. Podnieś limit serwera albo zmniejsz apetyt gry (np. flagi pamięci Javy).
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.