Files
balikci/docs/DOMAIN_SETUP.md
salvacybersec f86cda2978 Domain support
2025-11-10 20:01:41 +03:00

8.0 KiB
Raw Blame History

🌐 Domain Yapılandırma Rehberi

Oltalama Panel için domain yapılandırma seçenekleri ve kurulum rehberi.

📋 İki Seçenek

Seçenek 1: Tek Domain (Önerilen)

Yapı:

yourdomain.com/          → Frontend
yourdomain.com/api/      → Backend API
yourdomain.com/t/        → Tracking Links

Avantajları:

  • CORS sorunu yok
  • Tek SSL sertifikası
  • Kolay kurulum
  • Basit yönetim

Dezavantajları:

  • ⚠️ Reverse proxy gerekli (Nginx Proxy Manager)

Seçenek 2: İki Ayrı Domain

Yapı:

panel.yourdomain.com     → Frontend
api.yourdomain.com       → Backend API & Tracking

Avantajları:

  • Servisler birbirinden izole
  • Bağımsız ölçeklendirme
  • Farklı sunucularda çalışabilir

Dezavantajları:

  • ⚠️ CORS yapılandırması gerekli
  • ⚠️ İki SSL sertifikası
  • ⚠️ Daha karmaşık kurulum

🚀 Seçenek 1: Tek Domain Kurulumu

1. DNS Ayarları

yourdomain.com    A    123.456.789.10
www.yourdomain.com    CNAME    yourdomain.com

2. Nginx Proxy Manager Kurulumu

Proxy Host Ekle:

Domain:           yourdomain.com, www.yourdomain.com
Scheme:           http
Forward Hostname: localhost
Forward Port:     4173
SSL:              ✓ Force SSL, HTTP/2, HSTS

Advanced Config:

location /api {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

location /t/ {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

3. Oltalama Panel Ayarları

Panele giriş yapın → AyarlarGenel Ayarlar

☐ İki Ayrı Domain Kullan (kapalı bırakın)
Domain (Base URL): https://yourdomain.com

4. Test

# Frontend
curl https://yourdomain.com

# Backend API
curl https://yourdomain.com/api/health

# Tracking
curl -I https://yourdomain.com/t/test-token

🔀 Seçenek 2: İki Domain Kurulumu

1. DNS Ayarları

api.yourdomain.com      A    123.456.789.10
panel.yourdomain.com    A    123.456.789.10

2. Nginx Proxy Manager - Backend

Proxy Host Ekle (Backend):

Domain:           api.yourdomain.com
Scheme:           http
Forward Hostname: localhost
Forward Port:     3000
SSL:              ✓ Force SSL, HTTP/2, HSTS

3. Nginx Proxy Manager - Frontend

Proxy Host Ekle (Frontend):

Domain:           panel.yourdomain.com
Scheme:           http
Forward Hostname: localhost
Forward Port:     4173
SSL:              ✓ Force SSL, HTTP/2, HSTS

4. Oltalama Panel Ayarları

Panele giriş yapın → AyarlarGenel Ayarlar

☑ İki Ayrı Domain Kullan (aktif et)
Backend Domain:  https://api.yourdomain.com
Frontend Domain: https://panel.yourdomain.com

Kaydet butonuna tıklayın. CORS otomatik olarak yapılandırılacaktır.

5. Frontend Ortam Değişkenleri

/opt/oltalama/frontend/.env:

VITE_API_URL=https://api.yourdomain.com

Frontend'i yeniden build edin:

cd /opt/oltalama/frontend
npm run build
pm2 restart oltalama-frontend

6. Test

# Frontend
curl https://panel.yourdomain.com

# Backend API
curl https://api.yourdomain.com/api/health

# Tracking
curl -I https://api.yourdomain.com/t/test-token

# CORS test
curl -I -X OPTIONS https://api.yourdomain.com/api/health \
  -H "Origin: https://panel.yourdomain.com" \
  -H "Access-Control-Request-Method: GET"

🔧 Port Ayarları

Varsayılan Portlar

  • Backend: 3000
  • Frontend: 4173
  • Nginx Proxy Manager: 80 (HTTP), 443 (HTTPS)

Farklı Portlar Kullanma

Eğer backend veya frontend'i farklı portlarda çalıştırmak isterseniz:

Backend Port Değiştirme

1. Backend .env:

PORT=8080

2. PM2 Ecosystem Config:

{
  name: 'oltalama-backend',
  env: {
    PORT: 8080,
  },
}

3. Nginx Proxy Manager:

Forward Port: 8080

4. Restart:

pm2 restart oltalama-backend

Frontend Port Değiştirme

1. Frontend package.json:

{
  "scripts": {
    "preview": "vite preview --port 5000"
  }
}

2. PM2 Ecosystem Config:

{
  name: 'oltalama-frontend',
  env: {
    PORT: 5000,
  },
}

3. Nginx Proxy Manager:

Forward Port: 5000

4. Restart:

pm2 restart oltalama-frontend

🔒 SSL/TLS Sertifikaları

Let's Encrypt (Otomatik)

Nginx Proxy Manager üzerinden otomatik:

  1. Proxy Host ayarlarına girin
  2. SSL sekmesine gidin
  3. Request a new SSL Certificate seçin
  4. Force SSL, HTTP/2, HSTS aktif edin
  5. Email girin ve I Agree işaretleyin
  6. Save

Sertifika otomatik olarak yenilenecektir.

Manuel SSL (Opsiyonel)

# Certbot kurulumu
sudo apt install certbot

# Sertifika oluşturma
sudo certbot certonly --standalone -d yourdomain.com

# Sertifikalar
/etc/letsencrypt/live/yourdomain.com/fullchain.pem
/etc/letsencrypt/live/yourdomain.com/privkey.pem

🐛 Sorun Giderme

Problem: "Failed to load resource: net::ERR_BLOCKED_BY_CLIENT"

Sebep: AdBlock/uBlock Origin tracking URL'lerini engelliyor

Çözüm:

  • Test için AdBlock'u devre dışı bırakın
  • Veya tracking URL pattern'ini değiştirin

Problem: CORS hatası

Semptomlar:

Access to XMLHttpRequest at 'https://api.yourdomain.com/api/...' 
from origin 'https://panel.yourdomain.com' has been blocked by CORS policy

Çözüm:

  1. Panelden CORS ayarlarını kontrol edin
  2. İki Ayrı Domain Kullan aktif mi?
  3. Frontend ve Backend URL'leri doğru mu?
  4. Backend'i restart edin: pm2 restart oltalama-backend

Problem: 502 Bad Gateway

Çözüm:

# Backend çalışıyor mu?
pm2 status

# Port dinleniyor mu?
sudo netstat -tulpn | grep 3000

# Firewall açık mı?
sudo ufw status

Problem: Tracking linkleri çalışmıyor

Çözüm:

  1. Panelde Base URL doğru ayarlanmış mı?
  2. /t/ route Nginx'de tanımlı mı?
  3. Backend loglarını kontrol edin:
pm2 logs oltalama-backend --lines 50

📊 Karşılaştırma Tablosu

Özellik Tek Domain İki Domain
Kurulum Süresi 15 dakika 30 dakika
CORS Gerekli değil Gerekli
SSL Sertifikası 1 tane 2 tane
Reverse Proxy Gerekli Opsiyonel
DNS Kaydı 1 domain 2 subdomain
Güvenlik Yüksek Yüksek
Ölçeklenebilirlik Orta Yüksek
Bakım Kolay Orta
Maliyet Düşük Düşük
Önerilen Evet Özel durumlar

🎯 Hangi Seçeneği Seçmeliyim?

Tek Domain Seçin Eğer:

  • Basit kurulum istiyorsanız
  • CORS ile uğraşmak istemiyorsanız
  • Tek sunucuda çalışacaksanız
  • Yeni başlıyorsanız

İki Domain Seçin Eğer:

  • Frontend ve backend'i farklı sunucularda çalıştıracaksanız
  • Servislerinizi izole etmek istiyorsanız
  • Farklı takımlar frontend/backend'i yönetecekse
  • Bağımsız ölçeklendirme gerekiyorsa

📝 Özet: Hızlı Kurulum

Tek Domain (5 Adım)

# 1. Sunucu başlatın
pm2 start ecosystem.config.js

# 2. Nginx Proxy Manager'a domain ekleyin
# 3. SSL sertifikası alın (Let's Encrypt)
# 4. Panelde domain ayarlayın
# 5. Test edin

İki Domain (8 Adım)

# 1. Sunucu başlatın
pm2 start ecosystem.config.js

# 2. Nginx Proxy Manager'a backend domain ekleyin
# 3. Nginx Proxy Manager'a frontend domain ekleyin
# 4. SSL sertifikaları alın (Let's Encrypt)
# 5. Frontend .env dosyasını güncelleyin
# 6. Frontend'i yeniden build edin
# 7. Panelde CORS ve domain ayarlarını yapın
# 8. Test edin

Son Güncelleme: 2025-11-10
Versiyon: 1.0.0

İpucu: İlk kurulumda Tek Domain kullanmanızı öneririz. İhtiyaç duyduğunuzda daha sonra İki Domain'e geçebilirsiniz.