# TYPO3 v13 – Docker & Coolify

Bu klasör, projenin Coolify (ve genel Docker) ile deploy edilmesi için kullanılır.

**Detaylı dokümantasyon:** Tüm adımlar, konfigürasyon açıklamaları, ortam değişkenleri, sorun giderme ve güvenlik notları için **[docs/docker-coolify-dokumantasyon.md](../docs/docker-coolify-dokumantasyon.md)** dosyasına bakın.

## Dosyalar

- **Dockerfile** (proje kökünde): PHP 8.2-fpm + nginx + supervisord; tek container’da çalışır.
- **docker/nginx.conf**: Nginx site config, document root `public/`.
- **docker/supervisord.conf**: php-fpm ve nginx’i birlikte çalıştırır.

## Coolify’da kurulum

1. **Yeni uygulama:** Coolify’da “Add Resource” → “Application” → “Dockerfile” (veya “Docker Compose” değil, sadece Dockerfile).
2. **Kaynak:** Repo’yu bağlayın (Git) veya “Dockerfile” ile build’i proje kökünden yapın. Build context = proje kökü; Dockerfile path = `Dockerfile`.
3. **Port:** Container **80** portunu expose eder. Coolify’da “Port” alanına **80** yazın (veya port mapping’i 80→80 bırakın).
4. **Ortam değişkenleri (veritabanı zorunlu):** Container’da DB bağlantısı env ile yapılır. Coolify’da şunları tanımlayın:
   - `TYPO3_DB_HOST` = Coolify’daki **veritabanı servis adı** (paneldeki ad, örn. `user_db`; `db` sadece yerel docker-compose için)
   - `TYPO3_DB_PORT` = `3306`
   - `TYPO3_DB_NAME` = Coolify “Initial Database” (genelde `default`)
   - `TYPO3_DB_USER` = Coolify “Normal User” (genelde `mysql`)
   - `TYPO3_DB_PASSWORD` = Coolify’daki şifre
   İlk deploy’da veritabanı boşsa tarayıcıda `/typo3/install.php` ile kurulumu tamamlayın. **Install Tool kilitli** uyarısı çıkarsa (aşağıya bakın) önce kilidi açın.
5. **Volume (kalıcılık):** Aşağıdaki dizinleri volume ile bağlamanız önerilir; aksi halde container silinince veriler gider:
   - `var/` (cache, log)
   - `fileadmin/` (yüklenen dosyalar)
   - `public/fileadmin/`
   - `config/` (site/config.yaml vb. production’da değişecekse)

Coolify’da “Volumes” bölümünden container path olarak örn. `/var/www/html/var` → host path ekleyebilirsiniz.

## Yerel build/test

**Sadece uygulama (DB yok → 503 veya hata):**
```bash
docker build -t typo3v13-app .
docker run -p 8080:80 -e TYPO3_DISPLAY_ERRORS=1 typo3v13-app
```

**Uygulama + MySQL (önerilen):**
```bash
docker build -t typo3v13-app .
docker compose up -d
# http://localhost:8080 — ilk seferde /typo3/install.php ile kurulum
```

**Install Tool:** Container başlarken **entrypoint** `FIRST_INSTALL` dosyasını otomatik oluşturur; doğrudan **http://localhost:8080/typo3/install.php** ile kuruluma gidebilirsiniz. “The Install Tool is locked” çıkarsa (eski image vb.) manuel: `docker exec -it typo3v13-app-1 touch /var/www/html/public/FIRST_INSTALL` ve `chown www-data:www-data ...`. Kurulum sonrası güvenlik için `FIRST_INSTALL` dosyasını silin.

## Gereksinimler

- PHP 8.2 (composer.json ile uyumlu)
- MySQL veya MariaDB (Coolify’da ayrı servis veya harici DB; TYPO3 Install Tool ile bağlanırsınız)
- Build sırasında network erişimi (composer install için)
