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.
- İSTEMCİ
- TarayıcıSayfalar hazır HTML olarak gelir; JavaScript yalnızca etkileşimi ekler.
HTTPS
- KENAR
- nginxTLS (Let's Encrypt), HSTS ve güvenlik başlıkları, istek boyutu ve hız sınırı, sıkıştırma.
/ → web · /api → api
- 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.
özel Docker ağı
- VERİ
- PostgreSQL 18Tek veritabanı, modül başına tablolar.
- Medya deposuYüklenen dosyalar ve üretilen görsel boyutları.
- İŞ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.
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.