# Django Projesi - Docker ile Mevcut PostgreSQL Kullanımı

✅ **Projeniz başarıyla dockerize edildi ve çalışıyor!**

Bu yapılandırma, mevcut PostgreSQL sunucunuzu (10.80.80.50:5432) kullanarak Django projenizi Docker'da çalıştırır.

## 🎉 Test Edildi ve Çalışıyor

Server `http://localhost:8000` adresinde çalışıyor!

**Oluşturulan Admin Kullanıcısı:**
- Email: `admin@example.com`
- Şifre: `admin`

## ✅ Yapılan Değişiklikler

1. **PostgreSQL Container'ı kaldırıldı** - Mevcut sunucunuz kullanılacak
2. **[settings.py](core/settings.py)** - Environment değişkenleri ile PostgreSQL yapılandırması
3. **[docker-compose.yml](docker-compose.yml)** - Sadece web servisi (mevcut PostgreSQL'e bağlanır)
4. **[docker-compose.prod.yml](docker-compose.prod.yml)** - Production yapılandırması güncellendi
5. **[entrypoint.sh](entrypoint.sh)** - PostgreSQL bekleme kodu kaldırıldı

## 🚀 Kullanım

### Geliştirme Ortamı

```bash
# Docker container'ı başlat
docker-compose up --build

# Tarayıcıda aç
# http://localhost:8000
```

Container otomatik olarak 10.80.80.50:5432 adresindeki PostgreSQL sunucunuza bağlanacak.

### Production Ortamı

```bash
# .env dosyasını oluştur
cp .env.example .env

# .env dosyasını düzenle (gerekirse PostgreSQL bilgilerini güncelle)

# Production container'ları başlat
docker-compose -f docker-compose.prod.yml up -d
```

## 🔧 PostgreSQL Bağlantı Ayarları

Docker container'ınız şu ayarlarla PostgreSQL'e bağlanır:

```
Host: 10.80.80.50
Port: 5432
Database: server_dj
User: server_dj
Password: 1234
```

Bu ayarları değiştirmek için:

**Geliştirme:** [docker-compose.yml](docker-compose.yml) içindeki environment değişkenlerini düzenleyin

**Production:** `.env` dosyasını düzenleyin

### SQLite Kullanmak İsterseniz

```bash
# docker-compose.yml içinde USE_POSTGRES değişkenini değiştirin:
- USE_POSTGRES=False
```

## 📋 Yararlı Komutlar

```bash
# Migration uygula
docker-compose exec web python manage.py migrate

# Superuser oluştur
docker-compose exec web python manage.py createsuperuser

# Shell aç
docker-compose exec web python manage.py shell

# Logları görüntüle
docker-compose logs -f web

# Container'ı durdur
docker-compose down
```

## 🔍 Sorun Giderme

### PostgreSQL'e bağlanamıyorum

1. PostgreSQL sunucusunun çalıştığından emin olun
2. Docker container'ından 10.80.80.50:5432 adresine erişilebildiğini kontrol edin:

```bash
docker-compose exec web bash
apt-get update && apt-get install -y postgresql-client
psql -h 10.80.80.50 -U server_dj -d server_dj
```

### Mac'te Docker Network Sorunu

Mac'te Docker Desktop kullanıyorsanız ve localhost PostgreSQL'e bağlanamıyorsanız:

[docker-compose.yml](docker-compose.yml) içinde:
```yaml
environment:
  - POSTGRES_HOST=host.docker.internal  # 10.80.80.50 yerine
```

## 📁 Dosya Yapısı

```
.
├── Dockerfile                  # Django container image
├── docker-compose.yml          # Geliştirme (mevcut PostgreSQL kullanır)
├── docker-compose.prod.yml     # Production (mevcut PostgreSQL kullanır)
├── entrypoint.sh              # Container başlatma scripti
├── nginx.conf                 # Nginx config (production)
├── .env.example               # Environment değişkenleri
└── core/
    └── settings.py            # PostgreSQL ayarları (env değişkenlerinden)
```

## ℹ️ Notlar

- Container içinden `10.80.80.50` adresine erişmek için ağ yapılandırmanızın buna izin vermesi gerekir
- Production ortamında `.env` dosyasındaki şifreleri mutlaka değiştirin
- İlk çalıştırmada migrations otomatik uygulanır
- Static dosyalar otomatik toplanır
