Kanallar ve imza
İmzalı sürüm bilgisi
latest.json Ed25519 ile imzalanır; genel anahtar çekirdeğe gömülüdür. Çekirdek şunları reddeder:
- imzasız veya geçersiz manifest,
- süresi dolmuş manifest (30 gün),
- kurulu sürümden eski sürüm (geri düşürme saldırısı).
Reddedilince Güncellemeler ekranı "İmza doğrulanamadı" der, güncelle düğmesi pasifleşir ve hiçbir şey indirilmez.
Özel güncelleme kanalı
Bir sürümü önce yalnızca belirli bir siteye (örn. ana site) göndermek için özel kanal kullanılır:
- Kanal dosyaları sunucuda
channels/<kanal>/altında durur; kararlılatest.jsonve kurulum paketi etkilenmez. - Site, AACP → Güncellemeler → "Özel güncelleme kanalı" alanındaki ada göre kararlı ile kanalın yüksek olanını görür.
- Yayın:
KANAL=<kanal> bash yayinla.sh <sürüm> hepsi. - Kanal sürümü, ileride çıkacak kararlı sürümden küçük olmalıdır (kanal 2.2.49 → sonra kararlı 2.2.50).
Kanal sürümü hangisi kazanır
Bir site kanal adı girdiyse güncelleme denetimi iki kaynağa bakar: kararlı latest.json ve kanalın latest.json dosyası. İkisinden sürümü yüksek olan önerilir; ikisi de imzalı olmak zorundadır. Kanal adı boşsa yalnızca kararlı kanal izlenir. Kanal adı tahmin edilemez olmalıdır (6–64 karakter: küçük harf, rakam, tire), çünkü adresi bilen herkes o kanalı okuyabilir; ona şifre gibi davranın ve herkese açık metinlere yazmayın.
Neden önce özel kanal
Sürümü önce yalnızca kendi sitenize göndermek, gerçek bir canlı sitede denemek demektir. Sorun çıkarsa kararlı kanalı izleyen kimse etkilenmez. Sorun çıkmazsa sürüm kararlı kanala yayınlanır.
Hangi dosya ne işe yarar
| Dosya | İçerik |
|---|---|
latest.json |
Güncel sürüm, paket adresi, SHA-256, expires_at, min_allowed_version; imzalı |
versions.json |
Yayınlanmış sürümlerin listesi |
releases/<sürüm>.md |
Sürüm notu (İngilizce; Türkçe karşılığı -tr.md) |
packages/cpalius-<sürüm>.zip |
Güncelleme paketi (tam paketle aynı dosya) |
min_allowed_version, bir sitenin geri dönemeyeceği en düşük sürümü belirler; kritik bir güvenlik düzeltmesinden sonra eski sürümlere düşmeyi engeller.
İmza yenileme
Manifest 30 gün geçerlidir. Yeni sürüm çıkmıyorsa: bash yayinla.sh <mevcut sürüm> imzala (kanal için KANAL=… ile).
Güncelleme sırasında olanlar
Kilit alınır, 503 bakım sayfası açılır, veritabanı anlık görüntüsü alınır, dosyalar önce yan yana hazırlanıp sonra hızlıca yerine konur. Dosya, migration veya güncelleme adımı hata verirse dosyalar ve veritabanı birlikte geri yüklenir; süreç ortada ölürse bir sonraki istek public/index.php içinde kendini onarır.
Geri alma, anlık görüntü ile hata arasında veritabanına yazılan her şeyi siler. Büyük veritabanlarında anlık görüntü süre ve disk alanı harcar.