Merhabalar efenim, Liman sürümümüz olan 1.1.0 yayınladık, bu sürümde geliştirmeler yaptık. detayları aşağıdaki gibidir;
Bu sürüm dosyaların nerede durduğu ve nasıl yolculuk ettiğiyle ilgili: yüklenen dosyaların uzak bir hedefe kopyalanması, yedeklerin sunucu dışına çıkarılması, görsellerin bir CDN üzerinden servis edilmesi, ve tek bir dosyanın tam paket indirmeden güncellenebilmesi. Adı buradan geliyor — liman, yükün durduğu ve sevk edildiği yerdir.
Yenilikler
- Depolama hedefleri (AACP → Bakım → Depolama ve CDN). Amazon S3, Cloudflare R2 ve FTP/FTPS. S3 uyumlu her servis aynı sürücüyle çalışır: MinIO, DigitalOcean Spaces, Backblaze B2. AWS SDK kurulmaz — istekler SigV4 ile doğrudan imzalanır, çünkü üç HTTP fiili için ~90 MB servis tanımı, paylaşımlı hostinge FTP ile yüklenen bir pakette her kurulumda hissedilirdi.
- Kaydet ve sına, tek düğme. Bir hedef, o anda kayıtlı yapılandırmayla canlı bir yazma denemesini geçmeden kullanılmaz: deneme gerçek bir dosya yazar, geri okur ve siler. Yalnızca listelemeye izin verip yazmayı reddeden bir bucket politikası ya da salt-okunur bir FTP hesabı, bundan daha hafif hiçbir kontrolden geçmez.
- Medya offload. Yükleme her zaman
public/uploadsiçine yazılır ve sonra seçilen hedefe kopyalanır. Dosyanın aslı bu sunucuda kalır — küçük görseller GD ile diskten üretilir,public/uploads/.htaccesssertleştirmesi baytlarla birlikte bucket'a gitmez, ve dosya yedeği sitenin medyasını içermeye devam eder. Uzak hedef erişilemezse site görselleri kendi diskinden verir. - Gece taraması. Yükleme anında gidememiş dosyaları ve küçük görselleri toplar. İmleçle çalışır: her koşu kaldığı yerden devam eder, sona ulaşınca başa döner. Mevcut bir siteyi ilk kez taşırken açılacak ayar budur. Varsayılan kapalı.
- Site dışı yedekler. Arşiv üretildikten sonra seçilen hedefe yüklenir ve karşıdan geri okunarak doğrulanır.
Yerel kopyayı korukapatıldığında yerel arşiv ancak bu doğrulamadan sonra silinir. Uzakta tutulacak yedek sayısı ayarlanabilir; yerel ve uzak silme iki ayrı düğmedir. - Görseller için CDN. Tek ayar, iki kurulumu birden karşılar: adres
/uploadsbölümünün yerine geçer. Origin'in önündeki bir pull-zone içinhttps://cdn.siteniz.com/uploads, herkese açık bir bucket içinhttps://pub-xxxx.r2.dev. CDN offload'dan bağımsızdır — pull-zone hiçbir yükleme gerektirmez. - Dosya bazlı güncelleme (yamalar). Tek bir dosya değiştiğinde, sahadaki kurulumlar kırk megabaytlık bir arşiv indirmeden yalnızca o dosyayı alabilir. Panel, değişecek her dosyayı ve SHA-256 özetini uygulamadan önce listeler.
cp:patchkomutu. Bekleyen yamayı ve dosya listesini basar; hiçbir şey yazmaz. Uygulamak--applygerektirir ve etkileşimli oturumda ayrıca onay sorar.
Güvenlik
- Yama gövdeleri yalnızca CPalius'a ait adreslerden çekilir ve her dosya yazılmadan önce SHA-256 doğrulanır. Biri tutmazsa proje ağacına tek bayt yazılmaz — yarısı uygulanmış bir yama, kimsenin test etmediği bir sürüm karışımı demektir.
- Bir yama
cp-includes/vendor,public/uploads,cp-core/varve.envdosyalarına yazamaz. Kural, tam güncelleyiciyle paylaşılan tek bir yerde duruyor; iki kopya hâlinde tutulan bir kural er geç ayrışır. - Yama,
CpVersion.phptaşımak zorundadır ve indirilen dosyanın sabiti manifestteki sürümü söylemelidir. Bu olmasaydı 1.1.1 ilan edip 1.1.0 kodu gönderen bir manifest uygulanır, çalışan sürüm yerinde kalır ve aynı yama sonsuza kadar yeniden teklif edilirdi. - Hiçbir yama kendiliğinden uygulanmaz. Cron kontrolünden kuruluma giden bir kod yolu yoktur; CSRF korumalı bir form ya da bilinçli bir komut gerekir. Otomatik uygulamak, CPalius GitHub organizasyonunu ele geçirenin sahadaki her kurulumu operatör olmadan ele geçirmesi demek olurdu.
- Depolama kimlik bilgileri
cp_settingsiçinde şifreli durur (SettingSecretCodec). Ekran sırları geri basmaz; boş bırakılan parola alanı "kayıtlı değeri değiştirme" anlamına gelir.
Düzeltmeler
- Yüklenen dosyaların URL'i artık tek bir yerde üretiliyor. Önce altı ayrı noktada
'/uploads/'.$keyyazılıydı; bir CDN, bu cevabın her yerde aynı olmadığı ilk durumdur. cp:backup:createsite dışı kopya başarısız olduğunda sıfırdan farklı çıkış kodu döndürüyor. Crontab'dan çalışan bir komutun, yedek hiç ayrılmamışken başarı bildirmesi, operatöre bakmadan geçen bir yıl satar.
Kırılmalar
Yok. Hiçbir ayarın varsayılanı davranış değiştirmez: depolama hedefleri, gece taraması ve CDN kapalı gelir. Bu sürümü kurup hiçbir şeye dokunmazsanız site 1.0.0'daki gibi çalışır.
Yükseltme notları
Sign in, like this post, or reply in the topic to reveal this.