Custom Domains & Subdomains - Nasıl Yapılır?

Custom Domains & Subdomains - Nasıl Yapılır?

RepoDocs için iki tür custom domain desteği:

  1. Subdomain: proje.repodocs.dev
  2. Custom Domain: docs.example.com

1. Subdomain Desteği (proje.repodocs.dev)

A. DNS Ayarları (Cloudflare/DNS Provider)

Bu wildcard DNS kaydı *.repodocs.dev → sunucu IP'sine yönlendirir.

B. Easypanel SSL Ayarları

Easypanel'de wildcard SSL için Let's Encrypt DNS challenge gerekiyor:

  1. Easypanel → Settings → SSL
  2. Wildcard certificate için Cloudflare API token gerekli
  3. Ya da Caddy/Traefik ile manuel wildcard SSL

Alternatif (Daha Kolay): Cloudflare Proxy kullanarak SSL Cloudflare'dan gelir.

C. Kod Değişiklikleri

middleware.ts (Yeni dosya)


2. Custom Domain Desteği (docs.example.com)

A. Database Şeması (Zaten var)

B. Kullanıcı Tarafı (DNS Ayarı)

Kullanıcı kendi DNS'inde:

C. Easypanel'de Domain Ekleme

Her custom domain için Easypanel'de domain eklenmeli. İki yöntem var:

Otomatik (Easypanel API ile)

Environment variables ayarlandığında domain otomatik eklenir:

API token almak için: Easypanel → Settings → API Tokens

Manuel

  1. Easypanel → App → Domains
  2. "Add Domain" → docs.example.com
  3. SSL otomatik alınır (Let's Encrypt)

D. Middleware Güncellemesi

E. Domain Doğrulama API


3. Uygulama Adımları (Sıralı)

Aşama 1: Subdomain (Kolay)

  1. Cloudflare'da *.repodocs.dev A kaydı ekle
  2. Cloudflare Proxy aç (SSL için)
  3. middleware.ts oluştur
  4. Test: test.repodocs.devrepodocs.dev/docs/test/main

Aşama 2: Custom Domain (Orta)

  1. Settings sayfasına "Custom Domain" input ekle
  2. Domain kaydetme API'si
  3. DNS doğrulama endpoint'i
  4. Middleware'e custom domain routing ekle
  5. Easypanel API entegrasyonu (opsiyonel)

4. Easypanel Wildcard SSL (Detaylı)

Easypanel Caddy kullanıyor. Wildcard SSL için:

Seçenek A: Cloudflare Proxy (Önerilen)

  1. Cloudflare'da domain ekle
  2. SSL/TLS → Full (Strict)
  3. Wildcard DNS kaydı ekle
  4. Proxy: ON

SSL Cloudflare'dan gelir, Easypanel'de sadece HTTP yeterli.

Seçenek B: Let's Encrypt DNS Challenge

Easypanel → Settings → SSL Provider ayarlarında Cloudflare API token gerekli.


5. Örnek Akış

Subdomain

Custom Domain


6. Öncelik Sırası

  1. Hemen yapılabilir: Subdomain desteği (sadece DNS + middleware)
  2. Sonra: Custom domain (UI + API + doğrulama gerekli)

Subdomain ile başlayalım mı?