Informacja
Poradnik jest aktualny, jednak może zawierać stare linki. Aby upewnić się, że instalujemy najnowszą wersję, polecam kopiować linki z oficjalnej dokumentacji. W przypadku panelu: https://pterodactyl.io/panel/getting_started.html#download-files W przypadku daemona: https://pterodactyl.io/daemon/installing.html#installing-daemon-software
Wstęp
Pterodactyl to darmowy i otwarto-źródłowy panel do zarządzania serwerami gier. W tym poradniku skupimy się na instalacji panelu na VPS (Ubuntu 16.04+, Apache2) oraz uruchomienia serwera Minecraft na silniku Spigot.
Wymagania
Do uruchomienia panelu Pterodactyl musimy mieć:
- system Ubuntu w wersji 14.04 (mogą wystąpić problemy)/16.04 (domyślny system operacyjny w lvlup.pro)/18.04 lub Debian 7/8/9,
- PHP w wersji 7.2 z dodatkami
cli
,openssl
,gd
,mysql
,PDO
,mbstring
,tokenizer
,bcmath
,xml
lubdom
,curl
,zip
, - MySQL w wersji 5.7 (lub wyższej) lub MariaDB w wersji 10.1.3 lub wyższej,
- Redis (
redis-server
), - Serwer webowy (na przykład domyślnie zainstalowany
Apache
), - curl, tar, unzip, git, composer
Wygląda skomplikowanie? Spokojnie - zajmiemy się tym w następnych krokach :)
Instalacja bazy danych
Ponieważ na forum znajduje się już poradnik jak zainstalować bazę danych wystarczy, że podam do niego linka ;) https://lvlup.rok.ovh/t/instalacja-mariadb-phpmyadmin/1164
Utworzenie bazy danych dla panelu
W tym celu logujemy się do phpmyadmin:
Następnie klikamy w przycisk Nowa
znajdujący się po lewej stronie:
Teraz wystarczy utworzyć nową bazę danych. Zapamiętaj nazwę, ponieważ będzie ona potrzebna w dalszej części poradnika. Dla przykładu użyłem nazwy panel
:
Teraz klikamy w Utwórz
i gotowe ;)
Instalacja wymaganych pakietów
PHP 7.2 i dodatki
Domyślnie w lvlup.pro zainstalowany jest system Ubuntu 16.04, który posiada serwer webowy Apache, php 7 oraz tar.
Aby zainstalować najnowszą wersję php (7.2) należy wykonać poniższe komendy:
Informacja: W przypadku, gdy wykonujesz instalację na koncie root, nie musisz dodawać sudo
do poniższych komend.
sudo apt update && apt dist-upgrade -y
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
Po wykonaniu ostatniej komendy może pojawić nam się coś takiego: W tym wypadku klikamy Enter i czekamy. Gdy operacja zostanie ukończona, kontynuujemy proces instalacji:
apt install php7.2 php7.2-cli php7.2-gd php7.2-mysql php7.2-pdo php7.2-mbstring php7.2-tokenizer php7.2-bcmath php7.2-xml php7.2-fpm php7.2-curl php7.2-zip -y
Pozostałe pakiety
Instalacja pozostałych pakietów również ogranicza się do wykonania dwóch prostych komend :slight_smile:
add-apt-repository ppa:chris-lea/redis-server -y
apt install curl tar zip unzip git composer redis-server -y
Przygotowywanie do instalacji Pterodactyla
Tworzenie katalogu
Musimy pierw utworzyć katalog, w którym panel będzie się znajdować, a następnie się do niego przenieść. Wystarczy wykonać poniższe komendy:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
Następnie pobieramy pliki, rozpakowujemy je oraz nadajemy im odpowiednie uprawnienia:
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/download/v0.7.11/panel.tar.gz
tar --strip-components=1 -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/
Instalacja Pterodactyla
Najpierw należy skopiować domyślny plik ustawień środowiska, zainstalować podstawowe zależności, a następnie wygenerować klucz szyfrowania aplikacji. Uwaga: Zalecane jest wykonanie kopii zapasowej klucza i przechowywanie go w bezpiecznym miejscu. Wystarczy wykonać poniższe komendy:
cp .env.example .env
composer install --no-dev --optimize-autoloader
Jeśli wszystko zakończyło się powodzeniem, powinniśmy mieć taki komunikat: Jeżeli nigdy wcześniej nie instalowaliśmy tego panelu, musimy jeszcze wykonać poniższą komendę:
php artisan key:generate --force
Wtedy zwrócony zostanie nam klucz aplikacji, który należy zapisać.
Konfiguracja środowiska
Teraz musimy skonfigurować środowisko. Wykonujemy komendę
php artisan p:environment:setup
pojawi nam się coś takiego:
W tym miejscu wpisujemy swój adres e-mail i zatwierdzamy enterem. Kolejny etap:
W tym miejscu podajemy adres, na którym ma znajdować się panel. Zakładając, że mamy podpiętą domenę example.com i chcemy, aby , w tym miejscu wpisujemy http://example.com lub (w przypadku gdy posiadamy SSL) - https://example.com i zatwierdzamy enterem.
W tym miejscu musimy wpisać strefę czasową. W przypadku Polski będzie to Europe/Warsaw
.
Tutaj wpisujemy redis
i klikamy enter.
Tutaj również wpisujemy redis
.
Tu dokładnie to samo co powyżej - wpisujemy redis
i zatwierdzamy enterem :slight_smile:
Jeżeli chcemy mieć edytor ustawień oparty na interfejsie, wpisujemy yes
, jeśli nie - no
.
Zalecam yes
dla mniej doświadczonych użytkowników.
Serwer redis znajduje się na naszym VPS - w tym przypadku wystarczy wcisnąć enter bez wpisywania niczego :)
Domyślnie Redis działa lokalnie i nie wymagane jest wprowadzenie hasła. Jeżeli chcemy aby nasza instancja była dostępna dla innych serwerów należy wpisać hasło, w przeciwnym razie wystarczy zostawić to pole puste i zatwierdzić enterem.
Tu ustawiamy port dla Redis. Domyślnie jest to 6379, jeśli nie chcemy go zmieniać, wystarczy wcisnąć enter.
Po wykonaniu powyższych czynności wpisujemy komendę
php artisan p:environment:database
Tu wpisujemy adres do naszej bazy danych. Jeżeli baza znajduje się na naszym VPSie, wystarczy wcisnąć enter.
Tu wpisujemy port bazy danych. Jeżeli port do bazy danych jest domyślny, wystarczy wcisnąć enter.
Tu wpisujemy nazwę bazy danych dla Pterodactyl utworzoną wcześniej.
Tutaj należy wpisać nazwę użytkownika do bazy danych. Zaleca się ustawienie innej nazwy niż root ze względu na bezpieczeństwo, aczkolwiek na potrzeby poradnika użyłem konta root
.
Tu wpisujemy hasło użytkownika bazy danych i zatwierdzamy enterem. Proces zakończony.
Teraz musimy wykonać komendę
php artisan p:environment:mail
Zalecane jest używanie serwera SMTP. Jeżeli go posiadamy, klikamy enter. Jeśli nie, wystarczy wpisać mail
i korzystać z wbudowanej funkcji mail w PHP.
Jeśli skorzystamy z funkcji mail, pojawi się takie okienko:
Tu należy wpisać adres mailowy, z którego przychodzić będą maile. Zakładając, że pod VPS mamy podpiętą domenę example.com
, wpisujemy dowolnanazwa@example.com
, na przykład no-reply@example.com
.
Tutaj należy ustawić nazwę emaili. Jeśli chcemy zachować domyślne ustawienie, klikamy enter.
Tu wybieramy metodę szyfrowania - zalecam wpisać tls
i wcisnąć enter.
Konfiguracja bazy danych
Musimy jeszcze skonfigurować bazę danych, w tym celu użyjmy komendy
php artisan migrate --seed
Pojawi nam się następujące okienko:
Wpisujemy yes
i klikamy enter.
Tworzenie administratora panelu
W tym kroku ustawiamy użytkownika i hasło, które wykorzystywane będzie do zalogowania się do naszego panelu. Wymagania dot. hasła są następujące:
- co najmniej 8 znaków,
- mieszane znaki,
- co najmniej 1 liczba. Aby utworzyć nowego administratora, wykonujemy komendę
php artisan p:user:make
Tu wpisujemy yes
i zatwierdzamy enterem
Tu wpisujemy adres email administratora i klikamy enter
Tutaj ustawiamy nazwę użytkownika i klikamy enter
Tutaj wpisujemy imię administratora
Tutaj wpisujemy nazwisko administratora
Tu wpisujemy hasło.
Jeżeli wszystko się powiodło, pojawi nam się takie okienko:
Ustawienie uprawnień
Ostatnim krokiem instalacji jest nadanie odpowiednich uprawnień do plików za pomocą poniższych komend:
chown -R www-data:www-data *
Kolejka zdarzeń
Jeżeli chcemy aby aplikacja była wydajniejsza, należy dodać odpowiednie wartości do crontaba, w tym celu wykonujemy komendę
sudo crontab -e
Należy teraz wcisnąć przycisk strzałka w dół i jeżeli dojdziemy do samego końca, dopiszmy wartość
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
Następnie klikamy ctrl+x
Wpisujemy tutaj Y
a tutaj enter :)
Teraz musimy utworzyć nowe zadanie systemd, aby nasze zadanie kolejkowania działało w tle. Ta kolejka jest odpowiedzialna za wysyłanie wiadomości e-mail i obsługę wielu innych zadań w tle dla panelu Pterodactyl.
W tym celu stworzymy plik pteroq.service
w katalogu /etc/systemd/system
za pomocą komendy
sudo nano /etc/systemd/system/pteroq.service
W tym miejscu należy wkleić:
# Pterodactyl Queue Worker File
# ----------------------------------
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
# On some systems the user and group might be different.
# Some systems use `apache` as the user and group.
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
[Install]
WantedBy=multi-user.target
Uwaga: aby wkleić powyższe wartości należy wcisnąć prawy przycisk myszy, a nie wykonać skrót ctrl+v! Powinno to wyglądać tak: Teraz wystarczy wcisnąć ctrl+x tutaj klikamy Y a tutaj enter :) Ostatnim krokiem jest wykonanie komend:
sudo systemctl enable pteroq.service
sudo systemctl start pteroq
I gotowe.
Konfiguracja serwera apache2
Aby Pterodactyl działał jako nasza strona, należy zmienić konfigurację serwera apache2.
W tym celu modyfikujemy plik 000-default.conf
za pomocą komendy
sudo nano /etc/apache2/sites-available/000-default.conf
i tutaj wystarczy zmienić /var/www/html
na /var/www/pterodactyl/public
teraz wystarczy wykonać kombinację ctrl+x
tutaj klikamy Y
a tutaj enter :slight_smile:
Następnie należy zmodyfikować plik /etc/apache2/apache2.conf
przy użyciu komendy
sudo nano /etc/apache2/apache2.conf
i szukamy linijki
i zmieniamy AllowOverride None
na AllowOverride All
, następnie wykonujemy kombinację ctrl+x
tutaj należy wcisnąć przycisk Y
a tu enter :slight_smile:
Po tych czynnościach należy zrestartować apache2 za pomocą komendy
sudo service apache2 restart
Pierwsze logowanie do panelu
Wchodzimy na nasz adres (w moim przypadku jest to adres IP). Naszym oczom ukazuje się panel logowania. Wpisujemy tu dane ustawione wcześniej, podczas instalacji. Po zalogowaniu pojawia nam się panel :slight_smile:
Tworzenie lokacji
Aby móc utworzyć węzeł (a potem serwer), pierw należy utworzyć lokację. W tym wypadku należy udać się do ustawień (zaznaczone czerwonym kółeczkiem)
, a następnie z lewej strony wybrać zakładkę :
Jak widać, lista lokacji jest pusta. Dodajmy więc pierwszą za pomocą przycisku :
W Short Code
wpisujemy krótki identyfikator lokacji, dla przykładu można użyć pl
. W Description
wpisujemy opis lokacji.
Tworzenie węzła
Aby móc dodać serwer, pierw należy utworzyć węzeł. W tym wypadku ponownie udajemy się do ustawień, a następnie z lewej strony wybieramy zakładkę .
Pojawi nam się takie okienko:
Jak widać, lista węzłów jest pusta. Dodajmy więc pierwszy węzeł przy użyciu przycisku .
Poniżej przedstawię za co odpowiedzialne są poszczególne funkcje.
W Name
wpisujemy nazwę węzła (na przykład n1
), w Description
wpisujemy opis węzła a w Location
wybieramy lokację węzła - na przykład pl
.
FQDN - tu należy wpisać domenę węzła, w przypadku gdy nie posiadamy domeny należy używać adresu IP, jednak wtedy nie możemy korzystać z SSL.
Communicate Over SSL - jeżeli korzystamy z SSL, należy ustawić na Use SSL Connection
, w przeciwnym wypadku - Use HTTP Connection
.
Behind Proxy - jeśli korzystamy z proxy na przykład Cloudflare, wybieramy Behind Proxy
, w przeciwnym wypadku zostawiamy Not Behind Proxy
.
Daemon Server File Directory - wybieramy folder w którym mają znajdować się pliki serwera.
Total Memory - ustawiamy całkowitą ilość pamięci dostępnej dla nowych serwerów. W przypadku gdy chcesz zezwolić na alokację wpisz procent, na który chcesz zezwolić (Memory Over-Allocation
). Aby wyłączyć sprawdzanie w celu przeniesienia, wpisz -1
w polu. Wpisanie 0
uniemożliwi utworzenie nowych serwerów, jeśli spowoduje przekroczenie limitu przez węzeł.
Total Disk Space - ustawiamy całkowitą ilość dysku dostępnej dla nowych serwerów. W przypadku, gdy chcesz zezwolić na alokację wpisz procent, na który chcesz zezwolić (Disk Over-Allocation
). Aby wyłączyć sprawdzanie w celu przeniesienia, wpisz -1
w polu. Wpisanie 0
uniemożliwi utworzenie nowych serwerów, jeśli spowoduje przekroczenie limitu przez węzeł.
Daemon Port i Daemon SFTP Port - Daemon uruchamia własny kontener zarządzania SFTP i nie korzysta z procesu SSHd na głównym serwerze fizycznym. Nie korzystaj z tego samego portu, który został przypisany do procesu SSH serwera fizycznego. Jeśli uruchomisz daemona korzystając z CloudFlare, powinieneś ustawić Daemon Port
na 8443, aby umożliwić serwer proxy na SSL.
Po wypełnieniu powyższej konfiguracji naszym oczom ukaże się taka informacja:
Oznacza to, że węzeł został pomyślnie utworzony i jest możliwość automatycznej konfiguracji Daemona w zakładce Configuration
(o tym za chwilę) oraz, że należy przydzielić co najmniej jeden adres IP oraz port dla węzła w zakładce Allocation
.
Jak widać, jesteśmy już w powyższej zakładce:
Po prawej stronie wystarczy wypłenić pola odpowiednimi wartościami:
IP Address - IP naszego VPS'a.
IP Alias - alias alokacji - niewymagane, w tym przypadku zostawiam puste.
Ports - porty, w przypadku gdy na węźle będzie jeden serwer Minecraft z portem 25565
należy wpisać 25565
- ja na potrzeby poradnika użyję innego portu, jednak zalecam korzystanie z domyślnego.
Po wypełnieniu pól klikamy w .
Pojawia nam się skonfigurowana wcześniej alokacja:
Daemon
Aby móc tworzyć serwery wymagany jest Daemon - w tym przypadku musimy wrócić do konsoli ssh.
nodejs
Aby Daemon działał, należy zainstalować nodejs, do tego wystarczą nam poniższe komendy:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
apt install nodejs make gcc g++ -y
Docker
Do instalacji Daemona wymagany jest też Docker - jego instalacja ogranicza się tylko do wykonania jednej komendy:
wget -qO- https://get.docker.com/ | sh
Czas uruchomić dockera za pomocą komendy
systemctl enable docker
W końcu instalacja Daemona
Co do Deamona - jego instalacja jest prosta, więc nie powinno zająć nam to dużo czasu.
Pierw tworzymy katalogi daemon
i daemon-data
w srv
:
mkdir -p /srv/daemon /srv/daemon-data
następnie przenosimy się do /srv/daemon
:
cd /srv/daemon
następnie pobieramy oprogramowanie i rozpakowujemy je
curl -L https://github.com/pterodactyl/daemon/releases/download/v0.6.8/daemon.tar.gz | tar --strip-components=1 -xzv
teraz przechodzimy do instalacji
npm install --only=production
I gotowe :)
Musimy skonfigurować Daemona - w tym celu wracamy do panelu Pterodactyl, wchodzimy w ustawienia, następnie w listę węzłów ( ) i klikamy w nazwę węzła. Następnie wchodzimy w zakładkę Configuration
i kopiujemy dostępną tam konfigurację, u mnie wygląda to tak:
Po skopiowaniu konfiguracji wracamy do konsoli ssh i wykonujemy komendę
sudo nano /srv/daemon/config/core.json
i wklejamy skopiowaną wcześniej konfigurację za pomocą prawego przycisku myszy: teraz wykonujemy kombinację ctrl+x tutaj należy wcisnąć Y a tutaj enter :)
Czas na uruchomienie daemona za pomocą komendy
sudo npm start
gdy uruchomieni zakończy się na tej linijce
można wykonać skrót ctrl+c i utworzyć plik wings.service
w /etc/systemd/system
za pomocą komendy
sudo nano /etc/systemd/system/wings.service
kopiujemy
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
[Service]
User=root
#Group=some_group
WorkingDirectory=/srv/daemon
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/bin/node /srv/daemon/src/index.js
Restart=on-failure
StartLimitInterval=600
[Install]
WantedBy=multi-user.target
i za pomocą prawego przycisku myszy wklejamy powyższe wartości. . Wykonujemy skrót ctrl+x klikamy Y a tutaj enter :) Na koniec należy wykonać poniższe komendy:
systemctl daemon-reload
systemctl enable wings
systemctl start wings
Tworzenie serwera Spigot
Aby utworzyć serwer, należy udać się do ustawień a następnie, z menu po lewej strony, wybrać zakładkę .
Jak widać, lista serwerów jest pusta:
Dodajmy więc nowy serwer, klikając w przycisk .
Poniżej wyjaśnię poszczególne pola:
Server Name - nazwa serwera
Server Owner - właściciel serwera
Server Description - opis serwera
Start Server when installed - włącz serwer po instalacji
Node - wybieramy węzeł, w moim wypadku wcześniej został utworzony węzeł n1
Default Allocation - wybieramy domyślną alokację, jak wspomniałem wcześniej użyłem innego portu niż 25565
Additional Allocation(s) - dodatkowe alokacje - w tym wypadku niewymagane, więc można zostawić puste
Database Limit - limit bazy danych dla serwera, zostaw puste jeśli chcesz aby nie było limitu
Allocation Limit - liczba alokacji, które użytkownik może utworzyć dla tego serwera, zostaw puste jeśli chcesz aby nie było limitu
Memory - przydzielamy pamięć RAM dla serwera
Swap - przydzielamy pamięć Swap dla serwera (0
jeśli nie chcemy korzystać ze swap, -1
jeśli chcemy wyłączyć ograniczenie)
Disk Space - przydzielamy miejsce dysku dla serwera
CPU Limit - jeśli nie chcesz ograniczać użycia procesora, ustaw tą wartość na 0
. Aby określić wartość, pomnóż liczbę rdzeni fizycznych przez 100. Na przykład w przypadku czterordzeniowego procesora (4*100=400) istnieje 400% dostępnego przydziału. Aby ograniczyć serwer do użycia połowy pojedynczego rdzenia, należy ustawić wartość na 50
. Aby umożliwić serwerowi wykorzystanie maksymalnie dwóch rdzeni fizycznych, ustaw wartość na 200
.
Block IO Weight - powinniśmy tu ustawić wartość między 10
a 1000
.
Nest - wybieramy Minecraft
Egg - wybieramy silnik serwera, w tym przypadku chcemy uruchomić serwer na silniku Spigot więc ustawiamy Spigot
Data Pack - tu należy wybrać pakiet danych, który zostanie automatycznie zainstalowany po pierwszym uruchomieniu. My nie mamy pakietów danych, więc zostawiamy No Service Pack
.
Skip Egg Install Script - jeśli wybrany silnik ma skrypt instalacyjny, będzie on działać podczas instalacji po zainstalowaniu. Jeśli chcesz to pominąć, zaznacz to pole.
Docker Image - domyślny obraz Docker, który będzie używany do uruchomienia serwera. Zostawiamy domyślną wartoś ć.
Startup Command - komenda startowa, jeśli nie wiesz co to jest ani jak z tego skorzystać - zostaw jak jest
Server Jar File - nazwa pliku serwera (silnik)
Spigot Version - wersja silnika Spigot, która ma być pobrana. Jeśli chcemy skorzystać z wersji najnowszej zostawiamy latest
.
Download Path - adres do silnika Spigot, używany wtedy gdy chcemy aby serwer działał pod konkretną wersją silnika dostępną pod wybranym linkiem. W przypadku gdy kontener ma ustawioną małą pojemność, zostawienie tego pola pustego może spowodować niepowodzenie.
Na tej stronie znajdziesz w miarę aktualną listę silników :)
Po kliknięciu w pojawi się nam taka informacja:
Klikając zobaczymy proces tworzenia serwera:
Po odzcekaniu kilku minut i odświeżeniu strony naszym oczom ukazuje się konsola serwera:
Pod konsolą znajdują się także przyciski:
Po kliknięciu w Start
nasz serwer się uruchamia :)
Podczas uruchamiania serwera pojawi nam się takie okienko:
Zatwierdzamy EULA klikając I Accept
a następnie OK
.
Serwer został uruchomiony i jest dostępny pod ustawionym wcześniej adresem IP i portem :slight_smile:
Dane SFTP
Dane do SFTP znajdują się w konfiguracji naszego serwera. Po lewej stronie:
należy rozwinąć Configuration
I kliknąć w SFTP Settings
- dane znajdują się w sekcji SFTP Details
.
Jeśli poradnik Ci się spodobał, zostaw serduszko :)