« Tüm yayınlar

Kendi sunucunda 'başarılı' görünen ama aslında bozuk 4 hata

Self-hosting ortamında 200 OK, yeşil healthcheck ve temiz exit code'ların arkasına gizlenen 4 sessiz arıza ve pratik çözümleri.

Üç yıllık self-hosting deneyiminde en pahalıya patlayan arızalar hata fırlatanlar değil, başarı sinyali verirken aslında bozuk olanlardı: 200 OK dönen bir sayfa, 'sağlıklı' diyen bir healthcheck, temiz çıkan bir yedekleme komutu. Docker, Caddy ve Tailscale üzerinde çalışan tek bir sunucudan dört somut örnek: Sablier'in beklerken servis ettiği HTML sayfasının WebDAV istemcisini kandırması, Collabora imajından curl kaldırılınca healthcheck'in sessizce çürümesi, MariaDB ve SQLite yedeklerinin görünürde başarılı ama içi boş çıkması, ve uyku moduna geçmiş bir makineye Tailscale IP'sinden gönderilen Wake-on-LAN paketinin katman karışıklığı yüzünden hiçbir iz bırakmadan kaybolması.

Her örnekte ortak desen aynı: sistem yeşil ışık yakıyor ama uçtan uca doğrulama yapılmamış. Mühendisler için pratik çıkarım, hata mesajı aramak yerine 'ne doğrulanmadan başarılı sayılıyor' sorusunu sormak. Yazıda ayrıca /dev/tcp tabanlı bağımlılıksız healthcheck, MariaDB'yi dump öncesi ping ile bekletme, kök sahipli SQLite dosyasını konteyner ödünç alarak yedekleme ve WoL paketini LAN üzerinden röle etme gibi somut çözümler, sanitize edilmiş bir compose/Caddyfile deposuyla birlikte paylaşılıyor.