Bu blog nasıl çalışıyor
Sitenin altyapısı, neden sunucuda Node çalışmıyor ve yazı yazdıktan sonra ne oluyor.
Bu blogu kendi sunucumda kurdum. Aynı zamanda burada öğrendiklerimi yazmak istediğim için, altyapının nasıl durduğunu da yazayım. Hem kendim için not, hem de ilgi duyanlar için açıklama.
Sunucuda Node çalışmıyor
Blog Next.js ile yazıldı ama sunucuda Node kurulu değil. Derleme benim bilgisayarımda oluyor, çıktı saf HTML ve CSS olarak sunucuya gönderiliyor. Caddy bu dosyaları doğrudan servis ediyor.
Bunun pratik faydası şu: çalışma anında hiçbir yorumlayıcı olmadığı için site yavaşlayamaz, bellek tüketemez. Bir sayfa açmak sadece dosya okumak demek.
içerik/yazilar/*.md
|
v
next build (bilgisayarımda)
|
v
out/ -> HTML + CSS + JS
|
v
Caddy -> ziyaretçi
Yazı yazınca ne oluyor
Panelden yazıyı kaydediyorum. Dosya diskte oluşuyor. Sonra site yeniden derleniyor ve Caddy'ye güncel dosyalar bildiriliyor.
Bu, dinamik bir blogun aksine biraz geç oluyor. Ama bedeli şu: sunucuda hiçbir şey çalışmadığı için bakım gerektiren bir parça yok. Güncelleme, çökmüş servis, sıfırlanan veritabanı gibi şeyler yok.
Veritabanı nerede
İçerik dosya sisteminde, Markdown olarak duruyor. Veritabanı yok. Yazıları bir klasöre yazmak, bir tabloya satır eklemek kadar kolay ve yedeklemesi de o kadar basit.
Panel de bu dosyaları okuyup yazan bir uygulama. Yani içeriğin gerçek sahibi dosyalar; panel sadece düzenlemek için var.
Ne öğrendim
- Statik derleme, küçük bir blog için veritabanından daha az iş çıkarıyor.
- Performans sorunlarını en ucuz çözmek, o sorunu hiç yaratmamak.
- Bir sistemi kurduktan sonra "bu nasıl çalışıyor" diye yazmak, onu anlamanın en hızlı yolu.