Oyun sunucusu kiraladığınızda karşınıza çıkan yönetim ekranı büyük ihtimalle Pterodactyl'dır. Pterodactyl; PHP, React ve Go ile yazılmış açık kaynaklı bir oyun sunucusu yönetim panelidir ve her oyun sunucusunu izole bir Docker konteynerinde çalıştırır. Minecraft'tan Rust'a, Terraria'dan Garry's Mod'a kadar pek çok oyun aynı arayüzden yönetilir.

Bu rehber Pterodactyl'i kuran yönetici açısından değil, sunucusunu panelden yöneten kullanıcı açısından yazıldı: konsol, dosya yöneticisi, SFTP, zamanlanmış görevler, alt kullanıcılar, yedekler, veritabanları, allocation (port) yönetimi ve Startup değişkenleri. Bilgileri pterodactyl.io belgelerinden ve panelin GitHub'daki kaynak kodundan aldık. Bu yazı hazırlanırken GitHub'daki son kararlı sürüm v1.15.2 (21 Ekim 2026) idi; ayrıca v2.0.0 beta sürümleri yayınlanmış durumda. Arayüz metinleri sürüme ve barındırma firmanızın temasına göre biraz farklı görünebilir.

Panelin yapısı: Panel, Wings, Node ve Egg

Panelin yapısı: Panel, Wings, Node ve Egg: Panel, Wings, Node, Allocation
KavramAnlamı
PanelTarayıcıdan girdiğiniz web arayüzü ve API
WingsHer fiziksel makinede (node) çalışan, Docker konteynerlerini yöneten servis
NodeSunucuların fiilen çalıştığı makine
AllocationSunucuya atanan IP ve port birleşimi; her sunucunun en az bir allocation'ı olmalı
Nest / EggOyun türü (nest) ve o oyunun kurulum şablonu (egg): kurulum betiği, Docker imajı, başlatma komutu ve değişkenler

Kullanıcı olarak egg'leri ve node'ları görmezsiniz; bunlar yöneticinin işidir. Siz sunucunuzu egg'in size açtığı değişkenler ve izinler çerçevesinde yönetirsiniz.

Sunucu menüsü

Bir sunucuya girdiğinizde panelin standart arayüzünde şu sekmeler bulunur: Console, Files, Databases, Schedules, Users, Backups, Network, Startup, Settings ve Activity. Bir sekmeyi göremiyorsanız ya hesabınızın o işlem için izni yoktur ya da yönetici o özelliğin limitini sıfır bırakmıştır.

Console: canlı konsol ve güç düğmeleri

Console sekmesi sunucunun canlı çıktısını gösterir ve oyunun kendi konsol komutlarını buradan gönderirsiniz (örneğin Minecraft'ta say, Terraria'da save). Üstteki düğmelerle sunucuyu başlatır (Start), yeniden başlatır (Restart) veya durdurursunuz (Stop). Stop yanıt vermezse süreç Kill ile zorla sonlandırılabilir; ancak bu, oyunun kaydetme fırsatı olmadan kapanması demektir ve dünya verisi kaybına yol açabilir, son çare olarak kullanın.

Konsolu izlemek için websocket.connect, komut göndermek için control.console, güç işlemleri için control.start, control.stop ve control.restart izinleri gerekir.

Files: dosya yöneticisi

Files sekmesi sunucu klasörünü tarayıcıda gösterir. Buradan dosya ve klasör oluşturabilir, yükleyebilir, düzenleyebilir, yeniden adlandırabilir, silebilir; birden çok dosyayı arşivleyebilir veya mevcut arşivleri açabilirsiniz. Config dosyalarını (server.properties, serverconfig.txt, server.cfg gibi) tarayıcıdaki düzenleyiciyle değiştirmek en hızlı yoldur.

SFTP ile bağlanma

SFTP ile bağlanma: Sunucu adresi, Kullanıcı adı, Şifre

Büyük dosyaları (dünya klasörleri, mod paketleri) tarayıcıdan yüklemek yerine SFTP kullanın. Bağlantı bilgileri Settings sekmesindeki SFTP Details kutusunda yazar:

AlanDeğer
Sunucu adresisftp://ADRES:PORT biçiminde, panelde gösterildiği gibi
Kullanıcı adıpanel_kullanici_adiniz.sunucu_kimligi (ör. ahmet.1a2b3c4d)
ŞifrePanel giriş şifrenizle aynı

FileZilla, WinSCP gibi bir SFTP istemcisinde protokolü SFTP seçip bu bilgileri girmeniz yeterli. Panel, "Launch SFTP" düğmesiyle sisteminizdeki varsayılan SFTP istemcisini de açabilir. Hesap ayarlarındaki SSH Keys sayfasından açık anahtar ekleyerek şifre yerine anahtarla da bağlanabilirsiniz. Port numarası her kurulumda aynı değildir; her zaman panelde yazan portu kullanın.

Schedules: zamanlanmış görevler

Schedules, sunucunuzda belirli zamanlarda otomatik iş yaptırmanın yoludur: gece yeniden başlatma, düzenli yedek, oyunculara duyuru. Bir zamanlama oluştururken cron sözdizimi kullanırsınız: Minute, Hour, Day of month, Month ve Day of week alanları. Panel, yeni zamanlamada dakikayı varsayılan olarak */5 (her 5 dakikada bir) getirir ve bir cron örnek tablosu (cheatsheet) da gösterir.

  • Only When Server Is Online: Zamanlama yalnızca sunucu çalışırken yürütülür.
  • Schedule Enabled: Açıksa zamanlama otomatik çalışır.

Her zamanlamaya sırayla çalışan görevler (task) eklenir. Üç görev türü vardır:

Görev türüNe yapar
Send commandKonsola bir komut gönderir
Send power actionSunucuyu başlatır, yeniden başlatır, durdurur veya sonlandırır (kill)
Create backupYedek alır; hariç tutulacak dosyalar belirtilebilir

Her görevin bir Time offset (saniye cinsinden, önceki görevden sonra bekleme) değeri ve Continue on Failure seçeneği vardır. Örnek bir gece yeniden başlatma zamanlaması (her gün 05:00):

text
Zamanlama: minute=0  hour=5  day of month=*  month=*  day of week=*
Görev 1: Send command: say Sunucu 5 dakika içinde yeniden başlayacak
Görev 2: Create backup (time offset 240)
Görev 3: Send power action: Restart the server (time offset 60)

Zamanlama saatleri panelin ve node'un saat dilimine göre çalışır; ilk kurduğunuzda "next run" zamanını kontrol ederek beklediğiniz saate denk gelip gelmediğine bakın.

Users: alt kullanıcılar ve izinler

Sunucunuzu bir arkadaşınızla veya ekip arkadaşlarınızla yönetecekseniz şifrenizi paylaşmak yerine alt kullanıcı (subuser) ekleyin. Users sekmesinde e-posta adresini girip vereceğiniz izinleri seçersiniz; kişinin panelde hesabı yoksa davet edilir. Kaynak koddaki açıklamaya göre bir alt kullanıcı kendi hesabını düzenleyemez ve kendisinde olmayan bir izni başkasına veremez.

İzin grubuÖnemli izinlerDikkat edilecekler
controlconsole, start, stop, restartrestart izni olan, sunucuyu tamamen durduramaz ama kapalıysa başlatabilir
filecreate, read, read-content, update, delete, archive, sftpread yalnızca listeleme; dosya içeriğini görmek ve indirmek read-content ister
backupcreate, read, delete, download, restoredownload tüm dosyalara erişim, restore tüm dosyaları silebilme demektir
allocationread, create, update, deleteBirincil allocation herkes tarafından görülebilir
startupread, update, docker-imagedocker-image, çalışma imajını değiştirmeye izin verir
databasecreate, read, update, delete, view_passwordŞifreyi görmek ayrıca view_password ister
schedulecreate, read, update, delete
usercreate, read, update, deleteAlt kullanıcı yönetimi
settingsrename, reinstallreinstall sunucuyu yeniden kurdurur
activityreadEtkinlik kayıtlarını görme

Backups: yedekler

Backups sekmesinden sunucunun anlık yedeğini alırsınız. Yedek oluştururken bir ad verebilir, Ignored Files & Directories alanına yedeğe alınmayacak dosya ve klasörleri yazabilirsiniz. Bu alan boş bırakılırsa sunucu kök dizinindeki .pteroignore dosyası (varsa) kullanılır. Locked seçeneği yedeğin, kilit kaldırılana kadar silinmesini engeller.

text
# .pteroignore örneği (sunucu kök dizininde)
logs/
cache/
*.log

Kaç yedek alabileceğiniz yönetici veya paketiniz tarafından belirlenir. Yedeklerin nerede saklandığı da kurulumun tercihidir: pterodactyl.io belgelerine göre panel varsayılan olarak yedekleri Wings üzerinden yerel olarak saklar, yönetici isterse AWS S3 veya S3 uyumlu bir depolamaya yönlendirebilir. Yedeği geri yüklemek mevcut dosyaların üzerine yazar; geri yüklemeden önce mevcut durumu da yedeklemek iyi bir alışkanlıktır.

Kritik veriler için paneldeki yedeklere ek olarak dışarıda da bir kopya tutmak isteyebilirsiniz; bunun için SFTP ile indirilen yedekleri kendi depolamanıza alabilir veya kendi sunucunuzda rsync tabanlı yedekleme kurabilirsiniz.

Databases: MySQL veritabanı

Bazı eklentiler (Minecraft'ta LuckPerms, CoreProtect gibi; FiveM'de oxmysql kullanan kaynaklar gibi) bir MySQL/MariaDB veritabanı ister. Databases sekmesinde Database Name ve Connections From alanlarını doldurarak veritabanı oluşturursunuz. Connections From boş bırakılırsa değer % olur, yani her adresten bağlantıya izin verilir. Oluşan veritabanının host, port, kullanıcı adı ve şifre bilgilerini aynı ekranda görürsünüz; şifreyi döndürme (rotate) seçeneği de vardır.

Network: allocation ve portlar

Network sekmesi sunucunuza atanmış IP ve port (allocation) listesini gösterir. Birincil (primary) allocation, oyuncuların bağlandığı adrestir. Bazı oyunlar ek port ister (örneğin RCON, sorgu portu veya Minecraft'ta bir harita eklentisinin web arayüzü). Yönetici size allocation limiti tanımladıysa ekranda "You are currently using X of Y allowed allocations" yazar ve Create Allocation düğmesiyle ek port alabilirsiniz. Her allocation'a not ekleyebilir, birincil allocation'ı değiştirebilir ve kullanmadıklarınızı silebilirsiniz.

Startup: değişkenler ve Docker imajı

Startup sekmesinde sunucunun Startup Command değeri (çoğu zaman salt okunur) ve egg'in tanımladığı değişkenler bulunur: oyun sürümü, harita, oyuncu sayısı, Workshop koleksiyonu, şifre gibi. Düzenlenebilir değişkenleri değiştirip sunucuyu yeniden başlatmanız yeterli. Egg birden fazla imaj sunuyorsa Docker Image kutusundan seçim yapabilirsiniz. Panel bunu ileri düzey bir özellik olarak tanımlar; yanlış imaj seçimi sunucunun açılmamasına yol açabilir.

Bir değişkeni göremiyor veya değiştiremiyorsanız bunun nedeni egg'de o değişkenin kullanıcıya görünmez ya da düzenlenemez tanımlanmış olmasıdır; bu ayarı yalnızca yönetici değiştirebilir.

Settings ve Activity

Settings sekmesinde SFTP bilgilerine ek olarak sunucuyu yeniden adlandırabilir ve açıklama ekleyebilir, gerekiyorsa Reinstall Server ile egg'in kurulum betiğini tekrar çalıştırabilirsiniz. Yeniden kurulum bazı dosyaların silinmesine veya değişmesine yol açabileceği için öncesinde yedek alın. Egg kurulum betiğini atlayacak şekilde ayarlanmışsa yeniden kurulum devre dışıdır ve panel bunun için yöneticiyle iletişime geçmenizi söyler. Activity sekmesi ise sunucuda kimin ne yaptığını (dosya düzenleme, güç işlemi, yedek) kaydeder; birden çok kişiyle yönetilen sunucularda sorun takibinde çok işe yarar.

Client API ile otomasyon

Panel işlemlerini kod ile yapmak isterseniz hesap ayarlarındaki API Credentials sayfasından bir Client API anahtarı (ptlc_ ile başlar) oluşturabilirsiniz. Bu anahtar yalnızca sizin erişiminiz olan sunucularda çalışır. Örneğin konsola komut göndermek ve sunucuyu yeniden başlatmak:

bash
curl -X POST "https://panel.example.com/api/client/servers/SUNUCU_ID/command" \
  -H "Authorization: Bearer ptlc_ANAHTARINIZ" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -H "Content-Type: application/json" \
  -d '{"command": "say Merhaba"}'

curl -X POST "https://panel.example.com/api/client/servers/SUNUCU_ID/power" \
  -H "Authorization: Bearer ptlc_ANAHTARINIZ" \
  -H "Accept: Application/vnd.pterodactyl.v1+json" \
  -H "Content-Type: application/json" \
  -d '{"signal": "restart"}'

signal değeri start, stop, restart veya kill olabilir. API anahtarınızı bir şifre gibi saklayın; sızarsa hemen panelden silin.

Güvenlik için kısa kontrol listesi

Güvenlik için kısa kontrol listesi: Panel hesabınızda iki adımlı doğrulamayı (2FA) açın; SFTP şifreniz panel..., Alt kullanıcılara yalnızca gereken izinleri verin, işi bitenleri...
  • Panel hesabınızda iki adımlı doğrulamayı (2FA) açın; SFTP şifreniz panel şifrenizle aynı olduğu için bu hesap sunucunuzun anahtarıdır.
  • Alt kullanıcılara yalnızca gereken izinleri verin, işi bitenleri kaldırın.
  • Önemli yedekleri kilitleyin ve düzenli yedek zamanlaması kurun.
  • Kullanmadığınız ek portları (allocation) silin, veritabanı bağlantılarını gerekli adreslerle sınırlayın.
  • Saldırılara karşı altyapı tarafında alınan önlemler için DDoS koruma rehberimize göz atın.

Sık Sorulan Sorular

SFTP şifremi nereden bulurum?

Pterodactyl'de SFTP şifresi panel giriş şifrenizle aynıdır. Kullanıcı adı ise kullanici_adiniz.sunucu_kimligi biçimindedir ve Settings sekmesindeki SFTP Details kutusunda yazar.

Yedek alamıyorum, düğme görünmüyor. Neden?

Ya hesabınızda backup.create izni yoktur ya da sunucunuzun yedek limiti sıfırdır veya dolmuştur. Limit doluysa eski bir yedeği silin; kilitli yedekler silinmeden önce kilidinin kaldırılması gerekir.

Sunucumu panelden yeni bir oyuna veya egg'e çevirebilir miyim?

Egg değişikliği yönetici tarafında yapılan bir işlemdir; kullanıcı arayüzünde yalnızca egg'in izin verdiği değişkenleri ve Docker imajını değiştirebilirsiniz. Farklı bir oyun için genellikle barındırma firmanızdan değişiklik talep etmeniz gerekir.

Zamanlanmış görevim çalışmıyor, ne kontrol etmeliyim?

Zamanlamanın "Schedule Enabled" durumda olduğuna, "Only When Server Is Online" açıksa sunucunun o saatte çalıştığına ve cron alanlarının doğru olduğuna bakın. Panelde görünen "next run" zamanı, saat dilimi farkını anlamanıza yardımcı olur.

Oyun ve yazılım adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen geliştiricilerle ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: SteamCMD nedir? · Terraria sunucu kurulumu · Garry's Mod sunucu kurulumu · TeamSpeak sunucu kurulumu · Minecraft sunucu kurulumu