Μετάβαση στο περιεχόμενο

Διαμόρφωση

Αυτή η σελίδα καλύπτει τις μεταβλητές περιβάλλοντος του container, τις προσαρτήσεις που παρέχει το template, το αντίγραφο VM μέσω SSH, και τη ρύθμιση εκτός τόπου. Οι διαδρομές αποθετηρίου των αντιγράφων διαμορφώνονται μέσα στην εφαρμογή (Ρυθμίσεις, Αποθήκευση, Διαδρομές αντιγράφων), όχι μέσω μεταβλητών περιβάλλοντος.

Μεταβλητές περιβάλλοντος

Μεταβλητή Απαιτείται Περιγραφή
APP_KEY Ναι Δεκαεξαδικό μυστικό 32 byte (64 δεκαεξαδικοί χαρακτήρες) που χρησιμοποιείται για την παραγωγή του κωδικού του αποθετηρίου restic. Δημιουργήστε το με openssl rand -hex 32. Κρατήστε το ασφαλές: η απώλειά του καθιστά τα κρυπτογραφημένα αντίγραφα μη ανακτήσιμα.
LIBVIRT_HOST Για VMs και σύνολα δεδομένων ZFS Ο host Unraid που προσεγγίζεται μέσω SSH για το αντίγραφο VM (προεπιλογή host.docker.internal· το template προσυμπληρώνει ένα placeholder LAN-IP). Χρησιμοποιήστε τη LAN IP του Unraid σας, απαιτείται σε ένα προσαρμοσμένο δίκτυο br0.x. Χρησιμοποιείται και για αντίγραφα συνόλων δεδομένων ZFS (πεδίο προτύπου Host SSH: Address)· η τιμή κράτησης θέσης 192.168.x.x θεωρείται μη ορισμένη.
LIBVIRT_SSH_PORT Όχι Η θύρα SSH του host για το αντίγραφο VM (προεπιλογή 22). Πεδίο προτύπου Host SSH: Port, και για σύνολα δεδομένων ZFS.
LIBVIRT_SSH_USER Όχι Ο χρήστης SSH στον host για το αντίγραφο VM (προεπιλογή root). Πεδίο προτύπου Host SSH: User, και για σύνολα δεδομένων ZFS.
LIBVIRT_URI Όχι Πλήρες URI σύνδεσης libvirt, που χρησιμοποιείται αυτούσιο αντί να κατασκευάζεται ένα από τις τρεις μεταβλητές LIBVIRT_* παραπάνω (οι οποίες τότε αγνοούνται για το connection string). Χωρίς προεπιλεγμένη τιμή. Απαιτείται στο TrueNAS Scale, του οποίου το libvirtd ακούει σε ένα μη τυπικό socket που η μορφή του κατασκευασμένου string δεν μπορεί να εκφράσει: qemu+ssh://<user>@<truenas-host>/system?socket=/run/truenas_libvirt/libvirt-sock. Δείτε την ενότητα TrueNAS Scale του docs/vm-backup-ssh-setup.md. Αν είναι URI qemu+ssh://, κάθε μία από τις LIBVIRT_HOST, LIBVIRT_SSH_USER και LIBVIRT_SSH_PORT που δεν έχει οριστεί λαμβάνεται από αυτό, και για τις δικές του εντολές SSH του BombVault (μεταφορά NVRAM, σύνολα δεδομένων ZFS).
PORT Όχι Θύρα HTTP (προεπιλογή 3000· χρησιμοποιείται μόνο με HTTP_ONLY=true).
HTTPS_PORT Όχι Θύρα HTTPS (προεπιλογή 3443· το template τη δημοσιεύει 1:1, οπότε το WebUI απαντά στο https://<ip>:3443).
HTTP_ONLY Όχι Ορίστε true για να απενεργοποιήσετε τον αυτο-υπογεγραμμένο listener HTTPS και να εξυπηρετείτε μόνο απλό HTTP (για χρήση πίσω από έναν reverse proxy που τερματίζει το TLS).
BIND_HOST Όχι Η διεύθυνση στην οποία ακούει το WebUI (προεπιλογή 0.0.0.0, όλες οι διεπαφές). Αφήστε την κενή στο container, του οποίου οι δημοσιευμένες θύρες χρειάζονται όλες τις διεπαφές· το 127.0.0.1 ταιριάζει σε εκτέλεση εκτός Docker. Το healthcheck ρωτά την ίδια διεύθυνση.
TRUSTED_PROXY Όχι Διευθύνσεις ή εύρη CIDR, χωρισμένα με κόμμα, του αντίστροφου διακομιστή μεσολάβησης μπροστά από το BombVault (για παράδειγμα 192.168.20.11 ή 10.0.0.0/8). Μόνο από αυτά τα άλματα γίνεται πιστευτή η κεφαλίδα X-Forwarded-For, και τότε το φρένο συνδέσεων μετρά τις αποτυχίες ανά πραγματικό πελάτη αντί να βάζει όλους πίσω από τον μεσολαβητή στον ίδιο κουβά. Χωρίς ορισμό (προεπιλογή) δεν πιστεύεται κανείς: μια κεφαλίδα που γίνεται δεκτή χωρίς όρους θα άφηνε τον καθένα να διαλέγει τον δικό του κουβά.
HOST_SOURCE_ROOT Όχι Η διαδρομή host που προσαρτάται ως Host Data (προεπιλογή /mnt). Το BombVault μεταφράζει τις πηγές bind-mount που αναφέρει το Docker σε διαδρομές κάτω από αυτή την προσάρτηση. Αλλάξτε το μόνο αν προσαρτήσατε διαφορετική ρίζα host.
DATA_ROOT_SEGMENTS Όχι Ονόματα τμημάτων διαδρομής, χωρισμένα με κόμμα, που χαρακτηρίζουν μια πηγή bind-mount ως δεδομένα προς αντίγραφο (προεπιλογή appdata, σύμφωνα με τη σύμβαση /mnt/user/appdata/<container> του Unraid). Ένα bind mount ενός container επιλέγεται αυτόματα για αντίγραφο όταν ΟΠΟΙΟΔΗΠΟΤΕ από τα αναφερόμενα τμήματα εμφανίζεται ως πλήρες τμήμα διαδρομής στην πηγή host του· για παράδειγμα το DATA_ROOT_SEGMENTS=appdata,config παίρνει επιπλέον και ένα bind .../config. Δείτε Εντοπισμός πηγής αντιγράφου για τους άλλους, πάντα ενεργούς τρόπους με τους οποίους εντοπίζεται ο φάκελος δεδομένων ενός container.
PLATFORM Όχι Επιβάλλει την πλατφόρμα στην οποία το BombVault θεωρεί ότι εκτελείται, αντί να την ανιχνεύει αυτόματα: unraid, generic ή truenas (χωρίς προεπιλεγμένη τιμή· ανιχνεύει αυτόματα το Unraid αναζητώντας το δείκτη dockerMan κάτω από την προσάρτηση flash, αλλιώς generic· μια μη αναγνωρίσιμη τιμή επίσης πέφτει πίσω σε generic, με καταγραφή). Ορίστε το ρητά σε έναν γενικό host Docker ή στο TrueNAS Scale αντί να βασίζεστε στην αυτόματη ανίχνευση που λειτουργεί μόνο για Unraid· το γενικό αρχείο compose το κάνει αυτό. Αλλάζει τη σύμβαση εναλλακτικής λύσης appdata, τις προεπιλογές προορισμού επαναφοράς μεταξύ instances, και το αν επιχειρούνται καθόλου τα βήματα ειδοποίησης/συνοδευτικού πρόσθετου που αφορούν μόνο το Unraid (δείτε internal/platform).
BOMBVAULT_SELF_CONTAINER Όχι Το όνομα του ίδιου του container BombVault, ώστε να μη δημιουργεί ποτέ αντίγραφο (και άρα να μη σταματά) τον εαυτό του.
BACKUP_MAX_HOURS Όχι Οι μέγιστες ώρες πραγματικού χρόνου που μια μεμονωμένη εκτέλεση αντιγράφου μπορεί να κρατά το κλείδωμα του τομέα της πριν ακυρωθεί με τη βία (μια δικλείδα ώστε μια κολλημένη εκτέλεση να μη μπορεί να μπλοκάρει τον τομέα για πάντα). Κενό (η προεπιλογή) χρησιμοποιεί 48. Ανεβάστε το για πολύ μεγάλα ή αργά αντίγραφα cloud (μια εκτέλεση που ακυρώνεται στο όριο αποτυγχάνει με context deadline exceeded). Ορίστε 0 για να απενεργοποιήσετε εντελώς το όριο.
BACKUP_STALL_HOURS Όχι Ώρες που ένα αντίγραφο μπορεί να μην κάνει καμία απολύτως πρόοδο πριν ακυρωθεί. Κενό (η προεπιλογή) χρησιμοποιεί 2· ορίστε 0 για να μην ακυρώνεται ποτέ λόγω στασιμότητας. Είναι η λεπτότερη από τις δύο δικλείδες και συνήθως αυτή που ενεργοποιείται: παρακολουθεί αν συμβαίνει ακόμη κάτι και όχι πόση ώρα κρατά η εκτέλεση, οπότε ένα αργό αλλά υγιές αντίγραφο πολλών terabyte μένει ανενόχλητο, ενώ ένα κολλημένο σε κοινόχρηστο πόρο που δεν αποκρίνεται σταματά σε ώρες αντί για μέρες. Μετά από 30 λεπτά σιωπής καταγράφεται μια προειδοποίηση, πριν ακυρωθεί οτιδήποτε. Η σάρωση μετρά ως πρόοδος: το restic δεν γράφει κανένα byte όσο διατρέχει ένα μεγάλο δέντρο, και αυτή η φάση παρακολουθείται μέσω των συνόλων αρχείων και byte του και όχι μέσω των byte που γράφτηκαν. Οι δύο μεταβλητές είναι ανεξάρτητες, και το BACKUP_MAX_HOURS εξακολουθεί να οριοθετεί τις φάσεις μετά το ίδιο το αντίγραφο (διατήρηση, στατιστικά, αντίγραφο εκτός τόπου), όπου δεν υπάρχουν μετρητές για παρακολούθηση.
DB_DUMP_MAX_HOURS Όχι Ώρες που μπορεί να τρέξει ένα αυτόματο dump βάσης δεδομένων πριν σταματήσει. Κενό (η προεπιλογή) σημαίνει 6· επιτρέπονται τιμές από 1 έως 48, και το όριο μένει μία ώρα κάτω από το BACKUP_MAX_HOURS (στο μισό του, όταν αυτό είναι κάτω από δύο ώρες), ώστε ένα μακρύ dump να κόβεται από το δικό του όριο και να αναφέρεται έτσι, αντί να παρασύρει μαζί του το αντίγραφο. Ένα dump που δεν προχωρά άλλο σταματά νωρίτερα, μετά από BACKUP_STALL_HOURS. Ένα σταματημένο dump αποτυγχάνει μόνο του και το αντίγραφο του container συνεχίζει. Στο Unraid προσθέτετε τη μεταβλητή στο container του BombVault με Add another Path, Port, Variable.
TZ Όχι Ζώνη ώρας για τον χρονοπρογραμματιστή (για παράδειγμα Europe/Berlin). Αν δεν οριστεί, όλα τα χρονοδιαγράμματα εκτελούνται σε UTC: ένα χρονοδιάγραμμα στις 02:30 ξεκινά τότε στις 02:30 UTC και όχι στην τοπική ώρα. Στο Unraid δεν το ορίζετε ποτέ μόνοι σας: το σύστημα περνά τη δική του ζώνη ώρας σε κάθε κοντέινερ. Το αρχείο καταγραφής εκκίνησης αναφέρει ποια ζώνη προέκυψε τελικά. Μια ζώνη με θερινή ώρα παραλείπει μία εκτέλεση την άνοιξη και εκτελεί μία δύο φορές το φθινόπωρο, ενώ η UTC δεν κάνει τίποτα από τα δύο, αλλά μετατοπίζεται κατά μία ώρα σε σχέση με το ρολόι σας δύο φορές τον χρόνο.

Προσαρτήσεις

Προσαρτήστε το Docker socket, το flash (/boot) και τη ρίζα Host Data (/mnt) όπως φαίνεται στο template CA. Οι πηγές και οι προορισμοί των αντιγράφων βρίσκονται και οι δύο κάτω από το Host Data, και προσαρτάται slave ώστε ένας απομακρυσμένος κοινόχρηστος πόρος που προσαρτάται αφού ξεκινήσει το container (για παράδειγμα κάτω από το /mnt/remotes) να γίνεται ορατός χωρίς επανεκκίνηση.

Τα αντίγραφα συνόλων δεδομένων ZFS χρειάζονται κι αυτά αυτή τη λειτουργία: ο host προσαρτά το στιγμιότυπο ενός συνόλου μόνο αφού έχει ξεκινήσει το container. Δείτε Σύνολα δεδομένων ZFS.

Οι διαδρομές αποθετηρίου των αντιγράφων έχουν προεπιλογή /mnt/user/bombvault/{container,vms,flash,config,files,zfs}, που δημιουργούνται στο πρώτο αντίγραφο. Αλλάξτε την τοποθεσία οποιαδήποτε στιγμή στις Ρυθμίσεις, Αποθήκευση, Διαδρομές αντιγράφων. Κάθε πεδίο διαδρομής έχει επίσης έναν ενσωματωμένο διακόπτη Τοπικό / Απομακρυσμένο: μια διαδρομή μπορεί να είναι απομακρυσμένο αποθετήριο restic (s3:..., rest:..., sftp:..., rclone:...) αντί για τοπικό φάκελο, οπότε το αντίγραφο πηγαίνει κατευθείαν εκεί χωρίς ξεχωριστό τοπικό αντίγραφο· δείτε Απομακρυσμένα κύρια αποθετήρια.

Έλεγχος ενσωμάτωσης host

Ανοίξτε το /spike στο περιβάλλον ιστού αφού ξεκινήσει το container. Ανιχνεύει κάθε προσάρτηση και CLI (Docker socket, libvirt, restic, qemu-img, rclone) και αναφέρει τυχόν κομμάτια που λείπουν.

Αναγνώριση των πηγών αντιγράφου ασφαλείας

Για κάθε container το BombVault επιλέγει μόνο του ποιες προσαρτήσεις bind και ποιοι επώνυμοι τόμοι μπαίνουν στο αντίγραφο. Μια διαδρομή λαμβάνεται μόλις ισχύσει οποιοδήποτε από τα παρακάτω (το αποτέλεσμα μπορείτε πάντα να το παρακάμψετε ανά container στην ενότητα Φάκελοι αντιγράφων του):

  • Ταύτιση με τμήμα της ρίζας δεδομένων: η πηγή του bind στον host περιέχει ένα από τα τμήματα του DATA_ROOT_SEGMENTS ως πλήρες συστατικό διαδρομής (εξ ορισμού μόνο το appdata).
  • Οι επώνυμοι τόμοι του Docker περιλαμβάνονται πάντα, επειδή δεν έχουν αναλώσιμο αντίστοιχο και άρα δεν υπάρχει τίποτα να φιλτραριστεί, αλλά μόνο όταν η πραγματική διαδρομή αποθήκευσης του τόμου στον host είναι η ίδια προσβάσιμη μέσω της προσάρτησης Host Data, ακριβώς όπως κάθε άλλη διαδρομή host που κρατά το BombVault. Ο προεπιλεγμένος οδηγός τοπικών τόμων τοποθετεί έναν τόμο κάτω από τη ρίζα δεδομένων του ίδιου του δαίμονα, δηλαδή στο /var/lib/docker/volumes/<όνομα>/_data εφόσον δεν έχει αλλάξει (ελέγξτε με docker info -f '{{.DockerRootDir}}'). Αυτό το σημείο ΔΕΝ καλύπτεται από τη στενή προσάρτηση Host Data ενός μόνο καταλόγου που χρησιμοποιεί εξ ορισμού το γενικό docker-compose.yml. Ένας μη προσβάσιμος τόμος παραλείπεται σιωπηλά, δεν είναι σφάλμα. Για να κρατηθούν πράγματι οι επώνυμοι τόμοι σε έναν γενικό host, στρέψτε το Host Data (και το HOST_SOURCE_ROOT) σε έναν κοινό γονικό κατάλογο που καλύπτει και τη ρίζα δεδομένων του Docker: ο συμβιβασμός περιγράφεται στο σχόλιο Host Data του αρχείου compose (το Unraid το παρακάμπτει προσαρτώντας για τον ίδιο λόγο ολόκληρο το /mnt, τη δική του καθολική σύμβαση ανώτατου επιπέδου).
  • Κατάλογος έργου του Docker Compose: αν το container φέρει τη συνηθισμένη ετικέτα com.docker.compose.project.working_dir (την βάζει αυτόματα το docker compose up), προστίθεται και αυτός ο κατάλογος, ανεξάρτητα από το αν κάποιο bind ταίριαξε με τμήμα της ρίζας δεδομένων.
  • Παράκαμψη με την ετικέτα bombvault.data: βάλτε στο container την ετικέτα bombvault.data=true για να συμπεριληφθούν ΟΛΕΣ οι προσαρτήσεις bind του, για μια διάταξη που δεν πιάνει καμία από τις δύο συμβάσεις παραπάνω (για παράδειγμα ένα μοναδικό bind /srv/plex/config χωρίς έργο Compose). Κάθε μη κενή τιμή εκτός του false μετρά ως αληθής· απούσα ετικέτα ή bombvault.data=false δεν αλλάζει τίποτα.
  • Ετικέτα bombvault.dbdump: βάλτε bombvault.dbdump=false σε ένα container για να κλείσετε το αυτόματο dump της βάσης του (0, no και off κάνουν το ίδιο), ή ονομάστε τη μηχανή (postgres, mysql, mariadb) για να παίρνεται dump από ένα container που το BombVault δεν αναγνωρίζει από μόνο του. Η ετικέτα υπερισχύει του διακόπτη στην κάρτα του container, που στο Unraid είναι ο συνηθισμένος δρόμος.

Μοντέλο ασφαλείας

Έλεγχος του host ισοδύναμος με root

Μέσω του Docker socket το BombVault μπορεί να διακόψει, να αφαιρέσει και να αναδημιουργήσει containers και να διαβάσει/γράψει appdata, και για το αντίγραφο VM συνδέεται στον host μέσω SSH (qemu+ssh://, root εξ ορισμού) για να εκτελέσει virsh. Όποιος μπορεί να φτάσει στο περιβάλλον ιστού του έχει ουσιαστικά root στον host.

  • Προαιρετική προστασία με συνθηματικό (Ρυθμίσεις, Ασφάλεια): ορίστε συνθηματικό για να απαιτείται σύνδεση, καθαρίστε το για απενεργοποίηση. Ανενεργή από προεπιλογή, για χρήση σε έμπιστο τοπικό δίκτυο. Το συνθηματικό αποθηκεύεται με Argon2id πάνω σε τιμή πιπερωμένη με το APP_KEY, οπότε ένα αντιγραμμένο /config δεν αξίζει τίποτα χωρίς το κλειδί και είναι αργό να επιτεθεί κανείς με αυτό. Ένα νέο συνθηματικό χρειάζεται τουλάχιστον 12 χαρακτήρες· ένα υπάρχον μικρότερο συνεχίζει να λειτουργεί μέχρι να αλλάξει. Οι συνεδρίες υπογράφονται (HMAC από το APP_KEY) και η αλλαγή συνθηματικού τις ακυρώνει· οι συνδέσεις περιορίζονται σε πέντε αποτυχίες ανά λεπτό ανά πελάτη.
  • Ταυτοποίηση δύο παραγόντων (Ρυθμίσεις): χρονικός κωδικός από εφαρμογή ταυτοποίησης επιπλέον του συνθηματικού, μαζί με οκτώ κωδικούς ανάκτησης μιας χρήσης που δίνονται μία φορά κατά την ενεργοποίηση. Το κοινό μυστικό αποθηκεύεται κρυπτογραφημένο με το APP_KEY, και η απενεργοποίηση απαιτεί τρέχοντα κωδικό.
  • Κλειδιά πρόσβασης (WebAuthn): έχουν δική τους κάρτα μόλις οριστεί συνθηματικό και λειτουργούν δίπλα στο συνθηματικό, ποτέ στη θέση του, οπότε η αφαίρεση όλων των κλειδιών πρόσβασης δεν κλειδώνει κανέναν έξω. Χρειάζονται πραγματικό όνομα domain και πιστοποιητικό που εμπιστεύεται το πρόγραμμα περιήγησης. Η προεπιλογή https://<ip>:3443 είναι ακριβώς αυτό που απορρίπτει το WebAuthn, και η κάρτα το λέει αντί να προσφέρει ένα κουμπί που θα αποτύχει.
  • Οι αλλαγές θέλουν JSON. Ένα αίτημα που αλλάζει κάτι πρέπει να στέλνει Content-Type: application/json και δεν πρέπει να έχει σημανθεί από το πρόγραμμα περιήγησης ως cross-site, ώστε μια σελίδα άλλου ιστότοπου να μην μπορεί να βάλει το πρόγραμμα περιήγησής σας να αλλάξει ρυθμίσεις σε μια διεύθυνση του τοπικού δικτύου. Ένα script που χειρίζεται το API στέλνει αυτή την κεφαλίδα· οτιδήποτε άλλο απορρίπτεται με 415.
  • Επειδή η πύλη είναι προαιρετική, όταν δεν έχει οριστεί όλο το περιβάλλον ιστού και το API (συμπεριλαμβανομένης της ρύθμισης εκτός τόπου, των διαδρομών tamper-test και του κιτ ανάκτησης) είναι προσβάσιμα από οποιονδήποτε μπορεί να φτάσει στη θύρα. Ενεργοποιήστε την πύλη μόλις χρησιμοποιηθούν εκτός τόπου, αμετάβλητα αντίγραφα ή κρυπτογράφηση.
  • Εκτελείτε το BombVault μόνο σε ένα αξιόπιστο, μη εκτεθειμένο δίκτυο. Για απομακρυσμένη πρόσβαση τοποθετήστε το πίσω από έναν reverse proxy που προσθέτει αυθεντικοποίηση και TLS. Οι αποκρίσεις φέρουν βασικές κεφαλίδες ασφαλείας (CSP, nosniff, X-Frame-Options, Referrer-Policy).
  • Πίσω από αντίστροφο μεσολαβητή κάθε αίτημα φέρει τη διεύθυνση του μεσολαβητή, οπότε χωρίς TRUSTED_PROXY το φρένο μετρά όλους τους πελάτες μαζί και οι αποτυχίες ενός επιτιθέμενου κλειδώνουν έξω κι εσάς. Δηλώστε τον μεσολαβητή στο TRUSTED_PROXY για να επιστρέψει η μέτρηση ανά πελάτη.
  • Ένα reverse proxy μπροστά από το BombVault πρέπει να περνά την κεφαλίδα Authorization ή X-API-Key στο /mcp και δεν πρέπει να κάνει buffering στις απαντήσεις, αλλιώς οι βοηθοί δεν μπορούν να συνδεθούν. Δείτε Διακομιστής MCP.
  • Το τελικό σημείο MCP /mcp απαντά 404 μέχρι να υπάρξει κλειδί ή να ενεργοποιηθεί η σύνδεση μέσω OAuth, και ζητά από κάθε πελάτη το κλειδί ή το token του ακόμη κι όταν το συνθηματικό σύνδεσης είναι ανενεργό· καμία διεύθυνση δεν εξαιρείται, ούτε καν το localhost. Δεν έχει εργαλεία επαναφοράς ή διαγραφής, και η επαναφορά ενός αντιγράφου διαμόρφωσης ανακαλεί όλα τα κλειδιά. Δείτε Διακομιστής MCP.
  • Με HTTP_ONLY=true το cookie συνεδρίας χάνει τη σημαία Secure του (αναγκαστικά, για να λειτουργεί μέσω απλού HTTP), οπότε ενεργοποιήστε τον κωδικό πίσω από έναν proxy που τερματίζει το TLS μόνο αν έχει σημασία η εμπιστευτικότητα.
  • Η σύνδεση SSH του αντιγράφου VM εμπιστεύεται το κλειδί host στην πρώτη σύνδεση (TOFU) και το καρφιτσώνει έκτοτε. Επαληθεύστε το κλειδί του host εκτός ζώνης αν η διαδρομή container-προς-host σας δεν είναι αξιόπιστη.
  • Τα αντίγραφα κρυπτογραφούνται από το restic όταν η κρυπτογράφηση είναι ενεργή (Ρυθμίσεις· ενεργή εξ ορισμού), με το κλειδί παραγόμενο από το APP_KEY.

Διακομιστής MCP

Ο διακομιστής MCP δεν χρειάζεται καμία μεταβλητή περιβάλλοντος. Τον ενεργοποιείτε δημιουργώντας ένα κλειδί στις Ρυθμίσεις, Ενσωματώσεις, Διακομιστής MCP, και απαντά στο /mcp στην ίδια θύρα με το web περιβάλλον (για παράδειγμα https://192.168.1.10:3443/mcp). Χωρίς ενεργό κλειδί, αυτή η διαδρομή απαντά 404. Πελάτες, πιστοποιητικά και όρια περιγράφονται στη σελίδα Διακομιστής MCP.

Αντίγραφο VM μέσω SSH

Το BombVault δημιουργεί αντίγραφα των KVM/libvirt VMs χωρίς να προσαρτά καμία διαδρομή libvirt. Εκτελεί virsh στον host μέσω SSH (qemu+ssh://), οπότε δεν μπορεί ποτέ να επηρεάσει τον VM Manager του host σας.

Η προσάρτηση του socket του libvirt του host μέσα σε ένα κοντέινερ είναι εύθραυστη στο Unraid: αυτές τις διαδρομές τις διαχειρίζεται ο VM Manager, και η εναλλαγή του "Enable VMs" μπορεί να αφήσει το libvirt σε κατάσταση που δεν μπορεί να ξεκινήσει. Το κλειδί SSH δίνει δικαιώματα root στον host, δηλαδή το ίδιο επίπεδο εμπιστοσύνης με το Docker socket που ήδη χρησιμοποιεί το BombVault.

Γρήγορη ρύθμιση:

  1. Ρυθμίσεις, Ενσωματώσεις, SSH κεντρικού συστήματος: αντιγράψτε το εμφανιζόμενο δημόσιο κλειδί.
  2. Προσαρτήστε το στο /root/.ssh/authorized_keys του Unraid (επίσης διατηρείται στο flash ώστε να επιβιώνει των επανεκκινήσεων).
  3. Κάντε κλικ στο Δοκιμή σύνδεσης.

Το template προσθέτει --add-host=host.docker.internal:host-gateway ώστε το container να μπορεί να φτάσει τον host. Ορίστε το LIBVIRT_HOST στη LAN IP του Unraid σας αν αυτό το όνομα δεν επιλύεται (για παράδειγμα όταν το container εκτελείται σε ένα προσαρμοσμένο δίκτυο br0.x). Αν αλλάξατε τη θύρα SSH του Unraid, ορίστε το LIBVIRT_SSH_PORT αναλόγως. Τα ζωντανά στιγμιότυπα χρειάζονται επιπλέον τον qemu guest agent στη VM και τον δίσκο στο /mnt/cache (όχι στο /mnt/user).

Πλήρης οδηγός ρύθμισης VM και δικτύου

Ο πλήρης βήμα-προς-βήμα οδηγός (ενεργοποίηση SSH, μόνιμη εξουσιοδότηση κλειδιού, δρομολόγηση προσαρμοσμένου δικτύου και VLAN, μέθοδος ανά VM και αντιμετώπιση προβλημάτων από την πλευρά του host) βρίσκεται στο docs/vm-backup-ssh-setup.md στο GitHub.

Ρύθμιση εκτός τόπου

Ρυθμίστε ένα αντίγραφο εκτός τόπου στη σελίδα Ρυθμίσεις, Εκτός τόπου. Δείτε Εκτός τόπου & ανάκτηση για την πλήρη ροή εργασίας (αμετάβλητο/append-only, δοκιμή αλλοίωσης και δοκιμές DR). Εν συντομία:

  • Backends: SMB/CIFS και NFS (προσαρτήστε τον κοινόχρηστο πόρο και κατευθύνετε μια διαδρομή αντιγράφων σε αυτόν), εγγενή backend του restic χωρίς rclone (s3:..., rest:http://host:8000/repo, sftp:user@host:/repo), ή οποιοδήποτε remote rclone (rclone:<remote>:<bucket>/path). Το Backblaze B2 δεν έχει εγγενές backend εδώ: προσεγγίζεται μέσω του τελικού σημείου S3 του (s3:https://s3.<region>.backblazeb2.com/<bucket>/<path>), με το αναγνωριστικό κλειδιού και το κλειδί εφαρμογής ως διαπιστευτήρια S3.
  • Τα κοινόχρηστα διαπιστευτήρια cloud αποθηκεύονται κρυπτογραφημένα στις Ρυθμίσεις, Πρόσβαση cloud, Κοινόχρηστα διαπιστευτήρια cloud.
  • Οι στόχοι SSH δεν χρειάζονται τίποτα εγκατεστημένο στην απέναντι πλευρά. Το sftp: χρειάζεται μόνο έναν διακομιστή SSH. Προσθέστε το δημόσιο κλειδί από Ρυθμίσεις, Ενσωματώσεις, SSH κεντρικού συστήματος (επίσης στο /config/ssh/id_ed25519.pub) στο ~/.ssh/authorized_keys του χρήστη στόχου.
  • Αντίγραφο εκτός τόπου: το BombVault αναπαράγει νέα στιγμιότυπα με restic copy σε βάση βέλτιστης προσπάθειας, επιπλέον ενός (συνήθως τοπικού) κύριου αποθετηρίου. Κάθε τομέας έχει το δικό του χρονοδιάγραμμα εκτός τόπου, συν ένα κουμπί Αναπαραγωγή τώρα.
  • Πολλαπλοί στόχοι εκτός τόπου ανά τομέα: κάθε τομέας μπορεί να αναπαράγει σε πολλούς προορισμούς εκτός τόπου ταυτόχρονα. Προσθέστε επιπλέον στόχους στις Ρυθμίσεις, Εκτός τόπου, τον καθένα με το δικό του αποθετήριο, κλάση αποθήκευσης S3, σημαία append-only, διατήρηση και προϋπολογισμό ανάπτυξης· όλοι αναπαράγουν στο χρονοδιάγραμμα εκτός τόπου εκείνου του τομέα. Μια υπάρχουσα μεμονωμένη ρύθμιση εκτός τόπου μεταφέρεται ως ο πρώτος στόχος.
  • Προορισμοί: οι προορισμοί εκτός τόπου ρυθμίζονται μία φορά στις Ρυθμίσεις, Εκτός τόπου, Προορισμοί, μέσα από έναν οδηγό που παραθέτει κάθε υποστηριζόμενη υπηρεσία. Δείτε Προορισμοί.
  • Τοποθέτηση ανά στοιχείο: κάθε κοντέινερ, VM και σύνολο φακέλων ανάβει το Τοπικό και τους στόχους που παίρνουν τα αντίγραφά του. Οι Ρυθμίσεις, Αποθήκευση, Προεπιλογές τοποθέτησης το ορίζουν ανά τομέα για τα στοιχεία χωρίς δική τους επιλογή. Δείτε Τοποθέτηση ανά στοιχείο.
  • Διατήρηση ανά πηγή: τόσο η τοπική όσο και η πολιτική εκτός τόπου βρίσκονται στις Ρυθμίσεις, Διατήρηση (αφήστε την πολιτική εκτός τόπου ολόκληρη μηδέν για να μην κλαδεύονται ποτέ αυτόματα τα στιγμιότυπα εκτός τόπου). Οι κάρτες Τοπική διατήρηση και Διατήρηση εκτός τόπου έχουν η καθεμία Κανόνες διατήρησης ανά πηγή, που δίνουν σε κοντέινερ, VM, flash, φακέλους, ZFS ή στο αυτο-αντίγραφο δικούς τους κανόνες διατήρησης, για τα τοπικά τους αντίγραφα και για το repo τους εκτός τόπου. Μια πηγή χωρίς δικούς της κανόνες ακολουθεί τους κοινούς, και η διατήρηση μετά από κάθε αντίγραφο, η αντιγραφή εκτός τόπου, ο χειροκίνητος καθαρισμός και η προεπισκόπηση διατήρησης χρησιμοποιούν τους κανόνες της πηγής στην οποία δουλεύουν. Οι πρόσθετοι προορισμοί εκτός τόπου κρατούν τους κανόνες που έχουν οριστεί γι' αυτούς στις Ρυθμίσεις, Εκτός τόπου.
  • Όρια εύρους ζώνης: περιορίστε τον ρυθμό αποστολής/λήψης του restic στις Ρυθμίσεις, Εκτός τόπου.
  • Πρώτα το streaming: στις Ρυθμίσεις, Εκτός τόπου, επίλεξε τους διακομιστές πολυμέσων (τα Plex, Jellyfin και Emby προεπιλέγονται από το όνομα της εικόνας), τον ρυθμό αποστολής από τον οποίο ένας θεωρείται ότι κάνει streaming, το όριο αποστολής όσο κάνει streaming και πόσο μετά από ένα stream επιστρέφει το κανονικό όριο.
  • Κλάση ψυχρής και αρχειακής αποθήκευσης (S3): για ένα εγγενές αποθετήριο S3 εκτός τόπου, επιλέξτε ένα επίπεδο αναγνώσιμο κατά την επαναφορά (Standard, Standard-IA, One Zone-IA, Intelligent-Tiering, Glacier Instant Retrieval). Τα remotes rclone ορίζουν την κλάση τους στη διαμόρφωση rclone.
  • Απομακρυσμένο κύριο αντί για τοπικό: η ίδια η διαδρομή αντιγράφων ενός τομέα μπορεί να είναι ένα από τα παραπάνω backend, χωρίς τοπικό αντίγραφο και χωρίς βήμα αναπαραγωγής. Τον ενσωματωμένο διακόπτη Τοπικό/Απομακρυσμένο και τις ρυθμίσεις ασφαλείας του (εύρος ζώνης, append-only, προϋπολογισμός ανάπτυξης) τα περιγράφει η ενότητα Απομακρυσμένα κύρια αποθετήρια.

Ανωμαλίες

Η ανίχνευση ανωμαλιών ρυθμίζεται στην κάρτα Ανωμαλίες στο Ρυθμίσεις, Ακεραιότητα. Κάθε στοιχείο ελέγχου αποθηκεύεται μόλις το αλλάξετε, και τα τρία κάτω από τον διακόπτη κρύβονται όσο η ανίχνευση είναι απενεργοποιημένη.

Ρύθμιση Προεπιλογή Τι κάνει
Εντοπισμός ανωμαλιών Ενεργό Συγκρίνει κάθε αντίγραφο με το ιστορικό του στοιχείου. Απενεργοποιημένο, δεν ελέγχεται τίποτα νέο και η καταχώριση Ανωμαλίες φεύγει από την πλαϊνή στήλη· η κάρτα εξακολουθεί να παραπέμπει σε παλαιότερα ευρήματα.
Ευαισθησία Ισορροπημένη Η Αυστηρή αναφέρει και μικρότερες αλλαγές, η Επιεικής μόνο μεγάλες.
Αποστολή ειδοποίησης για Μόνο κρίσιμα ευρήματα Η χαμηλότερη σοβαρότητα που στέλνει μήνυμα μέσω των καναλιών που ρυθμίστηκαν στο Ειδοποιήσεις. Οι επαναλαμβανόμενες αποτυχίες αντιγράφων και dump και οι αποτυχημένοι προγραμματισμένοι έλεγχοι επαναφοράς στέλνουν ήδη δικό τους μήνυμα και δεν στέλνονται δύο φορές.
Διατήρηση παλιών αντιγράφων όταν μια πηγή συρρικνώνεται απότομα ή ξαναγράφεται Ενεργό Όσο ένα στοιχείο έχει ανοιχτό εύρημα για σχεδόν άδεια πηγή, ισχυρή συρρίκνωση ή επαναποθήκευση των περισσότερων δεδομένων, η διατήρηση και ο καθαρισμός αφήνουν ήσυχα τα παλιά του αντίγραφα. Επιβεβαιώστε το εύρημα ή σημειώστε το ως αναμενόμενο για να τα απελευθερώσετε.

Κάθε στοιχείο μπορεί να έχει δική του ευαισθησία και δικό του ελάχιστο ειδοποίησης. Ρυθμίστε τα στη σελίδα Ανωμαλίες, όπου ένα στοιχείο με ανοιχτά ευρήματα τα έχει στην Παρακολούθηση της κάρτας του και κάθε άλλο στοιχείο τα ανοίγει από την κάρτα Τίποτα ανοιχτό, ή στο πάνελ του ίδιου του στοιχείου: στην ενότητα φακέλων ενός container και στις ρυθμίσεις μιας VM (και τα δύο σε προχωρημένη λειτουργία), στον επεξεργαστή φακέλων ενός συνόλου φακέλων και στις σελίδες Flash και Αυτο-αντίγραφο. Για ένα στοιχείο ZFS βρίσκονται στον επεξεργαστή του στη σελίδα ZFS και ισχύουν για κάθε σύνολο δεδομένων του δέντρου του.

Φορητές ρυθμίσεις (εξαγωγή και εισαγωγή)

Η κάρτα Εξαγωγή / εισαγωγή ρυθμίσεων στη σελίδα Ρυθμίσεις, Σύστημα γράφει όλη τη διαμόρφωση BombVault σας (ρυθμίσεις τομέων, στόχους εκτός τόπου, χρονοδιαγράμματα, διατήρηση, ειδοποιήσεις) σε ένα φορητό αρχείο JSON που μπορείτε να εισάγετε σε μια άλλη εγκατάσταση, ώστε η μετακόμιση σε νέο μηχάνημα ή η κλωνοποίηση μιας εγκατάστασης να μη σημαίνει ότι πρέπει να τα εισάγετε όλα ξανά με το χέρι. Η εισαγωγή δείχνει μια προεπισκόπηση και ζητά επιβεβαίωση, και δεν αγγίζει ποτέ τα δεδομένα ή το ιστορικό των αντιγράφων σας.

Η εξαγωγή μπορεί να περιέχει διαπιστευτήρια

Επιλέγετε εσείς αν θα συμπεριλάβετε τα διαπιστευτήρια εκτός τόπου, ειδοποιήσεων και του διακομιστή MQTT στο αρχείο. Με τα διαπιστευτήρια συμπεριλαμβανόμενα, η εξαγωγή είναι εξίσου ευαίσθητη με το κιτ ανάκτησής σας, οπότε αποθηκεύστε την σε ασφαλές μέρος. Χωρίς αυτά, το αρχείο περιέχει μόνο μη-μυστικές ρυθμίσεις.