Docs: Clarify single container uses only port 3000, no need for 4173

This commit is contained in:
salvacybersec
2025-11-11 05:48:46 +03:00
parent 2d94bdc4d1
commit 3afd2f2ba2

116
DOCKER.md
View File

@@ -77,21 +77,7 @@ Docker entrypoint scripti sayesinde SESSION_SECRET'ı belirtmeseniz bile **otoma
# Sadece zorunlu ayarları girin, SESSION_SECRET otomatik!
cat > .env << 'EOF'
# SESSION_SECRET boş bırakılırsa otomatik oluşturulur!
# Gmail ayarları (ZORUNLU)
GMAIL_USER=your-email@gmail.com
GMAIL_APP_PASSWORD=your-gmail-app-password
# Telegram ayarları (ZORUNLU)
TELEGRAM_BOT_TOKEN=your-bot-token
TELEGRAM_CHAT_ID=your-chat-id
# Opsiyonel: Ollama AI
OLLAMA_SERVER_URL=http://host.docker.internal:11434
OLLAMA_MODEL=llama3.2:latest
# Frontend API URL
VITE_API_URL=http://localhost:3000
c
EOF
```
@@ -175,6 +161,11 @@ exit
### 5. Uygulamaya Erişin
#### Single Container (Önerilen):
- **Frontend + API**: http://localhost:3000
- **Health Check**: http://localhost:3000/health
#### Multi-Container:
- **Frontend**: http://localhost:4173
- **Backend API**: http://localhost:3000
- **Health Check**: http://localhost:3000/health
@@ -211,9 +202,63 @@ docker compose -f docker-compose.dev.yml up -d
## 🏭 Production Modu
Production modu için optimize edilmiş, multi-stage build ile küçük image boyutu.
### 🎯 Single Container Setup (Önerilen)
### Başlatma
**Tek container, tek port (3000)** - En basit ve önerilen yöntem!
Single container setup'ta:
-**Tek Port**: Sadece 3000 portu kullanılır
-**Backend + Frontend**: Backend hem API'yi hem frontend'i serve eder
-**CORS Yok**: Aynı origin'den geldiği için CORS sorunu yok
-**Daha Az Kaynak**: Tek container, daha az memory/CPU
-**Basit Yönetim**: Tek container yönetimi
#### Başlatma
```bash
# Single container ile başlat
docker compose -f docker-compose.single.yml up -d --build
# Durum kontrolü
docker compose -f docker-compose.single.yml ps
# Logları görüntüle
docker compose -f docker-compose.single.yml logs -f oltalama
```
#### Port Yapısı
```
Tek Port: 3000
├── /api/* → Backend API
├── /t/* → Tracking routes
├── /health → Health check
└── /* → Frontend SPA (React Router)
```
#### Nginx Proxy Manager Konfigürasyonu
Single container için:
- **Forward Hostname/IP**: `localhost`
- **Forward Port**: `3000`
- **SSL**: ✓ (Let's Encrypt)
- **Websockets**: ✓ (opsiyonel)
Tüm trafik (API + Frontend) → `localhost:3000`
#### Erişim
- **Frontend + API**: http://localhost:3000
- **Health Check**: http://localhost:3000/health
- **API Endpoint**: http://localhost:3000/api
---
### 🔄 Multi-Container Setup (Alternatif)
İki ayrı container (backend + frontend) - Daha esnek ama daha karmaşık.
#### Başlatma
```bash
# Production compose ile başlat
@@ -227,6 +272,11 @@ docker compose logs -f backend
docker compose logs -f frontend
```
#### Port Yapısı
- **Backend**: 3000 portu
- **Frontend**: 4173 portu (ayrı container)
### Container Yönetimi
```bash
@@ -357,23 +407,37 @@ server {
listen 80;
server_name yourdomain.com;
# Single Container Setup için (Önerilen)
location / {
proxy_pass http://frontend:4173;
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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;
proxy_cache_bypass $http_upgrade;
}
location /api/ {
proxy_pass http://backend:3000/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
# Multi-Container Setup için (Alternatif)
# location / {
# proxy_pass http://frontend:4173;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
# }
#
# location /api/ {
# proxy_pass http://backend:3000/api/;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
# }
}
```