# Sunucuya Kurulum Rehberi

Transfer Panel'i canlı sunucuya kurmak için adım adım kılavuz.

## Dosyaları nereden alacaksınız?

Bu yazılım **internetten indirilen bir program değil** — bilgisayarınızda şu klasörde:

```text
/Users/enesakturk/Projects/transfer-rezervasyon/
```

Proje içinde hazır ZIP:

```text
/Users/enesakturk/Projects/transfer-rezervasyon/transfer-rezervasyon-cpanel.zip
```

### cPanel'e yükleme (3 adım)

1. **ZIP'i bilgisayarınıza alın** — Finder'da `Projects` klasöründen `transfer-rezervasyon-cpanel.zip` dosyasını bulun (veya projeyi sağ tık → Sıkıştır).
2. **cPanel → Dosya Yöneticisi** → `public_html` veya alt klasör (ör. `panel`) → **Yükle** → ZIP'i seçin.
3. ZIP'e sağ tık → **Extract (Ayıkla)** → çıkan `transfer-rezervasyon` klasöründe `public` klasörünün yolunu not alın.

Sonra aşağıdaki kurulum adımlarına devam edin.

## Gereksinimler

| Bileşen | Minimum |
|---------|---------|
| PHP | 8.1+ |
| MySQL / MariaDB | 5.7+ / 10.3+ |
| Eklentiler | `pdo`, `pdo_mysql`, `json`, `mbstring` |
| Web sunucu | Apache (cPanel) veya Nginx (VPS) |

---

## Yöntem 1 — cPanel / Paylaşımlı Hosting (en yaygın)

### 1. Dosyaları yükleyin

Tüm proje klasörünü ZIP yapıp sunucuya yükleyin. Örnek konum:

```
/home/kullanici/transfer-rezervasyon/
├── config/
├── database/
├── includes/
├── public/          ← web kökü burası olacak
├── storage/
└── ...
```

### 2. Veritabanı oluşturun

cPanel → **MySQL Veritabanları**:

1. Yeni veritabanı: örn. `kullanici_transfer`
2. Yeni kullanıcı + güçlü şifre
3. Kullanıcıyı veritabanına **Tüm Yetkiler** ile ekleyin
4. Not alın: sunucu adı genelde `localhost`

### 3. Document root ayarlayın

**Önemli:** Site adresinin açıldığı klasör `public/` olmalı.

- **Addon domain / subdomain:** cPanel → Domains → Document Root → `.../transfer-rezervasyon/public`
- Ana domain kullanıyorsanız: `public_html` yerine `public` içeriğini kullanmak için subdomain önerilir (ör. `panel.siteniz.com`)

### 4. Klasör izinleri

```text
config/   → 755 (yazılabilir olmalı)
storage/  → 755 (yazılabilir olmalı)
```

cPanel Dosya Yöneticisi → klasöre sağ tık → İzinler → `755`

### 5. Kurulum sihirbazı

Tarayıcıda açın:

```text
https://panel.siteniz.com/install.php
```

Formu doldurun:

- MySQL bilgileri (cPanel'den aldığınız)
- Firma sahibi adı, kullanıcı adı, şifre

Kurulum bitince panele yönlendirilirsiniz.

### 6. Güvenlik (kurulumdan sonra)

1. `public/install.php` dosyasını **silin**
2. `config/local.php` içinde doğru DB bilgileri olduğunu doğrulayın
3. HTTPS aktif edin (cPanel → SSL/TLS → Let's Encrypt)

---

## Yöntem 2 — VPS (Nginx + PHP-FPM)

```bash
# Projeyi sunucuya kopyalayın
cd /var/www
git clone ... transfer-rezervasyon
# veya scp / rsync ile

chown -R www-data:www-data transfer-rezervasyon
chmod 755 transfer-rezervasyon/config transfer-rezervasyon/storage
```

Nginx yapılandırması için `deploy/nginx.conf.example` dosyasını kullanın.

```bash
sudo ln -s /etc/nginx/sites-available/transfer.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
```

Ardından tarayıcıdan `https://domain.com/install.php` ile kurun.

---

## Yöntem 3 — Manuel (phpMyAdmin)

Kurulum sihirbazı kullanmak istemezseniz:

1. phpMyAdmin'de veritabanı oluşturun
2. `database/schema_tables.sql` dosyasını içe aktarın
3. `config/local.example.php` → `config/local.php` kopyalayın, bilgileri girin:

```php
<?php
return [
    'driver' => 'mysql',
    'mysql' => [
        'host' => 'localhost',
        'port' => 3306,
        'database' => 'kullanici_transfer',
        'username' => 'kullanici_dbuser',
        'password' => 'GUVENLI_SIFRE',
        'charset' => 'utf8mb4',
    ],
];
```

4. `storage/install.lock` dosyası oluşturun (boş dosya yeterli)
5. İlk kullanıcıyı phpMyAdmin'den veya kurulum sihirbazından ekleyin

---

## Sorun giderme

| Sorun | Çözüm |
|-------|--------|
| Beyaz sayfa | cPanel → Hata Günlükleri; `display_errors` kapalı olabilir |
| 500 hatası | `.htaccess` desteklenmiyor olabilir; hosting desteğe sorun |
| DB bağlantı hatası | Host `localhost` değilse hosting panelindeki host adını kullanın |
| config yazılamıyor | `config/` klasörü iznini 755/775 yapın |
| CSS/JS yüklenmiyor | Document root `public/` değil, yanlış klasör açılıyor |

---

## Kurulum sonrası

- **Firma sahibi:** kurulumda belirlediğiniz hesap
- **Demo yönetici:** `yonetici` / `admin123` (isterseniz silin veya şifre değiştirin)
- **Demo şoförler:** `mehmet`, `ali` / `admin123`

Canlıda demo hesapları silmeyi veya şifrelerini değiştirmeyi unutmayın.
