# 📖 Menuboard Slider - Kurulum Talimatı

Bu dokümanda, Menuboard Slider sistemini adım adım kurulumu anlatılmıştır.

## 🔧 Ön Gereksinimler

Kuruluma başlamadan önce aşağıdakilerin yüklü olduğundan emin olun:

- **PHP 8.0+** - Web sunucusu
- **MySQL 5.7+** - Veritabanı
- **Apache** (mod_rewrite etkinleştirilmiş) veya **Nginx** - Web sunucusu
- **FTP/SFTP** veya **SSH** - Dosya transferi

## 📦 Adım 1: Dosyaları Sunucuya Yükleyin

### FTP Kullanarak

1. FTP istemcisini açın (FileZilla, WinSCP, vb.)
2. Sunucu bilgilerini girin
3. Proje dosyalarını web sunucusunun root klasörüne yükleyin
   - Genellikle: `/public_html/` veya `/www/` veya `/var/www/html/`

### SSH Kullanarak

```bash
# Sunucuya bağlanın
ssh username@your-server.com

# Proje klasörünü oluşturun
mkdir -p ~/public_html/menuboard
cd ~/public_html/menuboard

# Dosyaları yükleyin (scp kullanarak)
scp -r /path/to/menuboard-slider/* username@your-server.com:~/public_html/menuboard/
```

## 🗄️ Adım 2: Veritabanını Oluşturun

### phpMyAdmin Kullanarak

1. cPanel veya Hosting Kontrol Panelinde phpMyAdmin'e giriş yapın
2. **Yeni Veritabanı Oluştur** seçeneğine tıklayın
3. Veritabanı adı: `menuboard_slider` girin
4. **Oluştur** düğmesine tıklayın
5. Yeni oluşturulan veritabanını seçin
6. **SQL** sekmesine tıklayın
7. `database/schema.sql` dosyasının içeriğini kopyalayıp yapıştırın
8. **Çalıştır** düğmesine tıklayın

### SSH Kullanarak

```bash
# Sunucuya bağlanın
ssh username@your-server.com

# MySQL'e bağlanın
mysql -u your_db_user -p

# Komutları çalıştırın
mysql> CREATE DATABASE menuboard_slider CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> USE menuboard_slider;
mysql> source /path/to/database/schema.sql;
mysql> exit;
```

## ⚙️ Adım 3: Konfigürasyonu Ayarlayın

### Veritabanı Bilgilerini Güncelleyin

1. `config/database.php` dosyasını açın
2. Aşağıdaki bilgileri güncelleyin:

```php
define('DB_HOST', 'localhost');           // Veritabanı sunucusu
define('DB_PORT', 3306);                   // Veritabanı portu
define('DB_NAME', 'menuboard_slider');    // Veritabanı adı
define('DB_USER', 'your_db_user');        // Veritabanı kullanıcısı
define('DB_PASS', 'your_db_password');    // Veritabanı şifresi
define('APP_URL', 'https://yourdomain.com'); // Sitenizin URL'si
```

### Ortam Değişkenlerini Kullanın (Opsiyonel)

Hosting sağlayıcısı ortam değişkenlerini destekliyorsa:

1. cPanel'de **Environment Variables** bölümünü bulun
2. Aşağıdaki değişkenleri ekleyin:

```
DB_HOST=localhost
DB_NAME=menuboard_slider
DB_USER=your_db_user
DB_PASS=your_db_password
APP_URL=https://yourdomain.com
```

## 🔐 Adım 4: Dosya İzinlerini Ayarlayın

### SSH Kullanarak

```bash
# Sunucuya bağlanın
ssh username@your-server.com

# Proje klasörüne gidin
cd ~/public_html/menuboard

# Dosya izinlerini ayarlayın
chmod 755 uploads/
chmod 755 uploads/sliders/
chmod 644 config/database.php
chmod 644 config/security.php
chmod 644 .htaccess
chmod 644 public/.htaccess
```

### FTP Kullanarak

1. FTP istemcisinde:
   - `uploads/` klasörüne sağ tıklayın
   - **Dosya İzinleri** seçeneğini seçin
   - İzni **755** olarak ayarlayın
   - Aynısını `uploads/sliders/` için yapın

## 🌐 Adım 5: Web Sunucusunu Yapılandırın

### Apache (cPanel ile)

1. cPanel'de **Addon Domains** veya **Parked Domains**'e gidin
2. Yeni domain ekleyin ve `public_html/menuboard` klasörünü işaret edin
3. `.htaccess` dosyasının mevcut olduğunu kontrol edin

### Nginx (SSH ile)

```bash
# Nginx konfigürasyonu oluşturun
sudo nano /etc/nginx/sites-available/menuboard

# Aşağıdaki içeriği yapıştırın:
```

```nginx
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/html/menuboard;
    index index.php;

    # HTTP'yi HTTPS'ye yönlendir
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/html/menuboard;
    index index.php;

    # SSL Sertifikası (Let's Encrypt)
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    location / {
        try_files $uri $uri/ /public/index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # Medya dosyalarını cache'le
    location ~* \.(jpg|jpeg|png|gif|webp|mp4|webm)$ {
        expires 1m;
        add_header Cache-Control "public, immutable";
    }
}
```

```bash
# Konfigürasyonu etkinleştirin
sudo ln -s /etc/nginx/sites-available/menuboard /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
```

## ✅ Adım 6: Kurulumu Test Edin

### Menuboard Sayfasını Kontrol Edin

1. Tarayıcıda açın: `https://yourdomain.com`
2. Siyah ekran görülmeli (henüz slider eklenmediği için)

### Admin Paneline Erişin

1. Tarayıcıda açın: `https://yourdomain.com/admin/login.php`
2. Giriş bilgileri:
   - **Kullanıcı Adı**: `admin`
   - **Şifre**: `admin123`
3. Başarıyla giriş yapmalısınız

## 🔒 Adım 7: Güvenlik Ayarları

### Admin Şifresini Değiştirin

1. Admin paneline giriş yapın
2. Veritabanı yönetim aracında (phpMyAdmin):
   - `users` tablosunu açın
   - `admin` kullanıcısını bulun
   - Şifreyi güncellemek için:

```php
<?php
// Yeni şifre hash'ini oluşturmak için
$newPassword = 'your_new_secure_password';
$hash = password_hash($newPassword, PASSWORD_BCRYPT);
echo $hash;
?>
```

3. Hash'i phpMyAdmin'de `password_hash` alanına yapıştırın

### SSL Sertifikası Yükleyin

1. Let's Encrypt kullanarak (ücretsiz):

```bash
# Certbot yükleyin
sudo apt-get install certbot python3-certbot-nginx

# Sertifika oluşturun
sudo certbot certonly --nginx -d yourdomain.com -d www.yourdomain.com

# Otomatik yenileme ayarlayın
sudo systemctl enable certbot.timer
```

## 📝 Adım 8: İlk Slider'ı Ekleyin

1. Admin paneline giriş yapın
2. **Yeni Slider Ekle** seçeneğine tıklayın
3. Medya tipi seçin (Görsel veya Video)
4. Dosya yükleyin
5. Başlık ve diğer bilgileri girin
6. **Slider Ekle** düğmesine tıklayın
7. Ana sayfada slider'ı görmelisiniz

## 🚀 Adım 9: Otomatik Fullscreen Ayarı

TV ekranlarında otomatik fullscreen için:

1. `public/index.php` dosyasını açın
2. Aşağıdaki satırı bulun:

```javascript
const AUTO_FULLSCREEN = true;
```

3. `true` veya `false` olarak ayarlayın

## 📊 Adım 10: Yedekleme Ayarlayın

### Otomatik Veritabanı Yedeklemesi

```bash
# Cron job oluşturun (her gün saat 2:00'de)
crontab -e

# Aşağıdaki satırı ekleyin:
0 2 * * * mysqldump -u your_db_user -p'your_db_password' menuboard_slider > /home/username/backups/menuboard_$(date +\%Y\%m\%d).sql
```

### Dosya Yedeklemesi

```bash
# Her hafta yedekle
0 3 * * 0 tar -czf /home/username/backups/menuboard_$(date +\%Y\%m\%d).tar.gz /var/www/html/menuboard/
```

## 🆘 Sorun Giderme

### "Veritabanı bağlantı hatası"

```bash
# Veritabanı sunucusunu kontrol edin
mysql -u your_db_user -p -h localhost

# Kullanıcı izinlerini kontrol edin
mysql> SHOW GRANTS FOR 'your_db_user'@'localhost';
```

### "Dosya yüklenemedi"

```bash
# İzinleri kontrol edin
ls -la uploads/
# Çıktı: drwxr-xr-x olmalı

# İzinleri düzeltin
chmod 755 uploads/
chmod 755 uploads/sliders/
```

### "Admin paneline erişilemiyor"

```bash
# PHP session klasörünün izinlerini kontrol edin
ls -la /var/lib/php/sessions/

# Tarayıcı konsolunda hata mesajlarını kontrol edin (F12)
```

## 📞 Destek

Sorunlarla karşılaşırsanız:

1. README.md dosyasını okuyun
2. Tarayıcı konsolunda hata mesajlarını kontrol edin (F12)
3. Sunucu log dosyalarını kontrol edin:
   - Apache: `/var/log/apache2/error.log`
   - Nginx: `/var/log/nginx/error.log`
   - PHP: `/var/log/php-fpm.log`

---

**Başarılı kurulumlar dileriz! 🎉**
