# 🌐 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:** ```nginx 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 → **Ayarlar** → **Genel Ayarlar** ``` ☐ İki Ayrı Domain Kullan (kapalı bırakın) Domain (Base URL): https://yourdomain.com ``` ### 4. Test ```bash # 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 → **Ayarlar** → **Genel 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`: ```env VITE_API_URL=https://api.yourdomain.com ``` Frontend'i yeniden build edin: ```bash cd /opt/oltalama/frontend npm run build pm2 restart oltalama-frontend ``` ### 6. Test ```bash # 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:** ```env PORT=8080 ``` **2. PM2 Ecosystem Config:** ```javascript { name: 'oltalama-backend', env: { PORT: 8080, }, } ``` **3. Nginx Proxy Manager:** ``` Forward Port: 8080 ``` **4. Restart:** ```bash pm2 restart oltalama-backend ``` #### Frontend Port Değiştirme **1. Frontend package.json:** ```json { "scripts": { "preview": "vite preview --port 5000" } } ``` **2. PM2 Ecosystem Config:** ```javascript { name: 'oltalama-frontend', env: { PORT: 5000, }, } ``` **3. Nginx Proxy Manager:** ``` Forward Port: 5000 ``` **4. Restart:** ```bash 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) ```bash # 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:** ```bash # 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: ```bash 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) ```bash # 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) ```bash # 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.