## [0.3.0] - 2026-07-23

Yedekten geri yükleme, kaba kuvvet saldırılarına karşı ban motoru, sunucu
belleğini motorlar arasında paylaştıran ayar önerileri ve uygulama güncelleme
bildirimi.

- **Yedekten geri yükleme.** Panel yedek üretiyordu ama geri dönüşü operatöre
  bırakıyordu; yedeğin değeri geri yüklenebildiği kadardır. Artık Yedekler
  sayfasından site dosyaları ve veritabanı dökümleri tek işlemle geri yükleniyor
  - Her geri yüklemede **önce mevcut hâlin yedeği alınır** ve yolu bildirilir;
    yanlış arşiv seçilirse dönülecek nokta olur
  - Site geri yüklemesinde hedef arşivin içinden okunur. Arşiv geçici bir dizine
    açılır ve ancak tamamı başarıyla açıldıysa yerine konur — bozuk bir arşiv
    siteyi yarı silinmiş bırakmaz. Arşivdeki yollar denetlenir (zip-slip)
  - Veritabanı geri yüklemesinde hedef seçilebilir; "önce sıfırla" varsayılan
    açıktır. PostgreSQL'de bu neredeyse zorunlu: düz metin döküm `DROP`
    içermediği için dolu bir veritabanında yarıda kalır
- **Ban motoru.** Tekrarlayan başarısız SSH ve panel girişleri artık kaynağı
  geçici olarak engelliyor. Host'a fail2ban kurulmaz; banlar panelin kendi
  bildirimsel iptables boru hattından uygulanır ve izin kurallarının önüne
  yazılır
  - Kilitlenmeye karşı dört koruma: panelde açık oturumu olan adres asla
    banlanmaz, güvenilen vekil ağları örtük olarak yok sayılır (Cloudflare'i
    banlamak bütün ziyaretçileri keserdi), ban süresi en fazla 7 gün ve
    `webpanel unban <ip>` panele girmeden çalışır
  - Ban, kurulu bağlantı kabulünden sonra uygulanır: yanlış bir ban yöneticinin
    o an açık SSH oturumunu düşürmez, yalnız yeni bağlantıları keser
- **SSH durumu görünür oldu.** sshd portu, `PasswordAuthentication`,
  `PermitRootLogin` ve root'un yetkili anahtar sayısı panelde okunur; parola
  girişi ve root izni birlikte açıksa uyarı düşer. Panel sshd yapılandırmasını
  **değiştirmez** — hatalı bir ayar sizi sunucudan kilitleyebilir
- **Veritabanı ayar önerileri belleği paylaştırıyor.** Her motor kendini
  "sunucudaki tek ağır servis" sayıyordu; ikinci bir motor kurmak toplam
  taahhüdü belleğin üstüne çıkarabiliyordu. Öneriler artık toplam RAM eksi diğer
  motorların taahhüdünden hesaplanıyor ve arayüz hesabı açıkça gösteriyor
- **Uygulama güncelleme bildirimi.** Katalogda daha yeni bir sürüm varsa kurulum
  listesinde, detayda ve uyarı merkezinde görünüyor

### Düzeltmeler

- Geçersiz bir veritabanı yapılandırması "uygulandı" sayılıyordu: container
  oluştuğu 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
  ve kalmazsa eski yapılandırmayı geri yüklüyor

### Güncelleme notları

- Bir yeni migration (`0023`) açılışta kendiliğinden uygulanır. Ban motoru
  **kapalı** başlar; Güvenlik → Engellenenler bölümünden açılır
- Ban motorunu açmadan önce kendi sabit adresinizi "yok sayılan adresler"
  listesine eklemeniz önerilir. Panelde açık oturumunuz zaten korur, ama oturum
  kapanırsa bu liste kalıcı güvencedir
- Geri yükleme mevcut veriyi değiştirir. Panel her seferinde güvenlik yedeği
  alır; yine de ilk denemeyi önemsiz bir site ya da veritabanıyla yapın

