## [0.5.5] - 2026-09-16

### Eklenenler

- **Monorepo projeleri** — tek depodan birden çok bileşen yayınlamak için yeni
  **Projeler** bölümü. Uygulama siteleri her siteyi kendi deposuyla klonluyordu;
  bir pnpm/npm workspace deposunda bu çalışmaz, çünkü `workspace:*`
  bağımlılıkları yalnız depo kökündeki tek bir kurulumla çözülür
  - Depo bir kez klonlanır, kurulum komutu **kökte bir kez** koşar, sonra her
    bileşen kendi alt dizininde derlenir
  - **Servis** bileşeni sürüm-pinli kendi container'ında çalışır; depo kökü
    bağlanır, çalışma dizini alt dizindir. Host'a port yayınlanmaz
  - **Statik** bileşenin derleme çıktısı sitenin yayın dizinine kopyalanır
  - Bileşenler **rota**larla yayınlanır: alan adı + yol öneki. Hem
    `site.com/api` hem `api.site.com` aynı modelle anlatılır; servis
    rotalarında yol öneki kırpılabilir. Rota eklenince gerekiyorsa proje sitesi
    panel tarafından açılır, son rota kalkınca kaldırılır
  - Tek **Dağıt** hepsini günceller: git → kurulum → derlemeler → statik yayın →
    servis restart → nginx. Kurulum ya da derleme düşerse kaynak dağıtım öncesi
    commit'e geri alınır ve servisler eski kodla yeniden başlar
  - **Depoyu tara** `pnpm-workspace.yaml` / `package.json` workspaces tanımından
    bileşen adayları çıkarır. Kökte `build` betiği varsa derlemeyi ona bırakır ki
    paylaşılan paketler bağımlılık sırasına göre derlensin
- **Node 24 çalışma zamanı** (`node:24.21.0-alpine3.23`) uygulama sitelerinde ve
  projelerde seçilebiliyor.
- **Cloudflare DNS-01 ile sertifika** — sertifika formunda artık doğrulama
  yöntemi seçiliyor. HTTP-01, Let's Encrypt'in 80 portundan sunucuya
  ulaşmasını gerektiriyor; Cloudflare'in turuncu bulutu arkasında "Always Use
  HTTPS", bir WAF kuralı ya da kapalı 80 portu doğrulamayı kırıyordu
  - Cloudflare API token'ları sertifika formunun içinden eklenip seçilir.
    Token kaydedilmeden önce Cloudflare'e karşı denenir, hiçbir uçtan geri
    dönmez (yalnız son dört karakteri görünür) ve sır maskeleme listesine
    girer. Kullanımdaki bir kimlik silinemez
  - Doğrulama, bölgenin **yetkili ad sunucularına doğrudan** sorularak beklenir;
    genel çözümleyicinin olumsuz önbelleği yayılımı olduğundan uzun
    göstermesin. Prova kayıtları hata durumunda da silinir
  - **Yenileme** aynı yöntem ve kimlikle yapılır; kimlik silinmişse sebep
    sertifika kartına yazılır
  - **Ön kontrol** DNS-01'de token'ın bölgeyi görüp geçici bir TXT kaydı yazıp
    silebildiğini dener — en sık hata yalnız okuma yetkisi verilmiş olması

### Düzeltilenler

- **Dal değiştirilince dağıtım kırılıyordu.** İlk klon tek dallı yapıldığı için
  `origin/<yeni-dal>` oluşmuyor, dağıtım "unknown revision" ile düşüyordu ve
  site dizini elle silinmeden düzelmiyordu. Artık uzak izleme dalı açık refspec
  ile yazılıyor.
- **Depo adresi değiştirilince yok sayılıyordu.** Klon varken `fetch` yalnız
  `origin`i kullandığı için panele yazılan yeni adres uygulanmıyor, dağıtım eski
  depodan çekmeye devam ediyordu.

### Bilinen sınırlar

- DNS-01 yalnız Cloudflare ile çalışır ve wildcard (`*.ornek.com`) sertifikalar
  henüz açılmadı.
- Push'ta otomatik dağıtım (webhook) yok; dağıtım panelden elle tetiklenir.
- Alt bir yola yayınlanan tek sayfa uygulamalarının derleme temel yolunu kendi
  ayarlarında vermesi gerekir (Vite'ta `base`); panel derleme çıktısını
  değiştirmez.

