Files
dj52/READY_FOR_COOLIFY.md
Beyhan Oğur ec28a2024d first commit
2026-04-26 22:22:29 +03:00

4.7 KiB
Raw Permalink Blame History

HAZIR - Coolify Deployment (Port Mapping Kaldırıldı)

🎉 Sorun Çözüldü!

Port 80'i dışarı açma sorunu çözüldü. Coolify kendi reverse proxy'sini kullandığı için ports: mapping'ine ihtiyaç yok.

📋 Final Yapılandırma

Doğru Ayarlar (Şu Anki Durum)

nginx:
  expose:
    - 80                          # ✅ Internal (Coolify için yeterli)
  labels:
    - "coolify.managed=true"      # ✅ Coolify yönetimi
    - "coolify.http.port=80"      # ✅ Coolify port keşfi
  networks:
    coolify:                      # ✅ Coolify network
      aliases:
        - nginx                   # ✅ DNS alias'ları
        - nginx_proxy

Önceki Hatalı Ayar (Kaldırıldı)

nginx:
  ports:
    - "80:80"    # ❌ KALDIRILDI - Coolify proxy ile conflict

🚀 Deploy - Hemen Şimdi!

# 1. Git push
git add docker-compose.c.yml COOLIFY_NO_PORT_MAPPING.md
git commit -m "Fix: Remove port 80 mapping for Coolify compatibility"
git push

# 2. Coolify'da Redeploy butonuna tıklayın
# 3. Domain'inizden test edin (örn: https://yourdomain.com)

🎯 Neden Bu Çalışacak?

Coolify Proxy Flow:

[Internet]
    ↓
[Coolify Reverse Proxy - Caddy/Traefik]
    ↓ (Port 80/443 dışardan dinlenir)
[your-domain.com]
    ↓
[Internal Network - coolify]
    ↓
[nginx:80] ← exposed, not published
    ↓
[django_web_prod:8000] ← upstream backend
    ↓
[Django App]

Önemli:

  • Coolify proxy dışarıdan 80/443 dinler
  • Sizin nginx sadece internal network'te 80'de dinler
  • Port conflict olmaz!

🔍 Deploy Sonrası Kontrol

# Container durumu
docker ps | grep nginx

# Beklenen çıktı:
# ... 80/tcp ... django_nginx
# (NOT: 0.0.0.0:80->80/tcp OLMAMALI!)

# Internal DNS test
NGINX_ID=$(docker ps | grep nginx | awk '{print $1}')
docker exec $NGINX_ID nslookup django_web_prod

# Internal HTTP test
docker exec $NGINX_ID wget -qO- http://django_web_prod:8000 | head

# Nginx config
docker exec $NGINX_ID nginx -t

# Loglar
docker logs $NGINX_ID --tail 30

Başarı Kriterleri

  1. docker ps - Nginx çalışıyor, sadece 80/tcp görünüyor (port mapping YOK)
  2. Internal DNS - django_web_prod çözülüyor
  3. Internal HTTP - Django yanıt veriyor
  4. Browser - https://yourdomain.comılıyor
  5. SSL - Coolify Let's Encrypt sertifikası aktif
  6. Static - CSS/JS yükleniyor
  7. Media - Görseller görünüyor

📊 Değişiklik Özeti

Önceki Şimdi Durum
ports: - "80:80" expose: - 80 Düzeltildi
Label yok coolify.managed=true Eklendi
Label yok coolify.http.port=80 Eklendi
Upstream yok upstream django_backend Zaten var
Config mount Config image içinde Zaten var

🐛 Olası Sorunlar ve Çözümler

"502 Bad Gateway" (Coolify domain'den)

Senaryo 1: Coolify nginx'i bulamıyor

# Labels kontrolü
docker inspect $NGINX_ID | grep "coolify"

# Yoksa redeploy edin

Senaryo 2: Nginx Django'ya bağlanamıyor

# DNS test
docker exec $NGINX_ID nslookup django_web_prod

# HTTP test
docker exec $NGINX_ID wget http://django_web_prod:8000

# Loglar
docker logs $NGINX_ID

Senaryo 3: Django çalışmıyor

# Web container
WEB_ID=$(docker ps | grep "web" | grep -v nginx | awk '{print $1}')
docker logs $WEB_ID --tail 50

# Port kontrolü
docker exec $WEB_ID netstat -tuln | grep 8000

"404 Not Found" (Static dosyalar)

# Static volume kontrolü
docker exec $NGINX_ID ls -la /app/staticfiles/

# Collectstatic çalıştır
docker exec $WEB_ID python manage.py collectstatic --noinput

# Nginx config
docker exec $NGINX_ID cat /etc/nginx/conf.d/default.conf | grep "location /static"

📚 Dökümanlar

  1. COOLIFY_NO_PORT_MAPPING.md - Detaylı Coolify rehberi (bu dosya)
  2. NGINX_FIX_SUMMARY.md - Nginx-Django bağlantı çözümü
  3. COOLIFY_NGINX_DEBUG.md - Troubleshooting rehberi
  4. NGINX_SOLUTION.md - Config image içine gömme çözümü

🎯 Son Durum

✅ docker-compose.c.yml - Port mapping kaldırıldı, Coolify labels eklendi
✅ nginx/default.conf - Upstream stratejisi hazır
✅ nginx/Dockerfile - Config image içinde
✅ Tüm dökümanlar güncellendi

Durum: HAZIR - Coolify'da deploy edilebilir! 🚀

🚨 ÖNEMLI HATIRLATMA

Coolify kullanıyorsanız:

  • ASLA ports: kullanmayın nginx için
  • SADECE expose: kullanın
  • MUTLAKA Coolify labels ekleyin

Yerel Docker Compose kullanıyorsanız:

  • ports: kullanabilirsiniz
  • Farklı bir compose dosyası kullanın (örn: docker-compose.yml)

Tarih: 29 Ocak 2026
Durum: Production Ready - Deploy Edin!