Dokümantasyon
KEYDAL

Platform mimarisi: yayın, panel ve fleet

KEYDAL'ın yayın pod'ları, yönetim paneli, kimlik ucu ve fleet aktuatörünün rollerini ve içeriğin canlıya nasıl aktığını anlatır.

Son güncelleme: 5 Eylül 2026

Genel bakış

KEYDAL, tek bir dev uygulama değil; her biri tek işi yapan küçük parçalardan kurulu bir sistemdir. Bu parçaları dört kümede toplayabilirsiniz: ziyaretçiye sitenizi gösteren yayın pod’ları, içeriği yönettiğiniz panel, kimliğinizi ve yazma yetkinizi çözen kimlik ucu ve siparişten siteye kadar kurulumu yürüten fleet aktuatörü.

Bu sayfa her parçanın ne işe yaradığını ve bir haberin panelde yazıldığı andan ziyaretçinin ekranına geldiği ana kadar hangi yoldan geçtiğini anlatır. Tek tek ayarları değil, büyük resmi verir; ayrıntılar için ilgili bölümlerin kendi sayfalarına bakabilirsiniz.

Ana bileşenler

Yayın pod’u — ziyaretçinin gördüğü site

Sitenizin kamuya açık yüzünü yayın pod’u çizer. Her site kendi ayrı çalışan süreci olarak yaşar: bir site, bir konteyner, bir Node süreci. Pod içeriği doğrudan sitenizin veritabanından okur ve dolu HTML üretir.

Bu tasarımın en belirgin sonucu şudur: derleme (build) adımı yoktur. İçerik veritabanına yazıldığı an bir sonraki istek onu görür. Panelde bir haberi yayımladığınızda sitenin yeniden derlenmesini beklemezsiniz.

Pod, aynı isteği tekrar tekrar veritabanından kurmasın diye site başına küçük bir bellek içi önbellek tutar. Bu önbellek süreye değil değişime bağlıdır: içerik değiştiği an düşer, değişmediği sürece durur. Böylece son dakika haberi gecikmez, ama sabit sayfa boşuna yeniden üretilmez.

Not: Yayın pod’u tasarım gereği veritabanını okuma yolunda tutar. Bir bağımlılık geçici olarak düşerse pod son iyi kopyayı bayat olarak sunmayı sürdürür; kopya yoksa geçici bir hata döner. Amaç, tek bir aksaklıkta sitenin tümden kapanmamasıdır.

Yönetim paneli — içeriği yönettiğiniz yer

Haberleri, kategorileri, medyayı ve ayarları yönettiğiniz arayüz paneldir. Panel giriş kapılıdır: oturum açmadan hiçbir sayfaya erişemezsiniz, oturumsuz istek giriş ekranına yönlendirilir. Oturumunuz tarayıcıya JavaScript’in okuyamadığı bir çerezle (httpOnly) tutulur, böylece oturum bilgisi sayfadaki bir betikle çalınamaz.

Panel iki ayrı servisle konuşur ve bu ayrım bilinçlidir:

  • Okuma yüzü (panel-api): Haber listesi, kategoriler, künye gibi verileri panele okuma amacıyla getiren ince bir katmandır. Yalnızca sizin üyesi olduğunuz sitelerin verisini görür.
  • Yazma ve kimlik yüzü (kimlik ucu): Giriş, oturum çözme ve her yazma işlemi buradan geçer.

Panel canlı veri akışı için WebSocket de kullanır; bildirim ve olaylar sayfaya anlık iletilebilir.

Kimlik ucu — kimlik ve yazmanın tek otoritesi

Kimlik ucu, kim olduğunuzu ve neyi yapmaya yetkili olduğunuzu belirleyen tek makamdır. Sitelerinizin verisiyle aynı makinede çalışır; paneli barındıran düğüm bu makineye doğrudan erişemez, aralarındaki konuşma özel ağ (mesh) üzerinden ve makineye özel bir jetonla yapılır.

Kimlik ucunun tuttuğu ilkeler:

  • Parolanız dışarı çıkmaz. Giriş sırasında parola, veri düğümünde scrypt ile doğrulanır; parolanın kendisi panele ya da tarayıcıya hiç inmez.
  • Oturum jetonu opaktır. İçinde yetki bilgisi taşımaz; sunucu jetonun özetini kendi tarafında arayıp yetkileri çözer.
  • Kaba kuvvet kilidi vardır. Art arda başarısız giriş belirli bir eşikten sonra hesabı geçici olarak kilitler.
  • Yetki site ve rol bazlıdır. Yalnızca üyesi olduğunuz siteleri, yalnızca rolünüzün izin verdiği işlemlerle görürsünüz.

Panel yalnızca çözülmüş yetkileri ve opak oturum jetonunu alır; hassas sırlar (parola özeti, jeton özeti) veri düğümünde kalır.

Fleet aktuatörü — siparişten siteye kurulum

Yeni bir site kurmak, askıya almak ya da kaynak profilini değiştirmek fleet aktuatörünün işidir. Sipariş sisteminden gelen komut imzalıdır; aktuatör imzayı doğrulamadan hiçbir şey yapmaz. Doğrulanan komuta göre şunları yürütür:

KomutNe yapar
createSitenin veritabanını (rol, şema, ilk veri) ve yayın altyapısını kurar
suspendSitenin pod’unu durdurur; veri korunur
unsuspendAskıya alınmış siteyi yeniden yayına alır
terminatePod’u durdurup arşiv etiketi koyar; veritabanını silmez

Dikkat: terminate bile veriyi anında silmez. Yayımlanmış haberlerin bir süre erişilebilir kalması yasal bir gerekliliktir (KVKK m.10); kalıcı silme provizyon yolunun dışında, ayrı ve elle yürüyen bir işlemdir. Sipariş akışının hiçbir adımı sitenizi yok edemez.

Aktuatör ayrıca medya yükleme ve CDN (Bunny) tarafındaki işleri de yürütür.

İçerik canlıya nasıl çıkar

Bir haberin panelde yazılmasından ziyaretçinin okumasına kadar geçen yol kısaca şudur:

  1. Panelde haberi yazarsınız. Panelin arayüzü kimlik ucundan geçmiş oturumunuzla açıktır.
  2. Kaydet dediğinizde yazma isteği kimlik ucuna gider. Kimlik ucu yetkinizi doğrular ve haberi sitenizin kendi veritabanına yazar.
  3. Yayın pod’u bir sonraki istekte veritabanındaki değişimi görür; önbelleği içerik değiştiği için düşmüştür.
  4. Ziyaretçi siteye girdiğinde pod, sitenizin veritabanından ve filoda ortak duran servis verisinden (piyasa, hava, deprem gibi) dolu HTML üretip gönderir.

Panelin okuduğu yol ile yazdığı yol ayrıdır: okuma panel-api üzerinden, yazma kimlik ucu üzerinden gider. Bu ayrım sayesinde okuma tarafı yavaşlasa ya da dursa yazma yolu etkilenmez.

Siteler birbirinden nasıl ayrılır

KEYDAL çok kiracılı (multi-tenant) bir sistemdir: aynı altyapıda yüzlerce site yaşar. Bu sitelerin birbirine karışmaması birkaç katmanla sağlanır:

  • Ayrı veritabanı. Her sitenin kendi ayrı veritabanı vardır; bir sitenin içeriği başka bir siteden okunamaz.
  • Ayrı pod. Her site kendi sürecinde çalışır; birinin çökmesi komşuyu düşürmez.
  • Site bazlı yetki. Panelde yalnızca üyesi olduğunuz siteleri görürsünüz; başkasının sitesine ait veriye erişim yapısal olarak engellidir.
  • Sır sınırı. Kurulum ve altyapı sırları fleet düğümünde kalır; sipariş sistemi yalnızca imzalı komutu özel ağ üzerinden gönderir.

Bileşen referansı

BileşenRolüKime bakar
Yayın pod’uZiyaretçiye siteyi çizer, derlemesizZiyaretçi
Panel (okuma yüzü)Editoryal veriyi panele getirirEditör
Kimlik ucuGiriş, oturum ve yazmanın otoritesiEditör
Fleet aktuatörüSite kurulumu, askı, arşivSipariş sistemi
Ortak servis verisiPiyasa, hava, deprem gibi filo geneli veriTüm siteler

İlgili konular

  • Müşteri paneli bölümü — panele giriş, roller ve yetkiler
  • Sipariş ve provizyon bölümü — site kurulumu, askı ve arşiv akışı
  • Operasyon ve altyapı bölümü — veritabanı topolojisi ve site izolasyonu
  • Tema sistemi bölümü — sitenizin görünümünün güvenli çizimi