397 lines
8.0 KiB
Markdown
397 lines
8.0 KiB
Markdown
|
|
# 🌐 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.
|
|||
|
|
|