first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:22:29 +03:00
commit ec28a2024d
208 changed files with 23836 additions and 0 deletions

114
COOLIFY_DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,114 @@
# Coolify Deployment Guide - Django Project
## Deployment Yapılandırması
### Gerekli Environment Variables (Coolify'da ayarlanmalı):
```
SECRET_KEY=your-secret-key-here
USE_POSTGRES=1
POSTGRES_DB=your_db_name
POSTGRES_USER=your_db_user
POSTGRES_PASSWORD=your_db_password
POSTGRES_HOST=10.80.80.50
POSTGRES_PORT=5432
DJANGO_ALLOWED_HOSTS=your-domain.com,www.your-domain.com
CELERY_BROKER_URL=redis://redis:6379/0
CELERY_RESULT_BACKEND=redis://redis:6379/0
```
### Docker Compose Dosyası
- **Kullanılacak Dosya**: `docker-compose.c.yml`
- **Network**: `coolify` (external)
- **Port**: 8400 (nginx)
### Önemli Notlar
#### 1. Nginx Configuration
- `./nginx/Dockerfile` ile custom nginx image build edilir
- `./nginx/default.conf` dosyası **build sırasında image içine COPY edilir** (mount edilmez)
- Bu sayede Coolify'da volume mount sorunları yaşanmaz
- Proxy hedefi: `django_web_prod:8000` (network alias kullanılır)
#### 2. Network Aliases
- **web servisi**: `django_web_prod` alias'ı ile erişilebilir
- **nginx servisi**: `nginx_proxy` alias'ı ile erişilebilir
- Bu alias'lar sayesinde Coolify'ın container isimlerine zaman damgası eklemesi sorun yaratmaz
#### 3. Volume Mounts
- `static_volume`: Django static dosyaları
- `media_volume`: Kullanıcı yüklemeleri
- Her iki volume da web, celery ve nginx servisleri arasında paylaşılır
#### 4. Healthcheck
- Nginx için healthcheck yapılandırılmış
- 30 saniye aralıklarla kontrol yapılır
- İlk başlangıçta 40 saniye beklenir
### Deployment Adımları (Coolify UI)
1. **Yeni Proje Oluştur**
- Git repository URL'ini ekle
- Branch seç (main/master)
2. **Docker Compose Ayarları**
- Compose file: `docker-compose.c.yml` seç
- Network: `coolify` (otomatik oluşturulur)
3. **Environment Variables Ekle**
- Yukarıdaki tüm değişkenleri Coolify UI'dan ekle
- SECRET_KEY için güvenli bir anahtar oluştur
4. **Build & Deploy**
- "Deploy" butonuna tıkla
- Build loglarını takip et
### Sorun Giderme
#### Problem: nginx container'da /etc/nginx/conf.d boş
**Çözüm**:
- Artık bu sorun yaşanmaz çünkü `default.conf` build sırasında image içine kopyalanır
- Eğer yine de boşsa, nginx image'ının doğru build edildiğini kontrol edin:
```bash
docker exec <nginx-container-name> ls -la /etc/nginx/conf.d/
docker exec <nginx-container-name> cat /etc/nginx/conf.d/default.conf
```
- Build loglarında `COPY nginx/default.conf` adımının başarılı olduğunu doğrulayın
#### Problem: django_web_prod çözümlenemiyor
**Çözüm**:
- `docker-compose.c.yml` içinde `web` servisinin network alias'ının `django_web_prod` olduğunu kontrol edin
- Tüm servisler aynı `coolify` network'üne bağlı olmalı
#### Problem: Static/Media dosyaları yüklenmiyor
**Çözüm**:
- Volume mount'ların doğru olduğunu kontrol edin
- Django collectstatic komutunu çalıştırın:
```bash
docker exec <web-container-name> python manage.py collectstatic --noinput
```
### Test Komutları
```bash
# Nginx config testi
docker exec <nginx-container-name> nginx -t
# Nginx içinden Django'ya erişim testi
docker exec <nginx-container-name> wget -qO- http://django_web_prod:8000
# Container logları
docker logs <container-name> -f
# Network yapısını kontrol
docker network inspect coolify
```
### Port Mapping
- **8400**: Nginx (HTTP)
- Coolify proxy üzerinden domain'e yönlendirilecek
### Güvenlik Notları
- DEBUG=0 production'da
- SECRET_KEY her ortam için farklı olmalı
- ALLOWED_HOSTS domain'lerinizi içermeli
- PostgreSQL credentials güvenli tutulmalı