SİSTEM

Bu site nasıl çalışıyor

Bu sayfa sitenin kendisini anlatır: nasıl kurulduğunu, nasıl test edilip yayına alındığını ve şu anki durumunu. Canlı değerler bu sunucudan, bu istekte okunur.

Şu anki durum

Sağlık
Çalışıyor
Sürüm
bd8800e
Yayına alınma
Kontrol zamanı

Sağlık, veritabanı ve medya deposu kontrollerinin tek bir özetidir; ayrıntılar yalnızca yönetim panelinde görünür. Sonuç en fazla 15 saniye önbellekte kalır. Sürüm, yayındaki sürümün etiketidir: commit SHA'sının kısası. Uptime yüzdesi ya da sahte grafik yoktur.

Mimari

Servislerin tamamı Docker Compose ile tek bir sunucuda, özel bir ağda çalışır. Dışarıya açılan tek servis nginx'tir; API, veritabanı ve yedek servisi yalnızca iç ağdadır.

  1. İSTEMCİ
    • TarayıcıSayfalar hazır HTML olarak gelir; JavaScript yalnızca etkileşimi ekler.
  2. KENAR
    • nginxTLS (Let's Encrypt), HSTS ve güvenlik başlıkları, istek boyutu ve hız sınırı, sıkıştırma.
  3. UYGULAMA
    • webAngular 22, Node.js 24 üzerinde SSR. Sayfayı istek anında çizer, her yanıta kendi CSP'sini yazar.
    • api.NET 10 modüler monolit: REST API, kimlik doğrulama, medya işleme, e-posta kuyruğu.
  4. VERİ
    • PostgreSQL 18Tek veritabanı, modül başına tablolar.
    • Medya deposuYüklenen dosyalar ve üretilen görsel boyutları.
  5. İŞLETİM
    • backupVeritabanı dökümü ve medya arşivi, her gün ve her deploy'dan önce, şifreli.
    • metriklerPrometheus biçiminde; public değil, yalnızca iç ağdan okunur.
İstek yolu: tarayıcıdan veriye, yukarıdan aşağıya.

Sunucuda çizilen sayfalar

SSR
Her public sayfa istek anında, canlı içerikle sunucuda çizilir. Arama motorları ve JavaScript'i kapalı ziyaretçiler aynı sayfayı okur.
Hidrasyon
Tarayıcı sunucunun HTML'ini baştan çizmez, devralır. Ana sayfanın bölümleri ekrana girdikçe etkileşimli olur (artımlı hidrasyon); sunucunun aldığı veri tarayıcıda yeniden istenmez.
Zoneless Angular
zone.js yok: değişiklik algılamayı sinyaller yürütür.
Diller
Her dil kendi adresindedir (/tr, /en). Kök adres son seçime ya da tarayıcı diline yönlenir; çevirisi olmayan içerik varsayılan dilde gösterilir.
İçerik
Metinler yönetim panelinden gelir. Markdown sunucuda HTML'e çevrilir ve izin listesiyle temizlenir; temizlenmemiş HTML tarayıcıya ulaşmaz.

3D gökyüzü

Ayrı yükleme
three.js ilk JavaScript'te yoktur; sahne ayrı ve ertelenmiş bir parçada gelir. İlk yüklemenin boyutu bir bütçeyle korunur.
Kalite
Sahibin ayarı, ziyaretçinin seçimi ve cihazın gücünden en düşüğü seçilir. Yavaş ya da veri tasarruflu bağlantıda 3D kapalı başlar; kare hızı düşerse kalite bir basamak iner.
Azaltılmış hareket
Sistem azaltılmış hareket istiyorsa sahne durağan bir kareye döner ve giriş animasyonları kapanır. Footer'daki “3D arka plan” düğmesi 3D'yi kapatır ve bu seçimi hatırlar.
WebGL yoksa
Durağan bir CSS gökyüzü ve güneş sisteminin statik haritası çizilir; aynı bilgi bir liste olarak da vardır. Site 3D olmadan eksiksiz çalışır.

Gizlilik ve güvenlik

Ziyaret sayacı
Açıksa çerez kullanmaz ve üçüncü taraf bir servise gitmez. Gün ve sayfa başına sayar; tekil ziyaretçi, günlük değişen bir anahtarla özetlenmiş IP ve tarayıcıdan bulunur ve önceki günlerin özetleri silinir.
İçerik güvenlik politikası
Her yanıt kendi nonce'unu taşır: yalnızca bu sitenin kendi script'leri çalışır, eval kapalıdır ve site başka bir sayfaya gömülemez. Uçtan uca testler her sayfada CSP ihlali arar.
Sızdırılmış parolalar
Yönetim hesaplarında bilinen veri sızıntılarında geçen bir parola reddedilir. Have I Been Pwned'a parolanın SHA-1 özetinin yalnızca ilk 5 karakteri gider (k-anonymity); parolanın kendisi sunucudan çıkmaz.
Hatalar
API hataları standart bir biçimde (RFC 9457) ve iç ayrıntı içermeden döner.

Teslimat hattı

Yerel kalite kapısı
Barındırılan bir CI yok: kapıların tamamı geliştirici makinesinde tek komutla çalışır. Biçim ve lint, birim testleri, gerçek PostgreSQL'e karşı entegrasyon testleri, modül sınırı testleri, API sözleşmesinin TypeScript tipleriyle eşleşmesi, belge bağlantıları, sır taraması, bağımlılık ve container image zafiyet taraması.
Uçtan uca
Gerçek Docker Compose yığınında tarayıcı testleri: public sayfalarda erişilebilirlik taraması (axe), her testte CSP ihlali kontrolü, referans görüntülerle görsel karşılaştırma ve Lighthouse bütçesi (performans ≥ 90, erişilebilirlik ≥ 95, en iyi uygulamalar ≥ 95, SEO 100).
Sürüm
Image'lar commit SHA'sıyla etiketlenir, yerelde derlenir ve SSH ile sunucuya yüklenir; registry kullanılmaz.
Deploy
Önce yedek, sonra veritabanı migration'ı. Yeni sürüm sağlık kontrolünü geçemezse önceki sürüm otomatik olarak geri gelir.

İşletim

Yedekler
Veritabanı dökümü ve medya arşivi age ile şifrelenir. Son 7 günün, 4 haftanın ve 6 ayın setleri saklanır; yapılandırıldığında site dışına da kopyalanır. Geri yükleme bir betikle prova edilir.
Uyarılar
Uyarı adresi ayarlandığında: yedek başarısız olursa ya da gecikirse sahibe olay başına bir kez e-posta gider, düzeldiğinde bir kez daha.
Metrikler
İstek süresi, hata oranı, önbellek isabeti ve e-posta kuyruğu ölçülür. Metrik ucu yalnızca iç ağdan okunur, bu siteden erişilemez.
E-posta kuyruğu
E-postalar veriyle aynı işlemde bir kuyruğa (outbox) yazılır ve aralıklarla tekrar denenir; geçici bir hata e-postayı kaybettirmez.