mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-23 16:25:09 +00:00
docs: Add Dokploy port configuration guide
Explains: - How Dokploy manages ports vs docker-compose ports - Why to use 'expose' instead of 'ports' in Dokploy - Port conflict resolution - SSL/HTTPS port flow (443 → 8080 internal) - Recommended configurations for Dokploy vs manual deployment This helps users understand why we use expose instead of ports mapping in docker-compose.yml when deploying to Dokploy.
This commit is contained in:
parent
0ac9cd8a94
commit
e2730e894e
1 changed files with 185 additions and 0 deletions
185
dokploy/DOKPLOY_PORT_CONFIG.md
Normal file
185
dokploy/DOKPLOY_PORT_CONFIG.md
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
# Dokploy Port Konfigürasyonu
|
||||
|
||||
## 🔧 Port Yönetimi
|
||||
|
||||
Dokploy'da port mapping **Dokploy UI'dan** yapılır, docker-compose.yml'de değil!
|
||||
|
||||
### ✅ Doğru Yaklaşım (Dokploy)
|
||||
|
||||
**docker-compose.yml**:
|
||||
```yaml
|
||||
frontend:
|
||||
expose:
|
||||
- "8080" # Internal port (Dokploy yönetir)
|
||||
# ports: kullanmayın!
|
||||
```
|
||||
|
||||
**Dokploy UI**:
|
||||
```
|
||||
Service → Settings → Ports
|
||||
Container Port: 8080
|
||||
External Port: [Dokploy otomatik atar]
|
||||
```
|
||||
|
||||
### ❌ Yanlış Yaklaşım
|
||||
|
||||
```yaml
|
||||
# KULLANMAYIN (Dokploy'da port çakışması yaratır):
|
||||
ports:
|
||||
- "80:8080"
|
||||
- "8080:8080"
|
||||
```
|
||||
|
||||
## 🌐 Erişim Yöntemleri
|
||||
|
||||
### Dokploy ile (Önerilen)
|
||||
|
||||
1. **Domain ekleyin**: `erp.yourdomain.com`
|
||||
2. **Port**: Dokploy otomatik atar
|
||||
3. **HTTPS**: Enable HTTPS ✅
|
||||
4. **Erişim**: `https://erp.yourdomain.com`
|
||||
|
||||
### Manuel Docker Compose
|
||||
|
||||
Eğer Dokploy kullanmıyorsanız:
|
||||
|
||||
```yaml
|
||||
# docker-compose.override.yml oluşturun
|
||||
services:
|
||||
frontend:
|
||||
ports:
|
||||
- "8080:8080"
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
|
||||
```
|
||||
|
||||
## 🔒 SSL ile Port Yapısı
|
||||
|
||||
### Dokploy Proxy Akışı
|
||||
|
||||
```
|
||||
User Browser
|
||||
↓
|
||||
HTTPS (443) ← Dokploy Proxy (SSL termination)
|
||||
↓
|
||||
HTTP (8080) ← Frontend Container (internal)
|
||||
↓
|
||||
HTTP (8000) ← Backend Container
|
||||
```
|
||||
|
||||
**Not**: Container'lar arası tüm trafik HTTP'dir (internal network, güvenli).
|
||||
|
||||
## 🐛 Port Çakışması Hatası
|
||||
|
||||
### Hata
|
||||
|
||||
```
|
||||
Bind for 0.0.0.0:80 failed: port is already allocated
|
||||
```
|
||||
|
||||
### Sebep
|
||||
|
||||
- docker-compose.yml'de `ports: "80:8080"` tanımlı
|
||||
- Başka bir servis zaten 80 portunu kullanıyor
|
||||
- Dokploy'da port management conflict
|
||||
|
||||
### Çözüm
|
||||
|
||||
**docker-compose.yml'de**:
|
||||
```yaml
|
||||
# Önceden (HATALI):
|
||||
ports:
|
||||
- "${HTTP_PORT:-8080}:8080"
|
||||
|
||||
# Şimdi (DOĞRU):
|
||||
expose:
|
||||
- "8080"
|
||||
```
|
||||
|
||||
**Dokploy UI'da**:
|
||||
- Domain ekleyin
|
||||
- Enable HTTPS
|
||||
- Dokploy otomatik port yönetir
|
||||
|
||||
## 📋 Dokploy Deployment Adımları
|
||||
|
||||
### 1. Repository Ekle
|
||||
|
||||
```
|
||||
Repository: https://github.com/ubden/frappe_docker
|
||||
Branch: main
|
||||
Compose: dokploy/docker-compose.yml
|
||||
```
|
||||
|
||||
### 2. Environment Variables
|
||||
|
||||
```env
|
||||
SITE_NAME=erp.yourdomain.com
|
||||
ADMIN_PASSWORD=YourPass123!
|
||||
DB_PASSWORD=DBPass456!
|
||||
# HTTP_PORT tanımlamayın (Dokploy yönetir)
|
||||
```
|
||||
|
||||
### 3. Domain + SSL
|
||||
|
||||
```
|
||||
Domain: erp.yourdomain.com
|
||||
Enable HTTPS: ✅
|
||||
Force HTTPS: ✅
|
||||
```
|
||||
|
||||
Port otomatik atanır!
|
||||
|
||||
### 4. Deploy
|
||||
|
||||
Deploy → Bekle → Hazır!
|
||||
|
||||
**Erişim**: `https://erp.yourdomain.com`
|
||||
|
||||
## ✅ Önerilen Konfigürasyon
|
||||
|
||||
### Dokploy için (Production)
|
||||
|
||||
- ✅ `expose: ["8080"]` kullan
|
||||
- ✅ `ports:` kullanma
|
||||
- ✅ Domain ekle
|
||||
- ✅ HTTPS aktif et
|
||||
- ✅ Dokploy port'u yönetsin
|
||||
|
||||
### Manuel için (Development)
|
||||
|
||||
- ✅ `ports: ["8080:8080"]` kullan
|
||||
- ✅ Local'de test et
|
||||
- ✅ HTTP ile erişim
|
||||
|
||||
## 🔍 Port Kontrolü
|
||||
|
||||
### Container içinden
|
||||
|
||||
```bash
|
||||
# Frontend container'a girin
|
||||
docker exec -it <frontend> bash
|
||||
|
||||
# Nginx'in dinlediği portu kontrol edin
|
||||
netstat -tuln | grep 8080
|
||||
# 0.0.0.0:8080 olmalı
|
||||
```
|
||||
|
||||
### Dışarıdan
|
||||
|
||||
```bash
|
||||
# Dokploy'da domain varsa
|
||||
curl https://erp.yourdomain.com
|
||||
|
||||
# Yoksa (geliştirme)
|
||||
curl http://localhost:8080
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Dokploy**: `expose` kullan, port yönetimini Dokploy'a bırak
|
||||
**Manuel**: `ports` kullan, manuel yönet
|
||||
**SSL**: Dokploy otomatik (443 → 8080 internal)
|
||||
|
||||
Loading…
Reference in a new issue