Script Pterodactyl 1.7 Kurulum (Ubuntu [Linux])

oppa

Aktif Üye
Pterodactyl, PHP7, Nodejs ve Go ile oluşturulmuş açık kaynaklı oyun sunucusu yönetim panelidir. Güvenlik göz önünde bulundurularak tasarlanan Pterodactyl, tüm oyun sunucularını izole Docker kapsayıcılarında çalıştırırken, yöneticilere ve kullanıcılara güzel ve sezgisel bir kullanıcı arayüzü sunar. Genel olarak oyun sunucuları için kullanılsa da discord botları dahil birçok desteği bulunmaktadır.
pterodactyl_logo_transparent.png

Desteklenen Oyunlar
Aslında birçok oyunu destekleyebilmektedir. Yüklenebilecek ek yapılar sayesinde özgürce sunucu yönetimi sağlayabilirsiniz..
Desteklenen temel oyunlardan bazıları şunlardır:
  • Minecraft — including Spigot, Sponge, Bungeecord, Waterfall, and more
  • Rust
  • Terraria
  • Teamspeak
  • Mumble
  • Team Fortress 2
  • Counter Strike: Global Offensive
  • Garry's Mod
  • ARK: Survival Evolved

Standart desteklenen oyunlara ek olarak topluluk tarafından desteklenen oyunlardan bazıları şunlardır:
Standart desteklenen oyun yuvamıza ek olarak, topluluğumuz sürekli olarak bu yazılımın sınırlarını zorluyor ve topluluk tarafından sağlanan daha birçok oyun var. Bu oyunlardan bazıları şunlardır:
  • Factorio
  • San Andreas: MP
  • Pocketmine MP
  • Squad
  • FiveM
  • Xonotic
  • Discord ATLBot
Pterodactyl 1.7 Kurulum (Ubuntu [Linux])
Pterodactyl Panel, kendi web sunucunuzda çalışacak şekilde tasarlanmıştır. Bu paneli çalıştırmak ve kullanmak için sunucunuza root erişiminizin olması gerekir. Ubuntu konsolda girilecek kodlarda # ile başlayan satırlar açıklama satırlarıdır. Bu satırları konsola girmenize gerek yoktur.
Bağımlılıklar
  • PHP 7.4 veya 8.0 (önerilir): cli, openssl, gd, mysql, PDO, mbstring, tokenizer, bcmath, xml veya dom, curl, zip, ve fpm NGINX kullanacaksanız.
  • MySQL 5.7.22 ve üstü (MySQL 8 önerilir) veya MariaDB 10.2 ve üstü.
  • Redis (redis-server)
  • Web sunucusu (Apache, NGINX, Caddy, vb.)
  • curl
  • tar
  • unzip
  • git
  • composer v2

Bağımlılıkların Kurulumu
Aşağıdaki komutları girerek paketleri yüklemeniz gerekmektedir.

# Add "add-apt-repository" command
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg

# Add additional repositories for PHP, Redis, and MariaDB
LC_ALL=C.UTF-8 add-apt-repository -y ppa:eek:ndrej/php
add-apt-repository -y ppa:chris-lea/redis-server
curl -sS | sudo bash

# Update repositories list
apt update

# Add universe repository if you are on Ubuntu 18.04
apt-add-repository universe

# Install Dependencies
apt -y install php8.0 php8.0-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server

Composer Yükleme
Composer, Panel'i çalıştırmak için kod akıllıca ihtiyacınız olan her şeyi göndermemize izin veren PHP için bir bağımlılık yöneticisidir.
curl -sS | sudo php -- --install-dir=/usr/local/bin --filename=composer

Dosyaları İndirme
Bu işlemdeki ilk adım, panelin çalışacağı klasörü oluşturmak ve ardından yeni oluşturulan klasöre girmektir. Aşağıda bu işlemin nasıl gerçekleştirileceğine dair bir örnek verilmiştir.
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl

Panel için yeni bir dizin oluşturduktan ve içine girdikten sonra Panel dosyalarını indirmeniz gerekecektir. İndirildikten sonra arşivi açmanız ve ardından storage/ ve bootstrap/cache/ dizinlerinde doğru izinleri ayarlamanız gerekir. Bu dizinler, dosyaları depolamamıza ve yükleme sürelerini azaltmak için hızlı bir önbellek tutmamıza izin verir.
curl -Lo panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/

Veritabanı Yapılandırılması
Bir veritabanı kurulumuna ve bu veritabanı için oluşturulmuş doğru izinlere sahip bir kullanıcıya ihtiyacınız olacak. Pterodactyl paneliniz için hızlı bir şekilde bir kullanıcı ve veritabanı oluşturmak için aşağıdaki kod yeterli olacaktır. Daha ayrıntılı bilgi için Pterodactyl tarafından sağlanan sayfasına bakabilirsiniz.
mysql -u root -p

# Remember to change 'yourPassword' below to be a unique password
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

Önce varsayılan ortam ayarları dosyamızı kopyalayacağız, çekirdek bağımlılıkları yükleyeceğiz ve ardından yeni bir uygulama şifreleme anahtarı oluşturacağız.
cp .env.example .env
composer install --no-dev --optimize-autoloader

# Only run the command below if you are installing this Panel for
# the first time and do not have any Pterodactyl Panel data in the database.
php artisan key:generate --force

Ortam Yapılandırması
Pterodactyl'in çekirdek ortamı, uygulamada yerleşik olarak bulunan birkaç farklı CLI komutu kullanılarak kolayca yapılandırılır. Bu adım, oturumlar, önbelleğe alma, veritabanı kimlik bilgileri ve e-posta gönderme gibi ayarları kapsayacaktır.
php artisan p:environment:setup
php artisan p:environment:database

# To use PHP's internal mail sending (not recommended), select "mail". To use a
# custom SMTP server, select "smtp".
php artisan p:environment:mail

Şimdi daha önce oluşturduğunuz veritabanındaki Panel için tüm temel verileri kurmamız gerekiyor. Aşağıdaki komutun çalışması makinenize bağlı olarak biraz zaman alabilir. Lütfen işlem tamamlanana kadar işlemden ÇIKMAYIN ! Bu komut, veritabanı tablolarını kuracak ve ardından Pterodactyl'e güç sağlayan tüm Nests & Eggs'i ekleyecektir.
php artisan migrate --seed --force

İlk Kullanıcıyı Ekleme
Ardından, panelde oturum açabilmeniz için bir yönetici kullanıcı oluşturmanız gerekir. Bunu yapmak için aşağıdaki komutu çalıştırın. Parolanın "en az 8 karakter, karışık harf, en az bir sayı" şeklinde olması gerekmektedir.
php artisan p:user:make

İzinleri Ayarlama
Kurulum sürecindeki son adım, web sunucusunun bunları doğru bir şekilde kullanabilmesi için Panel dosyalarında doğru izinleri ayarlamaktır.
# If using NGINX or Apache (not on CentOS):
chown -R www-data:www-data /var/www/pterodactyl/*

# If using NGINX on CentOS:
chown -R nginx:nginx /var/www/pterodactyl/*

# If using Apache on CentOS
chown -R apache:apache /var/www/pterodactyl/*

Kuyruk Dinleyicileri
Uygulamayı daha hızlı hale getirmek ve e-posta göndermeyi ve arka planda diğer işlemleri işlemek için kuyruklardan yararlanıyoruz. Bu eylemlerin işlenmesi için kuyruk çalışanını ayarlamanız gerekecektir.
Yapmamız gereken ilk şey, oturum temizleme ve arka plan programlarına zamanlanmış görevler gönderme gibi belirli Pterodactyl görevlerini işlemek için her dakika çalışan yeni bir cronjob oluşturmaktır."sudo crontab -e" komutu ile dosyayı açıp aşağıdaki kodu girmeniz gerekmektedir.
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1

Kuyruk Çalışanı Oluşturma
Kuyruk sürecimizin arka planda çalışmaya devam etmesi için yeni bir systemd çalışanı oluşturmanız gerekir. Bu kuyruk, e-posta göndermekten ve Pterodactyl için diğer birçok arka plan görevini yerine getirmekten sorumludur. "/etc/systemd/system" klasörü içerisinde "pteroq.service" isimli dosya oluşturunuz ve aşağıdaki kodu dosyaya kaydediniz.
# 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` or `nginx` 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
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target

Sisteminiz için radis kullanıyorsanız, açılışta başlayacağından emin olmak isteyeceksiniz. Bunu aşağıdaki komutu çalıştırarak yapabilirsiniz.
sudo systemctl enable --now redis-server

Son olarak, hizmeti etkinleştirin ve makine başlangıcında önyükleme yapacak şekilde ayarlayın.
sudo systemctl enable --now pteroq.service

Web Sunucusu Yapılandırması
UYARI
SSL yapılandırmasını kullanırken SSL sertifikaları oluşturmanız ZORUNLUDUR, aksi takdirde web sunucunuz başlatılamaz. Devam etmeden önce bu sertifikaların nasıl oluşturulacağını öğrenmek için Pterodactyl tarafından sağlanan sayfasına bakın.

Aşağıdaki kategorilerden lütfen kendinize uygun olanı seçiniz. (SSL ile Nginx, SSL Olmadan Nginx, SSL ile Apache, SSL Olmadan Apache)
*1-SSL ile Nginx
İlk olarak, varsayılan NGINX yapılandırmasını kaldırın.
rm /etc/nginx/sites-enabled/default
"/etc/nginx/sites-available/" klasöründe "pterodactyl.conf" isimli dosyaya aşağıdakileri kaydedin. "domain" olan kısımları kendi alan adınız ile değiştiriniz.
server_tokens off;

server {
listen 80;
server_name ;
return 301 https://$server_name$request_uri;
}

server {
listen 443 ssl http2;
server_name ;

root /var/www/pterodactyl/public;
index index.php;

access_log /var/log/nginx/pterodactyl.app-access.log;
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;

# SSL Configuration
ssl_certificate /etc/letsencrypt/live//fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live//privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
ssl_prefer_server_ciphers on;

# See before uncommenting the line below.
# add_header Strict-Transport-Security "max-age=15768000; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header Content-Security-Policy "frame-ancestors 'self'";
add_header X-Frame-Options DENY;
add_header Referrer-Policy same-origin;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.0-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;
include /etc/nginx/fastcgi_params;
}

location ~ /\.ht {
deny all;
}
}

Yapılandırmayı Etkinleştirme
Son adım, NGINX yapılandırmanızı etkinleştirmek ve yeniden başlatmaktır.
# You do not need to symlink this file if you are using CentOS.
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf

# You need to restart nginx regardless of OS.
sudo systemctl restart nginx

*2-SSL Olmadan Nginx
İlk olarak, varsayılan NGINX yapılandırmasını kaldırın.
rm /etc/nginx/sites-enabled/default

"/etc/nginx/sites-available/" klasöründe "pterodactyl.conf" isimli dosyaya aşağıdakileri kaydedin. "domain" olan kısımları kendi alan adınız ile değiştiriniz.
server {
listen 80;
server_name ;

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.0-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;
}
}

Yapılandırmayı Etkinleştirme
Son adım, NGINX yapılandırmanızı etkinleştirmek ve yeniden başlatmaktır.
# You do not need to symlink this file if you are using CentOS.
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf

# You need to restart nginx regardless of OS.
sudo systemctl restart nginx

*3-SSL ile Apache
İlk olarak, varsayılan Apache yapılandırmasını kaldırın.
a2dissite 000-default.conf

"/etc/apache2/sites-available/" klasöründe "pterodactyl.conf" isimli dosyaya aşağıdakileri kaydedin. "domain" olan kısımları kendi alan adınız ile değiştiriniz.
Not: Apache kullanırken paketin kurulu olduğundan emin olun, "libapache2-mod-phpaksi" olmadığı takdirde PHP web sunucunuzda görüntülenmez.
ServerName

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]



ServerName
DocumentRoot "/var/www/pterodactyl/public"

AllowEncodedSlashes On

php_value upload_max_filesize 100M
php_value post_max_size 100M


Require all granted
AllowOverride all


SSLEngine on
SSLCertificateFile /etc/letsencrypt/live//fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live//privkey.pem

Yapılandırmayı Etkinleştirme
Yukarıdaki dosyayı oluşturduktan sonra aşağıdaki komutları çalıştırmanız yeterlidir.
# You do not need to run any of these commands on CentOS
sudo ln -s /etc/apache2/sites-available/pterodactyl.conf /etc/apache2/sites-enabled/pterodactyl.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

*-SSL Olmadan Apache
İlk olarak, varsayılan Apache yapılandırmasını kaldırın.
a2dissite 000-default.conf
"/etc/apache2/sites-available/" klasöründe "pterodactyl.conf" isimli dosyaya aşağıdakileri kaydedin. "domain" olan kısımları kendi alan adınız ile değiştiriniz.
Not: Apache kullanırken paketin kurulu olduğundan emin olun, "libapache2-mod-phpaksi" olmadığı takdirde PHP web sunucunuzda görüntülenmez.
ServerName
DocumentRoot "/var/www/pterodactyl/public"

AllowEncodedSlashes On

php_value upload_max_filesize 100M
php_value post_max_size 100M


AllowOverride all
Require all granted

Yapılandırmayı Etkinleştirme
Yukarıdaki dosyayı oluşturduktan sonra aşağıdaki komutları çalıştırmanız yeterlidir.
# You do not need to run any of these commands on CentOS
sudo ln -s /etc/apache2/sites-available/pterodactyl.conf /etc/apache2/sites-enabled/pterodactyl.conf
sudo a2enmod rewrite
sudo systemctl restart apache2

Wings Kurulumu
Sistem Gereksinimleri

Wings çalıştırmak için Docker kapsayıcılarını çalıştırabilen bir Linux sistemine ihtiyacınız olacak. Çoğu VPS ve neredeyse tüm adanmış sunucular Docker'ı çalıştırabilmelidir, ancak uç durumlar da vardır.Sağlayıcınız Virtuozzo, OpenVZ (OVZ) veya LXC sanallaştırma kullandığında, büyük olasılıkla Wings'i çalıştıramazsınız. Bazı sağlayıcılar, Docker'ı desteklemek için iç içe sanallaştırma için gerekli değişiklikleri yaptı. Sağlayıcınızın destek ekibinden emin olmasını isteyin. KVM'nin çalışması garantilidir. Kontrol etmenin en kolay yolu "systemd-detect-virt" yazmaktır.

Docker Yükleme
Docker CE'nin hızlı kurulumu için aşağıdaki komutu çalıştırabilirsiniz.
curl -sSL | CHANNEL=stable bash

Eğer ki systemd (Ubuntu 16+, Debian 8+, CentOS 7+) olan bir işletim sistemindeyseniz, makinenizi başlattığınızda Docker'ın başlaması için aşağıdaki komutu çalıştırın.
systemctl enable --now docker

"/etc/default/grub" dosyasında "GRUB_CMDLINE_LINUX_DEFAULT" satırının parametresini "swapaccount=1" olarak değiştirin.
GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1"

Wings'i kurmanın ilk adımı, gerekli dizin yapısı kurulumuna sahip olduğumuzdan emin olmaktır. Bunu yapmak için, temel dizini oluşturacak ve yürütülebilir kanatları indirecek olan aşağıdaki komutları çalıştırın.
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings " ([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
chmod u+x /usr/local/bin/wings

Yapılandırma
Wings'i ve gerekli bileşenleri kurduktan sonraki adım, kurulu Panelinizde bir düğüm oluşturmaktır. İlk olarak panelinizi kurduğunuz web sitesine gidiniz ve aşağıdaki şekilde giriş ekranında oluşturduğunuz ilk kullanıcı bilgilerini giriniz. Eğer ki aşağıdaki ekran açılmaz ise ve otomatik olarak giriş yapma kısmına gitmez ise "alanadi.com/auth/login" sayfasına manuel olarak gidiniz.
pterologin.JPG

Giriş yaptıktan sonra kendinize bir "Node" oluşturmanız gerekmektedir. Node oluşturduktan sonra "Configuration" bölümünde size "Configuration File" verecektir aşağıdaki şekilde.
wings_configuration_example.9f3fdd0b.png

Burada bulunan "Configuration File" kısmını kopyalayınız ve "/etc/pterodactyl" klasöründe "config.yml" dosyasına kayıt edin.
Wings'i başlatmak için, aşağıdaki komutu çalıştırmanız yeterlidir. Bu, onu bir hata ayıklama modunda başlatacaktır. Hatasız çalıştığını onayladıktan sonra, aşağıdaki talimatları izleyerek işlemi sonlandırmak ve arka plan programı haline getirmek için kullanın. Sunucunuzun internet bağlantısına bağlı olarak Wings'i ilk kez çekip başlatmak birkaç dakika sürebilir.
sudo wings --debug

Daemonizing (systemd kullanarak)

Wings'i arka planda çalıştırmak basit bir iştir, bunu yapmadan önce hatasız çalıştığından emin olun. "/etc/systemd/system" klasöründe "wings.service" dosyasına kaydedin.
[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

Ardından, systemd'yi yeniden yüklemek ve Wings'i başlatmak için aşağıdaki komutları çalıştırın.
systemctl enable --now wings

!!! İşlem bu kadar. Eğer ki herhangi bir hata yapmadıysanız sisteminiz aşağıdaki şekilde aktif olacaktır.

pteroactive.JPG
 
Bazı kişilerin çok yardımsever ve bazı şeylere ihtiyacının olmadığını duydum. Bu kişilerin ve performanslı 64tick ve 128tick .CFG ayarlarını paylaşması en büyük temennimiz. Çok yardımsever kişiler sonuçta. Yardımlaşmak güzeldir.
 
Kurulumu yaptım panel açılıyor ama node kırmızı yanıyor. Ücretli yada ücretsiz yardım edebilecek var mı? iletişim pm
 

Users who are viewing this konu

Geri
Üst