Pterodactyl on avoimen lähdekoodin Linux-pohjainen pelipalvelinten hallintapaneeli.
Sen avulla voit helposti hallita ja käynnistää pelipalvelimia verkkokäyttöliittymän kautta. Pterodactyl käyttää Docker-kontteja eristämään palvelimet ja tukee monia pelejä.
Ohje käyttää referenssinä Pterodactylin sivuilla olevaa ohjetta johon pääset tästä.
Tässä ohjeessa näytän kuinka voit asentaa Pterodactyl-paneelin. Pterodactyl paneeli on suunniteltu toimimaan omalla verkkopalvelimellasi. Sinulla on oltava pääkäyttäjän oikeudet palvelimellesi, jotta voit suorittaa ja käyttää tätä paneelia.
1. Ensimmäiseksi aja päivitys palvelimellasi ennen, kuin alamme asentamaan Pterodactyliä.
sudo apt update
2. Seuraavaksi asennetaan tärkeitä vaatimuksia palvelimelle:
Lisää "add-apt-repository" komento
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
Lisää lisätietokanta PHP, Redis, and MariaDB
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
Lisää virallinen Redis APT tietokanta
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
MariaDB repo asennus skripti voidaan ohittaa jos on Ubuntu 22.04
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
Päivitä
apt update
Asenna vaatimukset
apt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server
Käytä näitä jos sinulla on CentOS, Rocky Linux, AlmaLinux tai Fedora Server
Päivitä serverisi
sudo dnf update -y
Asenna EPEL ja Remi repositorit
sudo dnf install -y epel-release
Lisää PHP-säilöitä (Enterprise Linux 8)
(Jos sinulla on vaikka Almalinux 9.3 vaihda "remi-release-8.rpm" kohdasta 8 -> 9 jotta saat ladattua oikeat tiedot)
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
Ota PHP 8.3 käyttöön
sudo dnf module reset php
sudo dnf module enable php:remi-8.3 -y
sudo dnf install php-process -y
sudo dnf install php83-php-process -y
Asenna riippuvuudet
sudo dnf install -y php php-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb mariadb-server nginx redis zip unzip tar
Käynnistä ja ota palvelut käyttöön
sudo systemctl enable --now mariadb nginx redis
Lataa firewall
sudo dnf install firewalld -y
sudo systemctl enable --now firewalld
Konfiguroi firewall (Nämä avaa portit 80 ja 443 jotta pystyt pääsemään Pterodactyl paneeliin)
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
Lataa Nano (Nano on teksti tiedostojen muokkaus työkalu)
sudo dnf install nano -y
3. Composerin asentaminen
Composer on PHP:n hallintaohjelma, jonka avulla voimme toimittaa kaiken, mitä tarvitset paneelin käyttämiseen.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
4. Tiedostojen asentaminen
Ensiksi luodaan kansio johon asennamme Pterodactylin:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
Kun olet saanut kansion luotua ja olet kansion sisällä, ladataan sekä puretaan tiedostot sinne käyttämällä curl työkalua.
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/
5. Asennus
Nyt kun kaikki tiedostot on ladattu, meidän on määritettävä joitain paneelin ominaisuuksia. Luodaan ensiksi tietokanta paneelille:
mysql -u root -p
Muista vaihtaa 'yourPassword' omaksi salasanaksi!!
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'yourPassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exit
Pääset pois Mysql-näkymästä kirjoittamalla "exit" ja painamalla ENTER
Sitten kopioimme oletusympäristön asetustiedostomme, asennamme tärkeitä vaatimuksia ja luomme sitten uuden sovelluksen salausavaimen.
cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
Suorita tämä komento vain silloin kun lataat Pterodactyliä ensimmäistä kertaa eikä sinulla ole tietokantoja luotuna
php artisan key:generate --force
6. Ympäristön määritykset
Pterodactylin ympäristön saa helposti konfiguroitua käyttäen muutamaa CLI komentoa:
php artisan p:environment:setup
php artisan p:environment:database
7. Tietokannan määritykset
Nyt meidän on määritettävä kaikki paneelin perustiedot aiemmin luomassasi tietokannassa:
php artisan migrate --seed --force
Tämä komento määrittää tietokantataulukot ja lisää sitten kaikki "Nests & Eggs", jotka käyttävät Pterodactyliä.
8. Käyttäjän luonti
Seuraavaksi meidän pitää luoda käyttäjä, jolla on järjestelmänvalvojan oikeudet. Määritä käyttäjälle tiedot käyttäen tätä komentoa:
php artisan p:user:make
9. Oikeuksien antaminen
Asennuksen viimeinen vaihe on asettaa oikeat käyttöoikeudet paneelitiedostoille, jotta verkkopalvelin voi käyttää niitä oikein.
Jos käytät Apachea tai Nginxiä (ei toimi jos on CentOS):
chown -R www-data:www-data /var/www/pterodactyl/*
Jos käytät Nginxiä CentOS
chown -R nginx:nginx /var/www/pterodactyl/*
Jos käytät Apachea CentOS
chown -R apache:apache /var/www/pterodactyl/*
10. Crontab-asetukset
Ensimmäinen asia, joka meidän on tehtävä, on luoda uusi cronjob, joka suoritetaan joka minuutti tiettyjen Pterodactyl-tehtävien käsittelemiseksi, kuten istunnon puhdistaminen ja ajoitettujen tehtävien lähettäminen.
Avaa Cron käyttämällä komentoa: "sudo crontab -e" ja lisää tämä viimeiselle riville:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
11. Queue Worker tiedoston luonti
Luo tiedosto nimeltä pteroq.service hakemistoon /etc/systemd/system alla olevalla sisällöllä.
cd /etc/systemd/system
sudo nano pteroq.service
Jos olet Almalinuxilla niin vaihda After=redis-server.service -> After=redis.service
Tässä ohjeessa jos teet Almalinuxilla tai muulla sen tapaisella laita user ja group kohtiin =nginx.
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
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
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
Jos käytät Redis ohjelmaa niin aja nämä komennot jotta Redis käynnistyy automaattisesti, kun palvelin käynnistyy ja Pterodactyl saadaan käyttöön alemmalla komennolla.
sudo systemctl enable --now redis-server
Almalinuxilla toimivat Redis komennot
sudo systemctl enable --now redis
sudo systemctl enable --now pteroq.service
11.5. Almalinux 9 lisä konfigurointi
cd /etc/php-fpm.d
sudo nano www-pterodactyl.conf
Kopioi alla oleva teksti sinne, tallenna se ja sitten voit poistua
[pterodactyl]
user = nginx
group = nginx
listen = /var/run/php-fpm/pterodactyl.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0750
pm = ondemand
pm.max_children = 9
pm.process_idle_timeout = 10s
pm.max_requests = 200
Sitten laita php-fpm päälle tällä komennolla:
sudo systemctl enable --now php-fpm
12. Web-palvelimen konfigurointi
Ensin poista Nginx oletus konfiguraatio.
rm /etc/nginx/sites-enabled/default
Liitä nyt alla olevan tiedoston sisältö ja korvaa <domain> verkkotunnuksellasi, jota käytetään tiedostossa nimeltä pterodactyl.conf ja aseta tiedosto kansioon
cd /etc/nginx/sites-available
sudo nano pterodactyl.conf
Almalinuxilla löydät oikean kansion
cd /etc/nginx/conf.d
sudo nano pterodactyl.conf
Jos olet Almalinuxilla vaihda fastcgi_pass unix:/run/php/php8.3-fpm.sock; --> fastcgi_pass unix:/var/run/php-fpm/pterodactyl.sock;
server {
# Muuta esimerkki <domain> verkkotunnuksellasi tai IP-osoitteella
listen 80;
server_name <domain>;
root /var/www/pterodactyl/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
Ota konfiguraatio käyttöön tällä komennolla (Jos olet Almalinuxilla tätä ei tarvitse tehdä):
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
Sen jälkeen uudelleenkäynnistä Nginx:
sudo systemctl restart nginx
Almalinux 9 konfiguraatioiden toimimiseen laita nämä komennot:
sudo -u nginx php /var/www/pterodactyl/artisan config:clear
sudo -u nginx php /var/www/pterodactyl/artisan config:cache
sudo systemctl restart php-fpm
13. Paneeliin sisäänpääsy
Pääset paneeliin kun laitat seleimeen kohdassa 6. laittamasi domainin tai ip osoitteen
Sinne laitat kohdassa 8. tekemäsi käyttäjänimen ja salasanan
14. Wings vaatimuksien asennus
Dockerin asenus
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
Tällä Docker käynnistyy aloituksessa
sudo systemctl enable --now docker
Käytä näitä jos sinulla on CentOS, Rocky Linux, AlmaLinux tai Fedora Server
Asenna tarvittavat paketit
sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
Lisää Docker repositori
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Asenna Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io
Tällä Docker käynnistyy aloituksessa
sudo systemctl enable --now docker
Konfiguroi firewall (Tällä avataan eri portteja ja laitetaan Pterodactyl käyttäjä varmasti menemään firewallista läpi)
firewall-cmd --add-port 8080/tcp --permanent
firewall-cmd --add-port 2022/tcp --permanent
firewall-cmd --permanent --zone=trusted --change-interface=pterodactyl0
firewall-cmd --zone=trusted --add-masquerade --permanent
firewall-cmd --reload
Kun olet tehnyt jommankumman näistä, sinun on otettava swap käyttöön.
sudo nano /etc/default/grub
Lisää kuvssa näkyvän GRUB_CMDLINE_LINUX tai sen tyyliseen kohtaan swapaccount=1 saman tapaisesti kuin kuvassa
Sen jälkeen tee
sudo update-grub
sudo reboot
Jos olet Almalinuxilla sinun pitää käyttää
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
15. Asenna Wings
Käytä näitä komentoja asentaaksesi Wings.
sudo mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
16. Konfigurointi
Mene paneelissa admin alueelle
Siellä mene vasemmalla olevassa sivu palkissa olevaan Locations kohtaan
Siellä painetaan oikeassa yläkulmassa olevaa Create New nappia
Sinne lisäät Short Code kohtaan siellä näkyvän mallin mukaan alueesi
Sitten mene Nodes kohtaan
Sieltä Create New nappia
Sitten näät tämän näköisen sivun johon sinun pitää laittaa sivusi/ip osoite ja konfiguroida kuinka paljon laitat nodelle tilaa ja muita sen tapaisia
Sitten voit avata noden painamalla sen nimestä
Siellä mene Configuration sivulle ja kopioi siellä oleva koodinpätkä
Sitten mene näillä komennoilla config.yml tiedostoon ja lisää sivulta kopioitu pätkä sinne
cd /etc/pterodactyl
sudo nano config.yml
17. Aloita Wings
Saat aloitettua Wings:sin tällä komennolla
sudo wings --debug
Almalinuxilla sinun pitää tehdä vielä vähän jotta saat sen toimimaan
Lataa tarvittavat asiat
sudo dnf install -y curl tar unzip socat
Tee Wings:sille kansio ja mene sinne
sudo mkdir -p /etc/pterodactyl
cd /etc/pterodactyl
Varmista että Wings on ladattuna
curl -L https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64 -o wings
Tee tämä jotta se varmasti pystyy käynnistymään
chmod +x wings
Ja sitten koita käynnistää Wings
sudo ./wings --debug
Jos saat jonkin näköisen errorin niin voit koittaa laittaa firewallin pois päältä hetkeksi
sudo systemctl stop firewalld
sudo systemctl disable firewalld
Sitten voit koitaa uudelleen aloittaa Wings:siä ja jos saat tämän auki ilman erroreita niin voit laittaa sen kiinni.
18. Laita Wings olemaan käynnissä taustalla
Mene tuohon kansioon ja avaa tiedosto
cd /etc/systemd/system
sudo nano wings.service
Kopioi alla oleva siihen tiedostoon ja tallenna se
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
Ja sitten voit aloittaa Wings:sin tällä komennolla
sudo systemctl enable --now wings
Jos aikaisemmin laitoit firewallin pois päältä voit laittaa sen nyt takaisin
sudo systemctl enable --now firewalld
19. Noden allokointi
Mene noden Allocation kohtaan
Laita siellä oikealla olevaan kohtaan palvelimesi ip ja kuvassa näkyvät portit
Sitten kun olet laittanut ne mene vasemmalla olevaan Servers kohtaan
Siellä paina Create New nappia
Siellä voit laittaa serverillesi nimen
Myös päättää kuinka paljon tilaa ja muita haluat antaa sille
Ja sitten voit valita mistä pelistä haluat tehdä serverin (teemme tässä nyt Minecaft serverin)
Sitten voit valita version ja sitten painaa Create Server nappia
Sitten saat odottaa hetken että serveri menee päälle
Voit koittaa päivittää sivua kunnes näet tämän näköisen näkymän josta voit painaa oikeass reunassa olevaa nappia
Sillä saat tämän näköisen sivun josta voit painaa start nappia
Kun aloitat ensimmäistä kertaa serverisi saat tämän näköisen josta voit painaa I ACCEPT jonka jälkeen voit mennä Minecraftiin.
Minecraftissä voit lisätä serverisi kun painat Add Server napista ja laittamalla server address kohtaan paneelissa näkyvän addressin
Toivottavasti tästä oppaasta oli apua. Jos ilmenee ongelmia, ota meihin yhteyttä.