# Instalacja Pterodactyl Panel i Wings

Instalator CLI pozwala automatycznie zainstalować **Pterodactyl Panel**, **Wings** albo oba składniki na jednym serwerze VPS. W tym poradniku przeprowadzimy instalację Panelu i Wings na tej samej maszynie.

> ⚠️ Instalację wykonuj na nowym VPS bez działającego serwera WWW, bazy danych ani wcześniejszej instalacji Pterodactyl. Instalator może zmienić konfigurację Nginx, MariaDB, Dockera i zapory systemowej.

## Zanim rozpoczniesz

Przygotuj:

* VPS z systemem obsługiwanym przez instalator;
* hasło użytkownika `root`;
* jedną albo dwie subdomeny skierowane rekordami **A** na adres IP VPS;
* adres e-mail do certyfikatów Let's Encrypt;
* dane pierwszego konta administratora Pterodactyl.

Możesz wybrać jeden z dwóch wariantów:

* **Dwie subdomeny** - na przykład `panel.twojadomena.pl` dla Panelu i `node.twojadomena.pl` dla Wings. Podczas instalacji oba rekordy muszą działać w trybie **DNS only**. Po wygenerowaniu certyfikatów proxy Cloudflare możesz włączyć dla Panelu, natomiast rekord Wings musi pozostać w trybie **DNS only**.
* **Jedna subdomena** - na przykład `panel.twojadomena.pl` używana jednocześnie przez Panel i Wings. Ponieważ korzysta z niej również Wings, proxy Cloudflare musi pozostać wyłączone, czyli rekord musi działać w trybie **DNS only**.

> ⚠️ Przed rozpoczęciem instalacji i wygenerowaniem certyfikatów Let's Encrypt wszystkie używane domeny muszą mieć wyłączone proxy Cloudflare (**DNS only**). W przeciwnym razie utworzenie certyfikatów może się nie udać.

> ⚠️ Domena przypisana do Wings zawsze musi wskazywać bezpośrednio na adres IP VPS i mieć wyłączone proxy Cloudflare (**DNS only**).

## 1. Otwórz porty w panelu BlackHost

Zaloguj się do panelu BlackHost, otwórz swój VPS i przejdź do zakładki **Firewall**. Następnie dodaj poniższe reguły z akcją `ACCEPT`.

| Port | Protokół | Filtr | Zastosowanie |
| --- | --- | --- | --- |
| `22` | TCP | `SSH LITE / SFTP` | dostęp administracyjny przez SSH |
| `80` | TCP | `HTTP` | HTTP i weryfikacja Let's Encrypt |
| `443` | TCP | `HTTP/TLS` | panel przez HTTPS |
| `8080` | TCP | `TLS` | połączenie Panelu z Wings |
| `2022` | TCP | `SSH LITE / SFTP` | SFTP serwerów Pterodactyl |

Dla każdej reguły ustaw pole **Whitelist** na `Nie`. Wyjątkiem może być port `22` - dla większego bezpieczeństwa możesz ograniczyć SSH do adresów dodanych w zakładce **Whitelist IP**.

   ![Dodawanie reguł zapory sieciowej](/public/firewall.png)

> ℹ️ Jeżeli nie instalowałeś ani nie konfigurowałeś dodatkowej zapory bezpośrednio w systemie VPS, wybierz `n` przy pytaniu o automatyczną konfigurację firewalla. Opcję `y` wybierz tylko wtedy, gdy samodzielnie zainstalowałeś zaporę systemową, na przykład UFW.

Nie otwieraj publicznie portu `3306`, jeżeli Panel i Wings instalujesz na jednym VPS. Jest on potrzebny tylko wtedy, gdy świadomie udostępniasz bazę danych innemu serwerowi.

Porty serwerów gier dodasz później. Otwórz w panelu BlackHost taki sam zakres TCP lub UDP, jaki następnie utworzysz w **Allocations** w panelu Pterodactyl.

## 2. Otwórz konsolę VPS

Wróć do widoku swojego VPS i otwórz zakładkę **Konsola**. Zaloguj się jako użytkownik `root`, używając hasła ustawionego w panelu BlackHost.

Po zalogowaniu menu nie uruchomi się automatycznie. Wpisz w konsoli poniższe polecenie i zatwierdź je klawiszem `Enter`:

```bash
blackhost
```

W otwartym menu BlackHost wybierz kolejno **Instalator**, a następnie **Pterodactyl**. Do poruszania się po menu używaj klawiatury i zatwierdzaj wybrane opcje klawiszem `Enter`.

## 3. Wybierz rodzaj instalacji

W menu instalatora Pterodactyl wybierz:

* **Zainstaluj Panel** - instalacja samego Panelu;
* **Zainstaluj Wings** - instalacja samego Wings;
* **Zainstaluj panel + Wings** - instalacja obu składników na tym samym VPS.

Dla konfiguracji opisanej w tym poradniku wybierz **Zainstaluj panel + Wings**.

## 4. Uzupełnij zmienne Pterodactyl Panel

Instalator kolejno poprosi o konfigurację Panelu. Poniższe wartości są zalecane dla typowej instalacji:

| Pytanie instalatora | Zalecana wartość |
| --- | --- |
| Domena panelu [panel.example.com] | subdomena Panelu, np. `panel.twojadomena.pl` |
| E-mail techniczny / Let's Encrypt [admin@example.pl] | Twój prawidłowy adres e-mail |
| E-mail pierwszego administratora | adres używany do logowania do Panelu; naciśnij `Enter`, aby użyć wyświetlonej wartości domyślnej |
| Login administratora [admin] | naciśnij `Enter`, aby pozostawić `admin`, albo wpisz własny login |
| Imię administratora [Admin] | naciśnij `Enter`, aby pozostawić `Admin`, albo wpisz imię administratora |
| Nazwisko administratora [Admin] | naciśnij `Enter`, aby pozostawić `Admin`, albo wpisz nazwisko administratora |
| Hasło administratora [Wygenerowane] | naciśnij `Enter`, aby wygenerować hasło, albo wpisz własne silne hasło |
| Nazwa bazy danych [panel] | naciśnij `Enter`, aby pozostawić `panel` |
| Użytkownik bazy danych [pterodactyl] | naciśnij `Enter`, aby pozostawić `pterodactyl` |
| Strefa czasowa [Europe/Warsaw] | naciśnij `Enter`, aby pozostawić `Europe/Warsaw` |
| Hasło użytkownika bazy [Wygenerowane] | naciśnij `Enter`, aby wygenerować bezpieczne hasło, albo wpisz własne |
| Skonfigurować firewall UFW? | `n`; wybierz `y` tylko wtedy, gdy samodzielnie zainstalowałeś zaporę systemową, np. UFW |
| Pobrać certyfikat HTTPS z Let's Encrypt? | `y` lub `Enter` |
| Akceptujesz warunki usługi Let's Encrypt? | `y` lub `Enter` |
| Włączyć anonimową telemetrię Pterodactyla? | `n` lub `Enter`; możesz wybrać `y`, jeżeli chcesz ją włączyć |
| Rozpocząć instalację? | po sprawdzeniu podsumowania wybierz `y` lub naciśnij `Enter` |

Nie wpisuj `https://` ani ukośnika na końcu pola `FQDN`. Podaj wyłącznie nazwę hosta, na przykład `panel.twojadomena.pl`.

Na końcu instalator wyświetli podsumowanie. Sprawdź domenę, dane administratora, ustawienia bazy, strefę czasową oraz konfigurację HTTPS, a następnie naciśnij `Enter`, aby rozpocząć instalację.

## 5. Uzupełnij zmienne Wings

Po ukończeniu instalacji Panelu instalator przejdzie do konfiguracji Wings. Pytania pojawią się w poniższej kolejności:

| Pytanie instalatora | Zalecana wartość |
| --- | --- |
| Skonfigurować firewall UFW dla portów 22, 8080 i 2022? | `n`; wybierz `y` tylko wtedy, gdy samodzielnie zainstalowałeś zaporę systemową, np. UFW |
| Utworzyć użytkownika MariaDB dla zdalnych hostów? | `n`, jeżeli nie potrzebujesz dostępu do bazy z innych maszyn |
| Pobrać osobny certyfikat Let's Encrypt dla Wings? | `y`, jeżeli Wings korzysta z osobnej subdomeny; `n`, jeżeli Panel i Wings korzystają z tej samej subdomeny i certyfikatu |
| Rozpocząć instalację? | po sprawdzeniu podsumowania wybierz `y` lub naciśnij `Enter` |

Jeżeli wybierzesz osobny certyfikat dla Wings, jego subdomena musi już wskazywać na adres IP VPS i mieć wyłączone proxy Cloudflare (**DNS only**). Po instalacji rekord Wings również musi pozostać w tym trybie.

Użytkownik MariaDB dla zdalnych hostów nie jest wymagany do uruchomienia samego Wings. Możesz go utworzyć, jeżeli serwery na innych maszynach mają łączyć się z bazą danych na tym VPS.

## 6. Dodaj węzeł w Panelu

Po zakończeniu instalacji otwórz w przeglądarce adres Panelu, na przykład `https://panel.twojadomena.pl`, i zaloguj się utworzonym kontem administratora.

1. Otwórz sekcję administracyjną i utwórz lokalizację w **Locations**.
2. Przejdź do **Nodes**, utwórz nowy węzeł i wybierz wcześniej dodaną lokalizację.
3. Jako FQDN podaj domenę Wings, na przykład `node.twojadomena.pl`, albo domenę Panelu, jeżeli używasz jednej wspólnej subdomeny. Rekord używany przez Wings musi mieć wyłączone proxy Cloudflare (**DNS only**).
4. Wybierz komunikację przez SSL, ustaw **Behind Proxy** na `No`, port demona na `8080` oraz port SFTP na `2022`.
5. Zapisz węzeł, przejdź do jego zakładki **Configuration** i skopiuj polecenie z sekcji automatycznego wdrożenia.

Wklej skopiowane polecenie do konsoli VPS i zatwierdź je klawiszem `Enter`. Polecenie zapisze konfigurację węzła w pliku `/etc/pterodactyl/config.yml`.

Następnie uruchom Wings jako usługę:

```bash
systemctl enable --now wings
```

Stan usługi możesz sprawdzić poleceniem:

```bash
systemctl status wings
```

Jeżeli przy węźle w Panelu pojawi się zielone serce, połączenie z Wings działa prawidłowo.

## 7. Dodaj porty dla serwerów gier

W konfiguracji węzła przejdź do **Allocations** i dodaj adres IP VPS oraz porty, z których mają korzystać serwery gier. Te same porty muszą być dopuszczone w zakładce **Firewall** panelu BlackHost.

Przykładowo serwer Minecraft Java najczęściej korzysta z portu `25565` TCP. Inne gry mogą wymagać kilku portów lub obu protokołów - TCP i UDP.

> ⚠️ Nie otwieraj całego zakresu portów bez potrzeby. Dodawaj tylko zakresy faktycznie przeznaczone na serwery i pamiętaj, że każda alokacja w Pterodactyl musi mieć odpowiadającą jej regułę w zaporze BlackHost.

## Najczęstsze problemy

**Panel nie otwiera się po instalacji** - sprawdź, czy rekord DNS wskazuje na adres IP VPS oraz czy porty `80` i `443` są otwarte zarówno w panelu BlackHost, jak i w systemie.

**Let's Encrypt nie może utworzyć certyfikatu** - upewnij się, że domena jest już aktywna, port `80` jest dostępny publicznie, a proxy Cloudflare jest wyłączone. Rekord domeny Wings pozostaw w trybie **DNS only** również po zakończeniu instalacji.

**Węzeł ma czerwone serce** - sprawdź domenę węzła, port `8080`, stan usługi `wings` oraz to, czy polecenie automatycznego wdrożenia zostało wykonane na właściwym VPS.

**SFTP nie łączy się** - sprawdź port `2022` TCP. Nie jest to standardowy port SSH `22`.
