# cPanel yükseltme — v1.4.1

Bu belge mevcut çalışan kurulumu veri kaybetmeden v1.4.1 sürümüne yükseltmek içindir.

## Bu sürümde katalog değişikliği

- Yayınlanan topluluk bölümleri artık ilgili zorlukta beş başlangıç bölümünün ardından 6., 7., 8. bölüm olarak aynı listede görünür.
- Zorluk kartı ayrı topluluk sayacı kullanmaz; doğrudan toplam bölüm sayısını gösterir.
- Yayın kartında hazırlayan kişi, üniversite, topluluk, tahta boyutu ve yayın tarihi görünür; son kullanıcıya test sayısı gösterilmez.
- Bu katalog özelliği için yeni tablo veya sütun gerekmez. Mevcut `puzzles.creator_user_id` ve `community_users` ilişkisi kullanılır; yine de bütün migration’ları güvenle güncel tutmak için `npm run db:migrate` çalıştırılmalıdır.


## 1. Yedek

1. Uygulama kök klasörünün tamamını yedekleyin.
2. MySQL/MariaDB veritabanının tam yedeğini alın.
3. Mevcut `.env` dosyasını ayrı ve güvenli bir konuma kopyalayın.
4. Önceki çalışan ZIP'i geri dönüş için saklayın.

## 2. Dosyaları yükseltme

1. cPanel Node.js uygulamasını durdurun.
2. **Upgrade ZIP** dosyasını `app.js` dosyasının bulunduğu uygulama köküne yükleyin.
3. ZIP'i aynı klasöre çıkartıp mevcut uygulama dosyalarının üzerine yazılmasına izin verin.
4. Mevcut `.env` dosyasının yerinde ve içeriğinin değişmemiş olduğunu doğrulayın.

Upgrade ZIP gerçek `.env` içermez. Sıfırdan kurulum ZIP'inin `.env.example` dosyası da mevcut `.env` dosyanızın üzerine yazmaz.

## 3. Kurulum ve test

Uygulama kökünde sırayla çalıştırın:

```bash
npm ci --omit=dev --ignore-scripts
npm run db:migrate
npm run db:smoke
npm run db:integration
npm test
npm run release:check
npm run production:audit
npm run security:scan
```

Bütün komutlar hatasız tamamlanmadan canlı trafiği açmayın. `npm run test:browser` gerçek Chromium başlattığı için paylaşımlı cPanel hesaplarında process/thread sınırına takılabilir; bu test release hazırlanırken CI/geliştirme ortamında çalıştırılır, cPanel'de zorunlu değildir.

## 4. Yeniden başlatma

1. cPanel Node.js Application ekranından uygulamayı yeniden başlatın.
2. Aşağıdaki uçların HTTP 200 ve `ok: true` verdiğini doğrulayın:

```text
/api/health
/api/ready
```

3. Ana ekranı, bir oyun bölümünü ve yetkili bulmaca atölyesini mobil cihazda kontrol edin.

## 5. PWA önbelleği

Service worker önbellek kimliği v1.4.1 ile değişmiştir. Eski arayüz görünürse:

1. Sayfayı bir kez zorla yenileyin.
2. iOS'ta eski Ana Ekran simgesini kaldırın.
3. Safari site verilerini temizleyin.
4. Siteyi Safari'de yeniden açıp “Ana Ekrana Ekle” ile tekrar kurun.

## 6. Güvenlik

Sohbet, e-posta veya başka bir açık kanalda paylaşılmış yönetici anahtarlarını güvenli kabul etmeyin. Yeni anahtar oluşturduktan sonra eski anahtarı iptal edin:

```bash
npm run access:create -- \
  --name "KampüsKafe Yönetici" \
  --university "KampüsKafe" \
  --community "KampüsKafe" \
  --create \
  --review \
  --admin
```

```bash
npm run access:revoke -- "ESKI_ANAHTAR_PREFIXI"
```
