İçeriğe geç
HisarBlok
Menü
EN

HisarBlok · belgeler

Güncelleme ve yedek

Yeni sürüm nasıl uygulanır, bir şey ters giderse ne olur, yedekler neyi tutar ve bir site başka sunucuya nasıl taşınır.

Tüm belgeler

Sürüm 0.13.1 için.

İmzalı güncelleme

Bir sürüm yan yana üç dosyadır: kod paketi (hisarblok-X.Y.Z.tar.gz), paketteki her dosyanın SHA-256 özetini listeleyen bir bildirim ve bu bildirimin Ed25519 imzası. Güncelleme sunucuda tek komuttur; kodun ve data/config.php dosyasının sahibi olan hesapla çalıştırılır (HestiaCP'de sitenin kullanıcısı). Root ile çalıştırmak reddedilir.

sudo -u SITEKULLANICISI php …/tools/update.php hisarblok-X.Y.Z.tar.gz

Sırasıyla şunlar olur:

  1. İmza, kurulumda gelen genel anahtarlarla bildirim okunmadan önce doğrulanır. Başka anahtar, geri çekilmiş anahtar, eksik imza, değişmiş tek bir bayt, kod dışına yazmaya çalışan bir yol ya da eski sürüme dönüş reddedilir.
  2. Önce yedek alınır; yeni kod ayrı bir klasörde açılır ve her dosyası kendi özetine karşı denetlenir.
  3. Panel kısa bir süre "güncelleniyor" der; siteler yayında kalır. Kod yeniden adlandırmayla tek hamlede değiştirilir.
  4. Veritabanı göçleri çalışır ve her site yeni kodla yeniden üretilir.
  5. Bu adımlardan biri başarısız olursa kod da veritabanı da kendiliğinden eski hâline döner.

--undo son güncellemeyi geri alır, --recover yarıda kesilen bir çalışmayı tamamlar, --dry-run yalnız doğrular, --verify diskteki kodu kurulu sürümün özetleriyle karşılaştırır. Panel hiçbir zaman koda yazmaz. Sistem → Güncellemeler kurulu sürümü ve güvenilen anahtarları gösterir; yapılandırmada update_url verilirse imzalı bir yeni sürüm olup olmadığını da denetler. Bu denetim varsayılan olarak kapalıdır: HisarBlok kendiliğinden dışarıya bağlanmaz.

Elle güncelleme

Önce yedek alınır, sonra yeni sürüm eskisinin üzerine açılır ve site yeniden üretilir. Sürüm paketinde data/ yoktur; bu yüzden bir güncelleme içeriği ya da yapılandırmayı ezemez. Veritabanı değişiklikleri güncellemeden sonraki ilk istekte kendiliğinden uygulanır.

sudo -u www-data php tools/backup.php --label=before-update
# kodu yeni sürümle değiştirin, sonra:
sudo chown -R www-data: data && sudo chmod 750 data
sudo -u www-data php tools/rebuild.php ornek.com

Yedekler

Bir yedek, yeniden üretilemeyen her şeyi tutan tek bir .tar.gz dosyasıdır: site çalışırken tutarlı biçimde alınan veritabanı kopyası, yapılandırma, modül verileri, her sitenin yüklenen medyası ve her dosyanın SHA-256 özetini içeren bir bildirim. Üretilmiş sayfalar yedeğe girmez; veritabanından yeniden üretilir. MySQL/MariaDB kurulumlarında da biçim aynıdır, bu yüzden her yedek iki veritabanına da geri yüklenebilir.

sudo -u www-data php tools/backup.php                 # şimdi yedek al
sudo -u www-data php tools/backup.php --list          # saklananlar
sudo -u www-data php tools/backup.php --verify=AD     # bir yedeği baştan sona doğrula

Yedekler data/backups/ altına yazılır, hiçbir zaman bir belge kökünün içine değil. Son 14 yedek saklanır; sayı ve klasör yapılandırmadan değiştirilebilir. Panelde Sistem → Yedekler yedekleri listeler, istenince yenisini alır ve indirmeye izin verir; indirme parolayı yeniden sorar.

Yedekleri sunucunun dışına kopyalayın. Aynı diskteki bir yedek, diskin kendisi bozulduğunda işe yaramaz.

Geri yükleme

Geri yükleme, panelin üzerinde çalıştığı veritabanını değiştirdiği için panelden değil, sunucuda tools/restore.php ile yapılır ve önce --dry-run ile denenebilir. Sırasıyla: arşivdeki her özet ve her dosya adı denetlenir (yerinin dışına yazmaya çalışan bir ad reddedilir); daha yeni bir HisarBlok'tan alınmış yedek reddedilir; mevcut durumun yedeği alınır; veritabanının bütünlüğü denetlenir; ancak bundan sonra veritabanı, yapılandırma, veriler ve medya yerine konur ve işlem denetim günlüğüne yazılır. Ardından her site yeniden üretilir.

Başka sunucuya taşıma da aynı yoldan yapılır: yeni sunucuya HisarBlok kurulur, yedek data/backups/ altına kopyalanır, geri yüklenir, siteler yeniden üretilir ve DNS taşınır.

Dışa aktarma

Yedekten ayrı olarak, bir sitenin bütün içeriği Sistem → Yedekler → Siteyi dışa aktar ya da tools/export.php ile açık ve belgelenmiş bir biçimde tek bir .zip dosyasına alınabilir: düz JSON Lines dosyaları, özgün görseller ve SHA-256 bildirimi. Parolalar, iki adımlı doğrulama anahtarları, oturumlar ve e-posta ayarları hiçbir zaman içinde olmaz; üyeler ve form yanıtları yalnız istenirse eklenir. Aynı dosya başka bir HisarBlok kurulumuna tools/import.php hisarblok ile geri alınır.

Komut satırı: bin/hisarblok

Sunucudaki her iş tools/ içinde bir betiktir; bin/hisarblok hepsine tek kapıdır:

sudo -u www-data bin/hisarblok help                  # komutlar ve ne yaptıkları
sudo -u www-data bin/hisarblok rebuild ornek.com     # siteyi yeniden üret
sudo -u www-data bin/hisarblok doctor                # kurulumun sağlık raporu

doctor, panelin site sağlığı satırlarına ek olarak zamanlanmış işi, üretim kuyruklarını ve güncelleme anahtarlarını denetler; --json ile izleme araçlarına bağlanır. Her komut aracı ayrı bir süreç olarak, argümanları kabuğa uğratmadan ve aracın kendi sahiplik denetiminin arkasında çalıştırır.