Blog’a Dön

Pterodactyl Kurulumu: Panel ve Wings Rehberi

Pterodactyl panel nasıl kurulur? Ubuntu sunucuda panel, veritabanı, kuyruk servisi, Nginx ve SSL, Docker ile Wings, node ve allocation ayarları adım adım.

Nodesty Ekibi5 dk okumaOyun sunucuları
Koyu Nodesty arka planında Pterodactyl yazısı ile Panel, Wings ve Docker ifadeleri

Pterodactyl, oyun sunucularını web tarayıcısından yönetmenizi sağlayan açık kaynaklı ve ücretsiz bir paneldir. Minecraft, Rust, CS2, Terraria ve daha birçok oyunun sunucusunu tek bir panelden kurar, başlatır, durdurur ve dosyalarını yönetirsiniz; her sunucu kendi Docker konteynerinde, belirlediğiniz RAM, işlemci ve disk sınırlarıyla çalışır. Kendi topluluğunuz ya da müşterileriniz için çok sayıda oyun sunucusu barındıracaksanız Pterodactyl en yaygın tercihtir.

Bu rehberde Pterodactyl'in iki parçasını, Panel'i ve Wings'i, Ubuntu bir sunucuya adım adım kurmayı ve ilk oyun sunucunuzu oluşturmayı anlatıyoruz. Paket ve PHP sürümleri zamanla değiştiği için kurulumdan önce Pterodactyl'in resmî belgelerindeki güncel gereksinimleri de kontrol edin.

Pterodactyl nasıl çalışır?

Pterodactyl iki bileşenden oluşur:

  • Panel: PHP ile yazılmış web arayüzü. Kullanıcıları, sunucuları ve ayarları yönetir; bir veritabanı ve Redis kullanır.
  • Wings: Oyun sunucularının çalıştığı makinede duran servis. Panelden gelen komutları alır ve her oyun sunucusunu ayrı bir Docker konteynerinde çalıştırır.

Bir panel, farklı konumlardaki birden fazla Wings sunucusunu (Pterodactyl'de node denir) yönetebilir. Küçük bir kurulumda ikisi aynı sunucuda çalışabilir.

Gereksinimler

  • Sunucu: KVM tabanlı bir sanal sunucu ya da fiziksel sunucu. Wings, Docker için tam bir Linux çekirdeğine ihtiyaç duyar; OpenVZ ve LXC gibi konteyner tabanlı sanallaştırmalar genellikle çalışmaz.
  • İşletim sistemi: Ubuntu'nun güncel LTS sürümü. Bu rehberde Ubuntu 24.04 kullanıyoruz.
  • Alan adı: Panel ve Wings için birer alt alan adı, örneğin panel.alanadiniz.com ve node.alanadiniz.com. Her ikisi de sunucunun IP adresini gösteren bir A kaydına sahip olmalıdır; bunu DNS nedir? yazımızda anlattık.
  • Kaynaklar: Panelin kendisi az kaynak kullanır. RAM ve işlemci ihtiyacını çalıştıracağınız oyun sunucularının toplamı belirler.

1. Adım: Bağımlılıkları kurun

Panel; PHP, bir web sunucusu (Nginx), bir veritabanı (MariaDB), Redis ve Composer ister. Sunucunuza SSH ile bağlanıp root olun ve paketleri kurun:

sudo -i
apt update
apt install -y php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \
  mariadb-server nginx tar unzip git redis-server certbot python3-certbot-nginx
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Pterodactyl'in desteklediği PHP sürümü zamanla değişebilir; belgelerde önerilen sürüm farklıysa paket adlarındaki 8.3'ü ona göre değiştirin. MariaDB ve Redis hakkında ayrıntılar için MySQL ve MariaDB kurulumu ve Redis nedir? yazılarımıza bakabilirsiniz.

2. Adım: Paneli indirin

mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
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/

3. Adım: Veritabanını oluşturun

mariadb -u root
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'guclu-bir-sifre';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
EXIT;

4. Adım: Paneli yapılandırın

cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --force
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail
php artisan migrate --seed --force
php artisan p:user:make
chown -R www-data:www-data /var/www/pterodactyl/*
  • key:generate: Panelin şifreleme anahtarını oluşturur. .env dosyasındaki APP_KEY değerini mutlaka yedekleyin; bu anahtarı kaybederseniz şifrelenmiş veriler okunamaz.
  • p:environment:setup: Panel adresini, saat dilimini, önbellek ve oturum için Redis'i sorar. Panel adresini https://panel.alanadiniz.com olarak girin.
  • p:environment:database: 3. adımda oluşturduğunuz veritabanı bilgilerini ister.
  • p:user:make: İlk yönetici hesabınızı oluşturur.

5. Adım: Zamanlayıcı ve kuyruk servisi

Panel, arka plan işleri için her dakika çalışan bir zamanlayıcıya ve bir kuyruk servisine ihtiyaç duyar. crontab -e ile şu satırı ekleyin:

* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1

Cron'un nasıl çalıştığını Cron nedir? yazımızda anlattık. Kuyruk için /etc/systemd/system/pteroq.service dosyasını oluşturun:

[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
systemctl enable --now redis-server
systemctl enable --now pteroq.service

6. Adım: Nginx ve SSL

Önce panel alan adı için SSL sertifikası alın, ardından Pterodactyl'in belgelerindeki Nginx yapılandırma örneğini /etc/nginx/sites-available/pterodactyl.conf dosyasına kopyalayıp <domain> yerlerine kendi alan adınızı yazın. Yapılandırma, PHP isteklerini PHP-FPM'e iletir ve HTTP'yi HTTPS'e yönlendirir.

systemctl stop nginx
certbot certonly --standalone -d panel.alanadiniz.com
rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
nginx -t
systemctl start nginx

Tarayıcıda https://panel.alanadiniz.com adresini açıp 4. adımda oluşturduğunuz yönetici hesabıyla giriş yapabilirsiniz. Nginx'in temellerini Nginx kurulumu, SSL'i SSL sertifikası nedir? yazımızda anlattık.

7. Adım: Wings'i kurun

Wings, oyun sunucularını Docker'da çalıştırır. Docker'ı ve Wings'i kurun:

curl -sSL https://get.docker.com/ | CHANNEL=stable bash
systemctl enable --now docker
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
chmod u+x /usr/local/bin/wings

Wings'in alan adı için de bir SSL sertifikası alın (panel ile aynı sunucudaysa panelin alan adını da kullanabilirsiniz):

certbot certonly --nginx -d node.alanadiniz.com

Docker'ın genel kullanımını Docker kurulumu rehberimizde anlattık.

8. Adım: Konum, node ve allocation

Panelde Admin bölümüne geçin:

  1. Locations → Create New: Bir konum oluşturun, örneğin fra (Frankfurt).
  2. Nodes → Create New: Node'un alan adını (node.alanadiniz.com), SSL kullandığını, RAM ve disk sınırlarını girin. Bellek ve disk için sunucunun gerçekten sahip olduğundan biraz az bir değer verin; işletim sistemine pay bırakın.
  3. Node oluşturulduktan sonra Configuration sekmesindeki yapılandırmayı kopyalayıp sunucuda /etc/pterodactyl/config.yml dosyasına yapıştırın.
  4. Allocation sekmesinde oyun sunucularının kullanacağı IP adresini ve port aralığını ekleyin, örneğin 25565-25575.

Wings'i önce hata ayıklama modunda başlatıp bağlantıyı test edin:

wings --debug

Paneldeki node simgesi yeşile döndüyse Ctrl + C ile durdurun ve Wings'i kalıcı bir servis olarak çalıştırın. /etc/systemd/system/wings.service:

[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
systemctl enable --now wings

Güvenlik duvarı

Pterodactyl'in çalışması için şu portlar açık olmalıdır:

  • 80 ve 443 TCP: Panel.
  • 8080 TCP: Panelin Wings ile konuştuğu port.
  • 2022 TCP: Oyun sunucularının dosyalarına SFTP ile erişim.
  • Allocation portları: Oyun sunucularının portları; oyuna göre TCP, UDP ya da ikisi.
ufw allow 80,443,8080,2022/tcp
ufw allow 25565:25575/tcp

Portların nasıl çalıştığını Port nedir? yazımızda anlattık.

İlk oyun sunucusunu oluşturma

Admin → Servers → Create New bölümünde sunucunun sahibini, node'u ve allocation'ı seçin, RAM, işlemci ve disk sınırlarını belirleyin ve Nest/Egg olarak oyunu seçin (örneğin Minecraft için Paper). Kurulum birkaç dakika sürer; ardından sunucunun konsolu, dosyaları ve yedekleri kullanıcı panelinden yönetilir.

Pterodactyl için Nodesty sunucuları

Pterodactyl, KVM sanallaştırması ya da fiziksel donanım gerektirir. Nodesty AMD Ryzen 9 9950X VDS paketleri KVM ile sanallaştırılır ve 5,7 GHz'e çıkan tek çekirdek hızıyla oyun sunucularına çok uygundur; çok sayıda sunucu barındıracaksanız donanımı tamamen size ayrılmış fiziksel sunucular daha fazla kaynak sunar. Pterodactyl dahil panel kurulumları müşteri tarafından yapılır; tek bir oyun için hazır kurulu bir sunucu istiyorsanız oyun sunucusu paketlerimize göz atabilirsiniz.

Pterodactyl, açık kaynaklı bağımsız bir projedir. Nodesty, Pterodactyl projesiyle bağlantılı değildir ve proje tarafından onaylanmamıştır.

Sıkça Sorulan Sorular

Pterodactyl ücretsiz mi?

Evet. Pterodactyl açık kaynaklı ve ücretsiz bir oyun sunucusu yönetim panelidir. Yalnızca panelin ve oyun sunucularının çalışacağı makineler için ödeme yaparsınız.

Panel ve Wings aynı sunucuda çalışabilir mi?

Evet. Küçük kurulumlarda panel ve Wings aynı sunucuda çalışabilir; bu rehberdeki adımlar bu senaryoya da uygundur. Çok sayıda oyun sunucusu barındıracaksanız paneli küçük bir sunucuda, Wings'i ise güçlü bir ya da birden fazla sunucuda çalıştırmak kaynakları daha iyi dağıtır.

Pterodactyl hangi sanallaştırmada çalışır?

Wings, oyun sunucularını Docker konteynerlerinde çalıştırır ve bunun için tam bir Linux çekirdeğine ihtiyaç duyar. KVM tabanlı sanal sunucularda ve fiziksel sunucularda sorunsuz çalışır; OpenVZ ve LXC gibi konteyner tabanlı sanallaştırmalar genellikle desteklenmez.

Egg nedir?

Egg, Pterodactyl'de bir oyun sunucusunun nasıl kurulup başlatılacağını tanımlayan şablondur. Minecraft, Rust ve CS2 gibi oyunlar için hazır egg'ler panelle birlikte gelir; topluluğun hazırladığı yüzlerce ek egg'i JSON dosyası olarak içe aktarabilirsiniz.

Wings bağlanmıyor, node kırmızı görünüyor. Ne yapmalıyım?

Wings servisinin çalıştığını systemctl status wings ile kontrol edin, 8080 portunun açık olduğundan emin olun ve paneldeki node ayarlarındaki alan adının ve SSL ayarının Wings'in yapılandırmasıyla eşleştiğini doğrulayın. Panel HTTPS kullanıyorsa Wings'in de geçerli bir SSL sertifikasıyla çalışması gerekir.

Nodesty Pterodactyl kurulumu yapıyor mu?

Hayır. Pterodactyl dahil uygulama ve oyun paneli kurulumları müşteri tarafından yapılır. Bu rehberdeki adımlarla Nodesty sanal ya da fiziksel sunucunuza Pterodactyl'i kendiniz kurabilirsiniz; hazır kurulu tek bir oyun sunucusu istiyorsanız oyun sunucusu paketlerimizi tercih edebilirsiniz.

Nodesty

Yazar hakkında

Nodesty Ekibi · Altyapı ve Destek

Nodesty ekibi sunucularımızı, ağımızı ve DDoS korumamızı her gün işletir ve müşteri destek taleplerini 7/24 yanıtlar. Bu rehberler o deneyimden yazılır.

İlgili yazılar

Sunucunuzu şimdi başlatın.

Nodesty'nin üstün altyapısı ile projelerinizi özgürce inşa edin ve sınır tanımadan ölçeklendirin.

                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                                                                                                                            
                                                                                                                             ············································                                                   
                                                ··································································································..........···························                                     
                                       ················..........................................................................................................................··············                             
                                  ·············.................::::::::::::::::::::::::::::::::::::::::::::::....................:::::::::::::::::::::::::::::::::::::::................···········                        
                             ············................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::............·········                     
                         ············.................:::::::::::::::::::::::::::::::::::::::::::::::::::------------::::::::::::::::::::::::::::::----------------:::::::::::::::::::::..........········                  
                    ············......................::::::::::::::::::::::::::::::::::::------------------------------------------------------------------------------------:::::::::::::.........········                
                ··········.............................................::::::::::::::::::-------------==========================================-----------------------------------:::::::::::........·······               
             ········..................:.....................................::::::::::--------=======+++++++++++++++++++++++++++++++++++++=========================------------------::::::::::.......·······              
           ······.........::::::::::::::::::::................................:::::::-----=====++++xxxxxx**************************xxxxxxxxx++++++++++++++===================------------::::::::.......·······             
          ·····.......:::::::::::::::::::::::::::.............................:::::----===+++xxx****%%%%&&&&&&#############&&&&&&&%%%%%*******xxxxxxxx++++++++++++++==============----------:::::::......······             
         ····......::::::::-------------:::::::::::..........................::::---===+++xx***%%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@####&&&&&%%%%*******xxxxxxxxx+++++++++++++===========--------::::::......·····             
        ····.....:::::::--------------------:::::::::.......................::::---===++xxx**%%&&&###@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&%%%%%********xxxxxxxxxxx++++++++++++========------::::::.....······            
        ····.....:::::--------------------------::::::::....................::::---===++xx***%%&&&####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###&&&&&%%%%%**********xxxxxxxxxxxxx+++++++++=======------:::::.....·····            
        ····....::::::-------=============---------:::::::::................:::::---===+++xx***%%%&&&#####@@@@@@@@@@@@@@@@@@@@@@@@@#####&&&&&%%%%%%*************xxxxxxxxxxxxxx+++++++++======-----:::::....·····            
         ····....:::::-------================---------:::::::::...............:::::----===++++xxx***%%%%&&&&&&#################&&&&&&%%%%%%%*******************xxxxxxxxxxxxxxxxx++++++++======----:::::....·····            
         ·····....:::::--------=================---------::::::::::..............:::::::-----====+++++xxxxxx**************************xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++=====-----::::....·····            
          ·····.....:::::--------=================----------:::::::::::.................:::::::::-------=============++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++======-----::::....·····            
            ·····.....:::::::----------===========-------------::::::::::::.........................::::::::::::::::::------------------=============+++++++++++++++++++++++++++++++++=======-----::::.....·····            
              ······......:::::::---------------------------------:::::::::::::........................................:::::::::::::::-----------============+++++++++++++++++++++========------:::::.....·····             
                 ······........:::::::::---------------------------:::::::::::::::::...........................................:::::::::::::------------=============================--------::::::.....······              
                    ·········.........:::::::::::::::-------------::::::::::::::::::::::::.......................................::::::::::::::::--------------------------------------::::::::......·······                
                          ··········............::::::::::::::::::::::::::::::::::::::::::::::::::................................::::::::::::::::::::::::::-------------:::::::::::::::.........········                   
                                  ············..................:::::::::::::::::::::::::::::::::::::::::::.........................:::::::::::::::::::::::::::::::::::::................···········                        
                                             ················.............................................................................................................·················                                 
                                                           ······················................................................................···························                                                
                                                                               ·········································································