# Deployment Talimatları - Uzak Sunucu 500 Hatası Düzeltme

## 1. SFTP ile Yüklenecek Dosyalar

VS Code SFTP eklentisi ile aşağıdaki dosyaları yükleyin:

### Değişen Backend Dosyaları:
- `app/Livewire/AllNotes.php` ✅
- `app/Http/Controllers/NoteController.php` ✅
- `routes/web.php` ✅
- `config/database.php` ✅

### Değişen View Dosyaları:
- `resources/views/dashboard.blade.php` ✅
- `resources/views/livewire/all-notes.blade.php` ✅

### Silinmiş Dosyalar (sunucudan da silin):
- `resources/views/notes.blade.php` ❌
- `resources/views/notes-vanilla.blade.php` ❌
- `resources/views/edit-note.blade.php` ❌
- `resources/views/components/pinned-notes.blade.php` ❌
- `resources/views/components/new-note.blade.php` ❌
- `resources/views/components/all-notes.blade.php` ❌
- `resources/views/components/empty-plant.blade.php` ❌

### Build Dosyaları:
- `public/build/` klasörünün TÜM içeriğini yükleyin
  - `public/build/manifest.json`
  - `public/build/assets/app-DKlqGNSx.css`
  - `public/build/assets/app-B6lK8SpZ.js`

### Kritik Düzeltme:
- `resources/views/livewire/all-notes.blade.php` dosyasında `$filteredCompanies` → `$this->filteredCompanies` olarak değiştirildi ✅

## 2. SSH ile Sunucuda Çalıştırılacak Komutlar

```bash
# Sunucuya SSH ile bağlanın
ssh root@167.86.89.222

# Proje dizinine gidin
cd /var/www/apper/note.apper

# ÖNEMLİ: Önce storage izinlerini düzeltin
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

# Storage klasörünün tüm alt klasörlerine de izin verin
chmod -R 775 storage/framework
chmod -R 775 storage/framework/views
chmod -R 775 storage/framework/cache
chmod -R 775 storage/framework/sessions
chmod -R 775 storage/logs

# Cache temizleme
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear

# Production cache oluşturma
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Composer autoload yenileme
composer dump-autoload

# Dosya izinlerini ayarlama
chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

# Eğer hala sorun varsa, Livewire cache'i temizleyin
php artisan livewire:publish --force
```

## 3. Kontrol Edilecekler

### .env Dosyası Kontrolü
Sunucudaki `.env` dosyasının şu değerlere sahip olduğundan emin olun:

```env
APP_ENV=production
APP_DEBUG=false
APP_URL=https://note.apper.com.tr

SESSION_DRIVER=database
SESSION_DOMAIN=.apper.com.tr
SESSION_SECURE_COOKIE=true
```

### public/hot Dosyası
Sunucuda `public/hot` dosyası OLMAMALI. Varsa silin:

```bash
rm /var/www/apper/note.apper/public/hot
```

## 4. Değişiklik Özeti

### Yapılan Değişiklikler:
1. ✅ Dashboard artık sadece `@livewire('all-notes')` kullanıyor
2. ✅ Tüm eski view'lar ve component'ler silindi
3. ✅ NoteController'daki vanilla JS metodları kaldırıldı
4. ✅ Route'lardan gereksiz endpoint'ler temizlendi
5. ✅ Alttaki etiket/şirket arama tamamen Livewire ile yeniden yazıldı
6. ✅ Alpine.js bağımlılığı kaldırıldı (şirket arama kısmından)
7. ✅ Notification component tekrarı kaldırıldı
8. ✅ Database config'e PDO options eklendi

### Yeni Özellikler:
- `$showCompanySearch` - Şirket arama gösterimi
- `$companySearchText` - Şirket arama metni
- `toggleCompanySearch()` - Şirket arama toggle
- `clearCompanySearch()` - Şirket arama temizleme
- `getFilteredCompaniesProperty()` - Filtrelenmiş şirketler computed property

## 5. Sorun Giderme

### Hala 500 hatası alıyorsanız:

```bash
# Laravel log dosyasını kontrol edin
tail -f /var/www/apper/note.apper/storage/logs/laravel.log

# Veya web sunucu loglarını:
tail -f /var/log/nginx/error.log
# veya
tail -f /var/log/apache2/error.log
```

### Storage izinleri hatası:
```bash
cd /var/www/apper/note.apper
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
```

### Livewire component bulunamıyor hatası:
```bash
php artisan livewire:discover
composer dump-autoload
php artisan optimize:clear
```

## 6. Test Adımları

1. ✅ Ana sayfaya giriş yapın (https://note.apper.com.tr/dashboard)
2. ✅ Notların göründüğünü kontrol edin
3. ✅ Alttaki etiket arama butonuna tıklayın ve test edin
4. ✅ Alttaki şirket arama butonuna tıklayın ve test edin
5. ✅ Drag-drop ile etiket eklemeyi test edin
6. ✅ Drag-drop ile şirket eklemeyi test edin
7. ✅ Not oluşturma/düzenleme/silme işlemlerini test edin

## 7. Rollback (Acil Durum)

Eğer sorun devam ederse eski versiyona dönmek için:

```bash
# Git ile önceki commit'e dön
cd /var/www/apper/note.apper
git checkout HEAD~1

# Cache temizle
php artisan optimize:clear
php artisan config:cache
```
