Ξεκινώντας¶
Αυτή η σελίδα σας οδηγεί από ένα φρέσκο μηχάνημα Unraid μέχρι το πρώτο σας αντίγραφο ασφαλείας.
Απαιτήσεις¶
| Απαίτηση | Σημειώσεις |
|---|---|
| Unraid 6.12+ | Παλαιότερες εκδόσεις δεν έχουν δοκιμαστεί. Το Unraid είναι η κύρια πλατφόρμα, αλλά το BombVault τρέχει επίσης σε απλό host Docker και σε TrueNAS Scale (δείτε Γενικός host Docker). |
| Τοποθεσία αποθετηρίου restic | Μια τοπική διαδρομή (συνιστάται: το array ή η cache σας), SMB, NFS, ή οποιοδήποτε backend rclone. |
| Docker socket | Προσαρτάται αυτόματα από το template (/var/run/docker.sock). |
Unraid flash (/boot) |
Προσαρτάται ολόκληρο αυτόματα από το template (/boot στο /host/boot). Τροφοδοτεί το αντίγραφο του flash και επιτρέπει σε ένα επαναφερμένο container να εμφανιστεί ξανά ως κανονική, επεξεργάσιμη εφαρμογή Unraid. |
| KVM VMs (προαιρετικά) | Το αντίγραφο των VM επικοινωνεί με το libvirt μέσω SSH, χωρίς προσάρτηση libvirt. Ρυθμίστε το στις Ρυθμίσεις (δείτε Διαμόρφωση). |
| Σύνολα δεδομένων ZFS (προαιρετικά) | Η ίδια σύνδεση SSH με τα αντίγραφα VM, zfs στον host, και Host Data αντιστοιχισμένο ως /mnt με λειτουργία πρόσβασης Read/Write - Slave, την προεπιλογή του template. Δείτε Σύνολα δεδομένων ZFS. |
| Εφαρμογή Android (προαιρετική) | Android 10 ή νεότερο, σε σύζευξη με διακομιστές στην έκδοση 9.7.0 ή νεότερη. Δείτε Εφαρμογή Android. |
Εγκατάσταση στο Unraid¶
Ο ευκολότερος δρόμος είναι μέσω Community Applications.
- Ανοίξτε την καρτέλα Apps στο Unraid.
- Αναζητήστε το BombVault.
- Κάντε κλικ στο Install, ορίστε τις απαιτούμενες μεταβλητές (παρακάτω) και εφαρμόστε.
Χειροκίνητη εγκατάσταση template
Αν προτιμάτε να προσθέσετε το template με το χέρι:
- Πηγαίνετε στο Docker, Add Container, Template repositories και προσθέστε:
- Αναζητήστε το BombVault στα Templates.
- Ορίστε τις απαιτούμενες μεταβλητές και κάντε κλικ στο Apply.
Γενικός host Docker¶
Δεν είστε σε Unraid; Το BombVault τρέχει και ως απλό container σε οποιονδήποτε host Docker (σε αυτό στηρίζεται και η υποστήριξη containers στο TrueNAS Scale, πριν αποκτήσει δική του καταχώριση στον εκεί κατάλογο εφαρμογών).
- Πάρτε από το αποθετήριο το έτοιμο προς επεξεργασία
deploy/docker-compose.generic.yml. - Ορίστε το
APP_KEY(δείτε παρακάτω) και στρέψτε τον τόμο Host Data στην πραγματική σας ρίζα δεδομένων: τα σχόλια του αρχείου καλύπτουν και τα δύο. docker compose up -d, μετά ανοίξτε τοhttps://<ip-host>:3443/.
Τι διαφέρει από το Unraid:
- Δεν υπάρχει τομέας flash/USB. Δεν υπάρχει στικάκι εκκίνησης για αποτύπωση ή επαναφορά, οπότε ο τομέας Flash στις ρυθμίσεις δεν έχει εδώ τίποτα να κάνει. Στη θέση του, ο τομέας Φάκελοι προσφέρει την πρόταση ενός κλικ Προσθήκη προρύθμισης: διαμόρφωση συστήματος host (ένα αρχικό σύνολο αρχείων
/etcπου ελέγχετε και τροποποιείτε πριν το αποθηκεύσετε), ως πρακτικό γενικό αντίστοιχο. - Δεν υπάρχουν εγγενείς ειδοποιήσεις Unraid. Τα δικά του κανάλια ειδοποιήσεων του BombVault (webhook, ειδοποιήσεις αποτυχίας εκτός έδρας κ.ο.κ.) δουλεύουν κανονικά· παραλείπεται μόνο η αποστολή στο ίδιο το σύστημα ειδοποιήσεων του Unraid, αφού τέτοιο σύστημα εδώ δεν υπάρχει.
- Το αντίγραφο εικονικών μηχανών είναι προαιρετικό και χρειάζεται ξεχωριστό host libvirtd προσβάσιμο μέσω SSH. Δείτε το σχολιασμένο μπλοκ στο αρχείο compose. Ένας γενικός host Docker δεν φέρνει από μόνος του διαχείριση εικονικών μηχανών.
- Χωρίς widget στον πίνακα ελέγχου. Το BombVault Widget είναι πρόσθετο του Unraid, οπότε κι αυτό το βήμα παραλείπεται.
- Εύρεση των δεδομένων ενός container. Χωρίς τη σύμβαση
appdataτου Unraid, ο φάκελος δεδομένων ενός container βρίσκεται από τα τμήματα στοDATA_ROOT_SEGMENTS, τους επώνυμους τόμους του Docker, τον κατάλογο εργασίας ενός project Compose και την ετικέταbombvault.data(δείτε Αναγνώριση των πηγών αντιγράφου ασφαλείας). Οι επώνυμοι τόμοι και η προρύθμιση/etcφτάνουν μόνο σε διαδρομές μέσα στην προσάρτηση Host Data, οπότε κατευθύνετε το Host Data σε έναν κοινό γονικό κατάλογο που καλύπτει και τη ρίζα δεδομένων του Docker. PLATFORM. Ορίστε τη σεgenericήtruenas. Αν δεν οριστεί, το BombVault αναγνωρίζει το Unraid από το δικό του σημάδι στην προσάρτηση του flash και αντιμετωπίζει οτιδήποτε άλλο ως γενικό host, και τα βήματα που αφορούν μόνο το Unraid παραλείπονται αντί να επιχειρούνται και να αποτυγχάνουν.
Το TrueNAS Scale ακολουθεί τον ίδιο δρόμο μέσω compose· μια καταχώριση καταλόγου είναι έτοιμη στο αποθετήριο, αλλά δεν έχει υποβληθεί ακόμη. Το αντίγραφο VM εκεί χρειάζεται LIBVIRT_URI, επειδή το libvirtd του TrueNAS ακούει σε δικό του socket (/run/truenas_libvirt/libvirt-sock), που οι τρεις μεταβλητές LIBVIRT_* δεν μπορούν να εκφράσουν (δείτε Διαμόρφωση). Πόσο έχει επαληθευτεί: το αντίγραφο zvol εκτελέστηκε σε πραγματικό μηχάνημα TrueNAS Scale, σε zvol συνδεδεμένο σε VM που έτρεχε, και τα zfs snapshot, zfs send, restic και zfs receive το πήγαν και το έφεραν πίσω byte προς byte χωρίς διαφορά. Μια πλήρης επαναφορά που την οδηγεί το ίδιο το BombVault δεν έχει εκτελεστεί ακόμη σε υλικό TrueNAS, και εκείνο το zvol ήταν αραιό (sparse), οπότε η απόδοση σε πολλά gigabyte δεν έχει δοκιμαστεί. Δοκιμάστε μια επαναφορά εκεί πριν βασιστείτε σε αυτό.
Η μία απαιτούμενη ρύθμιση¶
Η μόνη μεταβλητή που πρέπει να ορίσετε είναι το APP_KEY, ένα δεκαεξαδικό μυστικό 32 byte (64 δεκαεξαδικοί χαρακτήρες) που χρησιμοποιείται για την παραγωγή του κωδικού του αποθετηρίου restic.
Δημιουργήστε ένα σε οποιοδήποτε μηχάνημα:
Επικολλήστε το αποτέλεσμα στο πεδίο APP_KEY του template (Unraid) ή στη μεταβλητή περιβάλλοντος APP_KEY του docker-compose.yml (γενικός host Docker).
Μη χάσετε το APP_KEY σας
Η απώλεια του APP_KEY καθιστά τα κρυπτογραφημένα αντίγραφα ασφαλείας μη ανακτήσιμα. Αποθηκεύστε το σε ασφαλές μέρος, ξεχωριστά από τον διακομιστή. Μόλις το BombVault εκτελείται, χρησιμοποιήστε το κιτ ανάκτησης κλειδιού κρυπτογράφησης με ένα κλικ (δείτε Εκτός τόπου & ανάκτηση) για να αποθηκεύσετε το πλήρες πακέτο ανάκτησης.
Το template προσαρτά επίσης για εσάς το Docker socket, το flash (/boot) και τη ρίζα Host Data (/mnt). Οι πηγές και οι προορισμοί των αντιγράφων βρίσκονται και οι δύο κάτω από το Host Data. Για την πλήρη αναφορά μεταβλητών και τη ρύθμιση εκτός τόπου, δείτε Διαμόρφωση.
Πρώτη εκτέλεση¶

Ο πίνακας μετά το πρώτο αντίγραφο: τι προστατεύεται, τι τρέχει στη συνέχεια, και ένα ζωντανό αρχείο καταγραφής.
- Ανοίξτε το περιβάλλον ιστού στο
https://<your-unraid-ip>:3443(αυτο-υπογεγραμμένο πιστοποιητικό εξ ορισμού). - Στις Ρυθμίσεις, ενεργοποιήστε τους τομείς αντιγράφων που θέλετε (Containers, VMs, Flash, Αυτο-αντίγραφο, Φάκελοι, Σύνολα δεδομένων ZFS) και επιλέξτε ένα χρώμα επισήμανσης.
- Στην καρτέλα Containers, επιλέξτε ένα container και κάντε κλικ στο Δημιουργία αντιγράφου τώρα για να δημιουργήσετε το πρώτο σας σημείο επαναφοράς. Οι διαδρομές αποθετηρίου έχουν προεπιλογή
/mnt/user/bombvault/{container,vms,flash,config,files,zfs}και δημιουργούνται στο πρώτο αντίγραφο ασφαλείας. - Ρυθμίστε τον χρονοπρογραμματισμό από τις Ρυθμίσεις, Προγραμματισμοί. Υπάρχει ένα Συμπερίληψη όλων στο χρονοδιάγραμμα με ένα κλικ για containers και VMs.
Προαιρετικό: επιλέξτε σειρά αντιγράφων
Αν κάποια containers πρέπει πάντα να αντιγράφονται πριν από άλλα (για παράδειγμα μια βάση δεδομένων πριν από την εφαρμογή που τη χρησιμοποιεί), ανοίξτε τον πίνακα Σειρά αντιγράφων ασφαλείας στη σελίδα Containers και σύρετέ τα στην ακολουθία που θέλετε. Οι προγραμματισμένες και οι πολλαπλής επιλογής εκτελέσεις τότε την ακολουθούν· οτιδήποτε αφήσετε χωρίς σειρά αντιγράφεται με προτεραιότητα στα πιο καθυστερημένα, όπως πριν.
Έλεγχος ενσωμάτωσης host
Ανοίξτε το /spike στο περιβάλλον ιστού αφού ξεκινήσει το container. Ανιχνεύει κάθε προσάρτηση και CLI (Docker socket, libvirt, restic, qemu-img, rclone) και αναφέρει τυχόν κομμάτια που λείπουν, ώστε να επιβεβαιώσετε ότι το container είναι σωστά συνδεδεμένο πριν βασιστείτε σε αυτό.
Απλή έναντι Σύνθετης¶

Οι ρυθμίσεις δεν έχουν κουμπί Αποθήκευσης: κάθε αλλαγή γράφεται τη στιγμή που την κάνετε.
Εξ ορισμού η διεπαφή δείχνει μόνο τα βασικά (αντίγραφο, επαναφορά, χρονοδιάγραμμα). Χρησιμοποιήστε τον διακόπτη Απλή προβολή / Σύνθετη προβολή στην πλαϊνή μπάρα για να αποκαλύψετε τα προχωρημένα χειριστήρια: διατήρηση, αντίγραφο εκτός τόπου, hooks πριν/μετά, επαναφορά σε επίπεδο αρχείου, ειδοποιήσεις, μετρικές Prometheus και τα εργαλεία ακεραιότητας/συντήρησης. Είναι προτίμηση ανά πρόγραμμα περιήγησης και ανενεργή εξ ορισμού, ώστε οι νεοφερμένοι να έχουν ένα καθαρό περιβάλλον και οι έμπειροι χρήστες να έχουν τα πάντα.
Μεταγλώττιση από τον πηγαίο κώδικα¶
Το BombVault είναι ένα μοναδικό στατικό εκτελέσιμο Go που σερβίρει ένα JSON API και μια ενσωματωμένη διεπαφή React. Μεταγλωττίστε πρώτα τη διεπαφή και μετά εκτελέστε το εκτελέσιμο:
npm --prefix web ci
npm --prefix web run build # writes web/dist, which the binary embeds
export APP_KEY=$(openssl rand -hex 32)
go test ./... # unit and integration tests, with a real restic round trip
golangci-lint run ./...
go run ./cmd/bombvault # serves https://localhost:3443 with a self-signed certificate
Η μεταγλώττιση της διεπαφής χρειάζεται και για το go run. Το αποθετήριο παρακολουθεί κάτω από το web/dist μόνο ένα κενό αρχείο-σημάδι, οπότε χωρίς npm --prefix web run build το εκτελέσιμο δεν ενσωματώνει τίποτα και απαντά 500 SPA index not found, κάτι αναμενόμενο. Το Docker, το libvirt και το Unraid δεν μπορούν να δοκιμαστούν στο CI, οπότε ελέγξτε τις προσαρτήσεις, το restic και τη σύνδεση SSH των VM σε πραγματικό host με τον Έλεγχο ενσωμάτωσης host (/spike) πριν ανοίξετε pull request.
Επόμενα βήματα¶
- Περιηγηθείτε στις πλήρεις Δυνατότητες.
- Βάλτε όλους τους διακομιστές της ομάδας σας στο κινητό σας με την εφαρμογή Android.
- Προσθέστε ένα ή περισσότερα αντίγραφα Εκτός τόπου & ανάκτηση (κάθε τομέας μπορεί να στέλνει σε πολλούς προορισμούς ταυτόχρονα) και αποθηκεύστε το κιτ ανάκτησής σας.
- Κλωνοποιείτε μια εγκατάσταση ή μετακομίζετε σε νέο μηχάνημα; Μεταφέρετε όλη τη διαμόρφωσή σας με την κάρτα Εξαγωγή / εισαγωγή ρυθμίσεων. Δείτε Διαμόρφωση.
- Κολλήσατε κάπου; Δείτε την Αντιμετώπιση προβλημάτων.