Yerelde Subdomain/Tenant Geliştirme (8787)
Wrangler dev'de *.localhost academy (mağaza) testleri, Better Auth cookie davranışı ve host/subdomain çözümleme ipuçları.
Bu sayfa, Academy (Mağaza) / Tenant mimarisini lokalde test ederken en sık görülen problemleri çözer:
ahmethoca.localhost:8787/enaçınca ana pazaryeri yerine mağaza beklerken “ana site” görme (academy çözümlenemiyor)- Subdomain host’unda login olunca başka host’a geçince tekrar login’e düşme (cookie host’a bağlı)
1) Login: doğru host üzerinde oturum açın
Section titled “1) Login: doğru host üzerinde oturum açın”Lokal test için login’i hangi host’ta test edecekseniz o host’ta yapın:
- ✅
http://ahmethoca.localhost:8787/en/login - ❌
http://localhost:8787/en/login(cookielocalhosthost’una yazılır;*.localhostile paylaşılmayabilir)
2) Better Auth: trusted origins + dev cookie stratejisi
Section titled “2) Better Auth: trusted origins + dev cookie stratejisi”Dosya: app/lib/auth.ts
Lokal geliştirmede:
trustedOrigins*.localhostorigin’lerini kabul etmelidircrossSubDomainCookiesher tarayıcıda.localhostiçin güvenilir değildir- Bu repo’da bu yüzden lokalde cross-subdomain cookie’ler kapalı tutulur
- Prod’da (
*.achidemy.net) cross-subdomain cookie’ler açılır
3) Academy (Mağaza) çözümleme mantığı: host → subdomain/custom domain
Section titled “3) Academy (Mağaza) çözümleme mantığı: host → subdomain/custom domain”Dosya: app/lib/tenant.ts
getTenantByRequest(db, request) şu sırayla çalışır:
- Ana domain / localhost ise null döner (ana pazaryeri).
- Host
.achidemy.netile bitiyorsa subdomain yakalar (ahmethoca.achidemy.net→ahmethoca). - Host
.localhostile bitiyorsa lokal test için subdomain yakalar (ahmethoca.localhost→ahmethoca). - Diğer host’larda custom domain eşleşmesi dener (
academies.customDomain).
4) Wrangler ayarı (opsiyonel)
Section titled “4) Wrangler ayarı (opsiyonel)”Dosya: wrangler.toml
Lokal geliştirmede host’u 127.0.0.1 yapmak genelde daha deterministik sonuç verir:
[dev]host = "127.0.0.1"Troubleshooting Checklist
Section titled “Troubleshooting Checklist”/api/auth/get-session200 dönüyor mu?- Browser’da
ahmethoca.localhostaltında Better Auth session cookie’leri yazılıyor mu? ahmethoca.localhost:8787/enaçınca tenant çözülüyor mu?academies.subdomain = "ahmethoca"kaydı var mı?subscription_status = "active"mi?app/lib/tenant.tslog’larında hata var mı?
Academy Yönetim Paneli
Section titled “Academy Yönetim Paneli”Academy’yi yönetmek için eğitmen paneli kullanılır:
| Route | Açıklama |
|---|---|
/:lang/instructor/academy | Dashboard ve kurulum rehberi |
/:lang/instructor/academy/settings | Domain, tema ve mod ayarları |
/:lang/instructor/academy/students | Öğrenci atama ve yönetimi |
/:lang/instructor/academy/builder | Vitrin tasarımı (CMS) |
Detaylı bilgi için Academy Modülü sayfasına bakın.