feat: panele auth sistemi ekle (kullanıcı/şifre + oturum + middleware)

Panel şu ana kadar herkese açıktı — URL'yi bilen herkes kanal
ekleyip/silebilir, cookie güncelleyebilir, kayıt indirebilirdi.

- users tablosu (bcrypt şifre hash'i)
- /login: hiç kullanıcı yoksa "ilk admin hesabı oluştur" formu, varsa
  normal giriş formu
- jose ile imzalanmış, httpOnly çerezde tutulan 30 günlük oturum
- middleware.ts: /login hariç tüm rotaları korur (video stream route'u
  dahil — aynı origin istekleri çerezi otomatik taşır)
- layout: oturum yoksa nav hiç gösterilmiyor, varsa kullanıcı adı +
  çıkış butonu ekleniyor

SESSION_SECRET production'da zorunlu (docker-compose derleme zamanında
kontrol ediyor); Coolify'a rastgele bir değer eklendi.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 11:26:42 +03:00
co-authored by Claude Sonnet 5
parent ef1dc1b7ac
commit fb8485d638
12 changed files with 282 additions and 6 deletions
+12
View File
@@ -72,6 +72,18 @@ docker compose up --build
Panel: http://localhost:3000 · API daemon health: http://localhost:4001/health
## Panel Girişi
Panelin tüm sayfaları giriş gerektirir (middleware ile korunuyor). İlk açılışta
henüz hiç kullanıcı yoksa `/login` otomatik olarak "İlk Yönetici Hesabını
Oluştur" formunu gösterir — kullanıcı adı/şifre girip ilk admin hesabını
oradan oluşturursun. Sonraki kullanıcılar için ayrı bir "kullanıcı ekle"
arayüzü henüz yok (Faz 2).
`SESSION_SECRET` production'da zorunlu (`openssl rand -base64 32` ile
üretilebilir) — local dev'de boş bırakılırsa güvensiz bir varsayılan
kullanılır, sadece test için.
## Test / Doğrulama Akışı
1. `FORCE_LIVE_URL=<gerçek veya kısa test yayını URL'si>` ile `apps/api-daemon`'ı