Pterodactyl için VPS: panel, Wings ve oyun sunucuları
Pterodactyl, oyun sunucularını yönetmek için ücretsiz bir paneldir. İki bölümden oluşur. Panel, MariaDB veya MySQL veritabanı ve Redis kullanan PHP tabanlı bir web arayüzüdür: kullanıcılar, sunucular ve sınırlar burada oluşturulur. Wings ise her düğüme kurulan ve her oyun sunucusunu bellek, işlemci ve disk açısından sıkı sınırlarla ayrı bir Docker konteynerinde çalıştıran Go ile yazılmış bir servistir. İki bölüm tek bir VPS'e kurulabilir; ya da panel küçük bir sunucuya taşınıp ona istediğiniz kadar Wings düğümü bağlanabilir.
Sanallaştırma: yalnızca tam sanallaştırma
Pterodactyl belgeleri açıkça yazıyor: OpenVZ, Virtuozzo ve LXC'de Wings büyük olasılıkla başlamaz, KVM'de ise her zaman çalışır. Nedeni Docker'dır — kendi çekirdeğine, cgroups'a ve ağ modüllerine ihtiyaç duyar. Sunucuyu systemd-detect-virt komutuyla kontrol edebilirsiniz: yanıtta openvz veya lxc varsa paket uygun değildir. Bir başka tuzak, bazı sağlayıcıların gerekli Docker özelliklerinden yoksun değiştirilmiş çekirdekleridir; Wings, dağıtımın standart çekirdeğini ister. Bu yüzden yukarıdaki tabloya yalnızca KVM'li VPS'ler girdi. Konteyner gereksinimleri hakkında ayrıntılar Docker için VPS sayfasında.
Wings resmî olarak Ubuntu ve Debian'ı (1.x dalında ayrıca Rocky Linux ve AlmaLinux'u) destekler, Windows'ta çalışmaz. Panelin bir web sunucusuna (NGINX, Apache veya Caddy), uzantılarıyla PHP'ye, bir veritabanına ve Redis'e ihtiyacı vardır — bunların hepsi yaklaşık 1 GB bellek kaplar; bu yüzden paneli oyunlarla birlikte çok küçük bir pakete kurmamak daha iyidir.
Oyunlar için ne kadar bellek ayırmalı
Bir Wings düğümü, üzerinde çalışacak sunucuların toplamı artı sistem, Docker ve panel için 1–2 GB olarak hesaplanır. Tek bir sunucu için yaklaşık değerler:
- Terraria, Factorio, TeamSpeak — 0,5–2 GB.
- Paper üzerinde Minecraft — eklentilere ve çevrimiçi oyuncu sayısına bağlı olarak 2–6 GB, mod paketleri 8 GB ve üzeri. Ayrıntılar Minecraft için VPS sayfasında.
- Valheim, CS2 — 2–4 GB.
- Rust, ARK, Palworld — sunucu başına 8–16 GB, wipe sonuna doğru veya büyük bir dünyada daha da fazla.
Panel düğümde bellek fazla tahsisi (overallocation) ayarlamaya izin verir, ama oyunlar için bu tehlikelidir: konteynerler aynı anda fiziksel olarak var olandan fazlasını kullanırsa çekirdek süreçleri öldürmeye başlar. Sunucuların başka kişilere verildiği düğümlerde pay bırakın ve swap hesaplamasını açın (6.1 ve daha yeni çekirdeklerde varsayılan olarak açıktır).
İşlemci ve disk
Oyun sunucularının çoğu dünyayı tek bir ana iş parçacığında hesaplar; bu yüzden düğümde çekirdek frekansı önemlidir, çekirdek sayısı ise yan yana kaç sunucunun sığacağını belirler. Birkaç sunucu için dört hızlı çekirdek makul bir minimumdur. Pterodactyl'de bir sunucuyu belirli çekirdeklere sabitleyebilirsiniz; böylece ağır bir Rust, yandaki Minecraft'tan zaman çalmaz.
Diskin NVMe olması daha iyidir: Docker imajları, oyun dosyaları ve kayıtlar hızla büyür, SteamCMD ile her sunucu kurulumu gigabaytlarca veri indirir. CS2 veya ARK daha ilk yedekten önce onlarca gigabayt kaplar. Pterodactyl'in yerleşik yedekleri varsayılan olarak aynı düğümde saklanır — güvenilirlik için S3 uyumlu depolamaya aktarımı ayarlayın.
Tek makine mi, birkaç düğüm mü
İlk tanışma ve bir arkadaş grubu için sunucu açmaya, hem panelin hem de Wings'in kurulu olduğu tek bir VPS yeterlidir. Oyunlar çoğaldığında rolleri ayırmak daha kârlıdır: veritabanlı panel küçük ve ucuz bir sunucuda yaşar, oyunlar ise oyunculara yakın olacak şekilde farklı ülkelerde konumlandırılabilen birkaç Wings düğümünde. Düğümler Nodes bölümünden eklenir, panel de yeni sunucuları boş bellek ve diski dikkate alarak onlara dağıtır. Bir düğüm arızalanırsa panel ve diğer oyunlar çalışmaya devam eder. Panel ile düğümler arasındaki bağlantı internet üzerinden yapılır; bu yüzden panelin aynı veri merkezinde durması gerekmez — önemli olan yalnızca oyun düğümlerinin oyunculara yakın olmasıdır.
Ağ ve portlar
Wings panelin komutlarını 8080 numaralı portta HTTPS üzerinden alır ve kullanıcılara 2022'de SFTP sunar — iki portun da açık olması gerekir, HTTPS için düğümün sertifikalı kendi alan adına ihtiyacı vardır. Her oyun sunucusu, sizin ayırdığınız aralıktan (allocations) kendi portlarını alır; bunlara da güvenlik duvarında izin verilmelidir. Herkese açık oyun sunucuları sık saldırıya uğrar; bu yüzden açık oyunların bulunduğu bir düğüm için DDoS korumalı bir sağlayıcı seçin, paneli ise mümkünse IP kısıtlaması arkasında tutun.