## [0.2.3] - 2026-07-23

CDN arkasındaki sitelerde ziyaretçi adresinin doğru görülmesi, çok hedefli
yedekler, özel git depoları ve yapılandırma ekranlarının yeniden düzenlenmesi.

- **Gerçek istemci IP'si.** Siteleriniz Cloudflare gibi bir CDN'in arkasındaysa
  nginx'in gördüğü adres ziyaretçinin değil CDN'in adresiydi. Trafik kayıtları,
  hız sınırlama, site başına IP erişim kuralları ve WAF olayları aynı değere
  dayandığı için **dördü birden** yanlış çalışıyordu: hız sınırı tüm
  ziyaretçileri birkaç sayaçta topluyor, IP kuralları CDN'in adresine
  uygulanıyordu. Güvenlik → "Gerçek IP" sekmesinden Cloudflare (ağlar gömülü)
  ya da kendi ters vekiliniz tanımlanabiliyor
  - Ayar açıkken 80/443'ü yalnız güvenilen ağlara daraltan bir işlem eklendi.
    Bu **güvenlik gereğidir**: aksi halde sunucuya doğrudan bağlanan biri
    başlığı kendisi uydurarak IP kurallarını ve hız sınırını atlayabilir.
    Yalnız IPv4 kapsanır; panel ip6tables yönetmez
  - Panel girişinin IP'si de isteğe bağlı olarak başlıktan okunabiliyor, ama
    yalnız bağlantı güvenilen ağlardan geliyorsa
- **Yedeklerde "Tümü" hedefi.** On siteniz varsa on ayrı görev açmanız
  gerekmiyor: site ve veritabanı yedeklerinde tümünü (ya da bir veritabanı
  sunucusunun tamamını) kapsayan seçenek var. Hedef listesi çalışma anında
  çözülür, sonradan eklenen site kendiliğinden kapsanır. Saklama sayısı hedef
  başına geçerlidir ve bir hedefin düşmesi diğerlerini iptal etmez — sonuç
  "kısmen başarılı" olarak raporlanır
- **Uygulama kurulumunda erişim adımı.** Kurulan bir uygulama host portu
  yayınlıyor ama panel o portu güvenlik duvarında açmıyordu; varsayılan ret
  etkinken uygulama sessizce erişilemez kalıyordu. Artık kurulum sırasında ya
  bir alan adı verilir (panel ters vekil sitesi kurar, port dışarıya kapalı
  kalır) ya da port açıkça açılır
- **Git kaynakları.** Özel bir depodan dağıtım yapmanın tek yolu token'ı depo
  adresine gömmekti; adres hem veritabanına hem arayüze düz metin giriyordu.
  Kimlikler artık ayrı yönetiliyor (GitHub, Gitea ve diğerleri), token hiçbir
  ekranda geri gösterilmiyor, komut satırına yazılmıyor ve yalnız kendi ana
  bilgisayarına gönderiliyor
- **Yapılandırma ekranları.** Veritabanı yapılandırması geniş bir çekmeceye
  taşındı ve ikiye ayrıldı: gruplanmış ayar kataloğu ve dosyanın tamamını
  düzenlemeye açan "Ham dosya" sekmesi. Site detayına üretilen nginx
  yapılandırmasını gösteren "Yapılandırma" sekmesi eklendi
- **Dosyalar bölümünde site doğrudan belge kökünde açılıyor.** Eskiden yalnız
  statik siteler `public` içine iniyordu; PHP sitelerinde her seferinde fazladan
  bir tık gerekiyordu. Kırıntı yolundan site köküne çıkılabiliyor

### Düzeltmeler

- **Geçersiz yapılandırma "uygulandı" sayılıyordu.** Veritabanı ayarları
  kaydedildiğinde container oluşturulabildiği için işlem başarılı dönüyor, motor
  ise saniyeler içinde çıkıp yeniden başlatma döngüsüne giriyordu. Panel artık
  motorun ayakta kaldığını doğruluyor; kalmazsa motorun kendi hata mesajını
  gösterip eski yapılandırmayı geri yüklüyor
- Çekmece ve modallar sayfa yüksekliğine hapsoluyordu; katman artık belge
  gövdesine taşınıyor ve her zaman tam ekran yüksekliğinde açılıyor
- Panel sürümü arayüzde 0.2.0 olarak görünüyordu (0.2.1 ve 0.2.2'de
  güncellenmemiş)

### Güncelleme notları

- Dört yeni migration (0019-0022) açılışta kendiliğinden uygulanır. Vekil
  güveni **kapalı** başlar: mevcut sunucuların davranışı güncellemeyle
  kendiliğinden değişmez
- Cloudflare arkasındaki siteler için Güvenlik → Gerçek IP sekmesinden kipi
  seçmeniz gerekir. Kip açıkken web portlarını daraltmadan önce **tüm
  sitelerinizin** o vekilin arkasında olduğundan emin olun; DNS-only bir alan
  adı varsa erişilemez hâle gelir ve Let's Encrypt doğrulaması yapılamaz
- Uygulama kurulumlarındaki mevcut portlar olduğu gibi kalır; erişim adımı
  yalnız yeni kurulumlara uygulanır

