Yapılandırma¶
Bu sayfa konteynerin ortam değişkenlerini, şablonun sağladığı bağlamaları, SSH üzerinden VM yedeklemesini ve site dışı kurulumu kapsar. Yedekleme depo yolları ortam değişkenleriyle değil, uygulamanın içinde yapılandırılır (Ayarlar, Yedekleme yolları).
Ortam değişkenleri¶
| Değişken | Gerekli | Açıklama |
|---|---|---|
APP_KEY |
Evet | restic depo parolasını türetmek için kullanılan 32 baytlık onaltılık gizli anahtar (64 onaltılık karakter). openssl rand -hex 32 ile oluşturun. Bunu güvende tutun: kaybetmek şifreli yedekleri kurtarılamaz hale getirir. |
LIBVIRT_HOST |
VM'ler için | VM yedeklemesi için SSH üzerinden ulaşılan Unraid host'u (varsayılan host.docker.internal; şablon bir LAN-IP yer tutucusunu önceden doldurur). Unraid LAN IP'nizi kullanın, özel bir br0.x ağında gereklidir. |
LIBVIRT_SSH_PORT |
Hayır | VM yedeklemesi için host SSH portu (varsayılan 22). |
LIBVIRT_SSH_USER |
Hayır | VM yedeklemesi için host'taki SSH kullanıcısı (varsayılan root). |
PORT |
Hayır | HTTP portu (varsayılan 3000; yalnızca HTTP_ONLY=true ile kullanılır). |
HTTPS_PORT |
Hayır | HTTPS portu (varsayılan 3443; şablon onu 1:1 yayımlar, böylece WebUI https://<ip>:3443 üzerinde yanıt verir). |
HTTP_ONLY |
Hayır | Kendinden imzalı HTTPS dinleyicisini devre dışı bırakmak ve yalnızca düz HTTP sunmak için true ayarlayın (TLS'yi sonlandıran bir ters proxy arkasında kullanım için). |
HOST_SOURCE_ROOT |
Hayır | Host Data olarak bağlanan host yolu (varsayılan /mnt). BombVault, Docker'ın bildirdiği bağlama kaynaklarını bu bağlamanın altındaki yollara çevirir. Yalnızca farklı bir host kökü bağladıysanız değiştirin. |
BOMBVAULT_SELF_CONTAINER |
Hayır | BombVault konteynerinin kendi adı, böylece kendisini asla yedeklemez (ve dolayısıyla durdurmaz) (varsayılan BombVault; köprü ağında ana bilgisayar adı aracılığıyla otomatik algılanır). |
BACKUP_MAX_HOURS |
Hayır | Tek bir yedekleme çalışmasının, zorla iptal edilmeden önce etki alanı kilidini tutabileceği maksimum duvar saati saati (sıkışmış bir çalışmanın etki alanını sonsuza dek engelleyememesi için bir koruma). Boş (varsayılan) 48 kullanır. Çok büyük ya da yavaş bulut yedeklemeleri için artırın (sınırda iptal edilen bir çalışma context deadline exceeded ile başarısız olur). Sınırı tamamen devre dışı bırakmak için 0 ayarlayın. |
TZ |
Hayır | Zamanlayıcı için saat dilimi (örneğin Europe/Berlin). |
Bağlamalar¶
Docker soketini, flash'ı (/boot) ve Host Data kökünü (/mnt) CA şablonunda gösterildiği gibi bağlayın. Yedekleme kaynakları ve hedefleri her ikisi de Host Data altında yer alır ve o rslave olarak bağlanır, böylece konteyner başladıktan sonra bağlanan bir uzak paylaşım (örneğin /mnt/remotes altında) yeniden başlatma olmadan görünür hale gelir.
Yedekleme depo yolları varsayılan olarak /mnt/user/bombvault/{container,vms,flash,config,files} şeklindedir, ilk yedeklemede oluşturulur. Konumu istediğiniz zaman Ayarlar, Yedekleme yolları'nda değiştirin.
Host entegrasyon denetimi
Konteyner başladıktan sonra web arayüzünde /spike'ı açın. Her bağlamayı ve CLI'ı (Docker soketi, libvirt, restic, qemu-img, rclone) yoklar ve eksik parçaları bildirir.
Güvenlik modeli¶
Host üzerinde root eşdeğeri denetim
Docker soketi aracılığıyla BombVault konteynerleri durdurabilir, kaldırabilir ve yeniden oluşturabilir, appdata'yı okuyup yazabilir ve VM yedeklemesi için virsh çalıştırmak üzere host'a SSH ile (qemu+ssh://, varsayılan olarak root) giriş yapar. Web arayüzüne ulaşabilen herkes, host üzerinde etkin biçimde root yetkisine sahiptir.
- İsteğe bağlı parola koruması (Ayarlar, Güvenlik): giriş yapmayı gerektirmek için bir parola ayarlayın, devre dışı bırakmak için temizleyin. Güvenilen LAN kullanımı için varsayılan olarak kapalıdır. Oturumlar imzalıdır (
APP_KEY'den türetilen HMAC) ve parolayı değiştirmek onları geçersiz kılar; girişler hız sınırlıdır. - Kapı isteğe bağlı olduğu için, ayarlanmadığında tüm arayüz ve API (site dışı kurulum, kurcalama testi rotaları ve kurtarma kiti dahil) porta ulaşabilen herkes tarafından erişilebilirdir. Site dışı, değiştirilemez yedekler ya da şifreleme kullanıldığında kapıyı etkinleştirin.
- BombVault'u yalnızca güvenilen, dışarıya açık olmayan bir ağda çalıştırın. Uzaktan erişim için onu kimlik doğrulama ve TLS ekleyen bir ters proxy arkasına yerleştirin. Yanıtlar temel güvenlik başlıklarını taşır (CSP,
nosniff,X-Frame-Options,Referrer-Policy). HTTP_ONLY=trueile oturum çereziSecurebayrağını kaybeder (düz HTTP üzerinde çalışması için buna zorunludur), bu nedenle gizlilik önemliyse parolayı yalnızca TLS'yi sonlandıran bir proxy arkasında etkinleştirin.- VM yedekleme SSH bağlantısı, ilk bağlantıda host anahtarına güvenir (TOFU) ve sonrasında onu sabitler. Konteynerden host'a giden yolunuz güvenilir değilse host'un anahtarını bant dışı doğrulayın.
- Şifreleme etkinleştirildiğinde (Ayarlar; varsayılan olarak açık) yedekler restic tarafından şifrelenir, anahtar
APP_KEY'den türetilir.
SSH üzerinden VM yedeklemesi¶
BombVault, KVM/libvirt VM'lerini herhangi bir libvirt yolunu bağlamadan yedekler. virsh'i host'ta SSH üzerinden (qemu+ssh://) çalıştırır, böylece host VM Manager'ınızı asla etkileyemez.
Hızlı kurulum:
- Ayarlar, Sistem, SSH üzerinden VM Yedeği: gösterilen genel anahtarı kopyalayın.
- Onu Unraid'in
/root/.ssh/authorized_keysdosyasına ekleyin (yeniden başlatmalarda kalıcı olması için flash'a da yazılır). - Bağlantıyı test et'e tıklayın.
Şablon, konteynerin host'a ulaşabilmesi için --add-host=host.docker.internal:host-gateway ekler. O ad çözümlenmezse (örneğin konteyner özel bir br0.x ağında çalıştığında) LIBVIRT_HOST'u Unraid LAN IP'nize ayarlayın. Unraid'in SSH portunu değiştirdiyseniz, eşleşmesi için LIBVIRT_SSH_PORT'u ayarlayın. Canlı anlık görüntüler ayrıca VM'de qemu guest agent ve diskin /mnt/cache üzerinde (/mnt/user değil) olmasını gerektirir.
Tam VM kurulumu ve ağ kılavuzu
Tam adım adım kılavuz (SSH etkinleştirme, kalıcı anahtar yetkilendirme, özel ağ ve VLAN yönlendirme, VM başına yöntem ve host tarafı sorun giderme) GitHub'daki docs/vm-backup-ssh-setup.md adresinde yer alır.
Site dışı kurulum¶
Ayarlar, Site dışı sekmesinde bir site dışı kopya kurun. Tam iş akışı için (değiştirilemez/yalnızca ekleme, kurcalama testi ve DR tatbikatları) bkz. Site dışı ve kurtarma. Kısaca:
- Arka uçlar: SMB/CIFS ve NFS (paylaşımı bağlayın ve ona bir Yedekleme Yolu ayarlayın), rclone olmadan yerel restic arka uçları (
s3:...,rest:http://host:8000/repo,b2:...,sftp:user@host:/repo) ya da herhangi bir rclone uzak konumu (rclone:<remote>:<bucket>/path). - Bulut kimlik bilgileri Ayarlar, Site dışı, Bulut kimlik bilgileri altında şifreli saklanır.
- SSH hedefleri karşı tarafta hiçbir şey kurmayı gerektirmez.
sftp:yalnızca bir SSH sunucusu gerektirir. Ayarlar, Sistem, SSH üzerinden VM Yedeği bölümündeki genel anahtarı (ayrıca/config/ssh/id_ed25519.pubkonumunda) hedef kullanıcının~/.ssh/authorized_keysdosyasına ekleyin. - Site dışı kopya: BombVault yeni anlık görüntüleri en iyi çaba temelinde
restic copyile çoğaltır. Yerel depo birincil kalır. Her etki alanının kendi site dışı zamanlaması ve ayrıca bir Şimdi çoğalt düğmesi vardır. - Etki alanı başına birden fazla site dışı hedef: her etki alanı aynı anda birkaç site dışı hedefe çoğaltabilir. Ayarlar, Site dışı'nda her biri kendi deposu, S3 depolama sınıfı, yalnızca ekleme bayrağı, saklama ve büyüme bütçesiyle ek hedefler ekleyin; hepsi o etki alanının site dışı zamanlamasında çoğaltılır. Mevcut tek bir site dışı kurulum ilk hedef olarak taşınır.
- Kaynak başına saklama: yerel ilke Ayarlar, Yollar ve Depolama'da yer alır; site dışı ilke Ayarlar, Site dışı'nda (site dışı anlık görüntüleri asla otomatik kırpmamak için tümünü sıfır bırakın).
- Bant genişliği sınırları: Ayarlar, Site dışı altında restic yükleme/indirme hızını sınırlayın.
- Soğuk ve arşiv depolama sınıfı (S3): yerel bir S3 site dışı deposu için geri yüklenebilir bir katman seçin (Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval). rclone uzak konumları sınıflarını rclone yapılandırmasında ayarlar.
Taşınabilir ayarlar (dışa ve içe aktarma)¶
Ayarlar sayfasındaki Ayarları dışa ve içe aktar kartı, tüm BombVault yapılandırmanızı (etki alanı ayarları, site dışı hedefler, zamanlamalar, saklama, bildirimler) başka bir örnekte içe aktarabileceğiniz taşınabilir bir JSON dosyasına yazar, böylece yeni bir makineye taşınmak ya da bir kurulumu klonlamak her şeyi elle yeniden girmek anlamına gelmez. İçe aktarma bir önizleme gösterir ve onay ister ve yedekleme verilerinize ya da geçmişinize asla dokunmaz.
Dışa aktarma kimlik bilgileri içerebilir
Site dışı ve bildirim kimlik bilgilerini dosyaya dahil edip etmeyeceğinizi siz seçersiniz. Kimlik bilgileri dahilken, dışa aktarma kurtarma kitiniz kadar hassastır, bu nedenle onu güvenli bir yerde saklayın. Onlarsız, dosya yalnızca gizli olmayan ayarları tutar.