Πώς να κάνετε self-host το Duplicati το 2026: Κρυπτογραφημένα αντίγραφα ασφαλείας, προσαρτήσεις και δοκιμές επαναφοράς
Ένας πρακτικός οδηγός για self-hosting του Duplicati, με Docker, ports, persistent data, TLS, ασφάλεια, αντίγραφα ασφαλείας και τα προβλήματα που εμποδίζουν τη χρήση σε production. Το 2026.
Αν έχετε ήδη προσπαθήσει να κάνετε self-host το Duplicati, πιθανότατα γνωρίζετε αυτή την απογοητευτική κατάσταση: το UI εμφανίζεται, αλλά το container βλέπει μια κενή διαδρομή επειδή τα source του host έχουν γίνει mount αλλού. Η αναδημιουργία του container σπάνια διορθώνει μια ασυμφωνία μεταξύ URLs, state και dependencies.
Αυτός ο οδηγός χρησιμοποιεί ένα συγκεκριμένο κριτήριο ολοκλήρωσης — δημιουργήστε αντίγραφο ασφαλείας ενός test directory στον επιλεγμένο προορισμό, διαγράψτε ένα source file και επαναφέρετέ το σε μια καθαρή εναλλακτική διαδρομή. Κάθε επιλογή διαμόρφωσης αξιολογείται με βάση αυτό το κριτήριο και όχι με βάση ένα πράσινο badge του container.
Ports, processes και private services
Ένα χρήσιμο διάγραμμα του Duplicati δείχνει το public route, το private port 8200, το όριο του state και κάθε υποστηρικτική απαίτηση. Σημειώστε ποια βέλη μεταφέρουν credentials και ποια αντιστοιχούν σε συνηθισμένη κίνηση χρηστών. Το network contract του Duplicati είναι read-only source mounts και προσβάσιμο storage στον προορισμό των backup. Κρατήστε τα private endpoints σε internal DNS, επιτρέψτε μόνο τις απαραίτητες εξερχόμενες κλήσεις και δώστε στο Duplicati ένα service credential με περιορισμένο scope.
Επιβεβαιώστε το διάγραμμα με μία πραγματική ενέργεια: δημιουργήστε αντίγραφο ασφαλείας ενός test directory στον επιλεγμένο προορισμό, διαγράψτε ένα source file και επαναφέρετέ το σε μια καθαρή εναλλακτική διαδρομή. Οι βασικοί παράγοντες πίεσης είναι πιθανό να είναι ο αριθμός των source files, το compression, το encryption, το latency του προορισμού και η επικάλυψη μεταξύ των scheduled jobs· παρακολουθήστε αυτή τη διαδρομή αντί να αντιμετωπίζετε όλα τα HTTP requests ως ισοδύναμα.
Διάγνωση ενός Duplicati που φαίνεται υγιές
Δημιουργήστε dashboards γύρω από τον αριθμό των source files, το compression, το encryption, το latency του προορισμού και την επικάλυψη μεταξύ των scheduled jobs. Ένα γράφημα CPU χωρίς αυτό το workload context δεν μπορεί να εξηγήσει γιατί το Duplicati είναι αργό. Προσθέστε έναν synthetic ή scheduled έλεγχο που επιχειρεί να δημιουργήσει αντίγραφο ασφαλείας ενός test directory στον επιλεγμένο προορισμό, να διαγράψει ένα source file και να το επαναφέρει σε μια καθαρή εναλλακτική διαδρομή, χρησιμοποιώντας ακίνδυνα test data.
Πριν από μια αναβάθμιση, λάβετε υπόψη τον εξής application-specific κίνδυνο: οι αλλαγές στη configuration database και στο backup format του Duplicati πρέπει να δοκιμάζονται χωρίς να ξαναγραφτεί το μοναδικό remote backup set. Επαναφέρετε ένα πρόσφατο backup σε ένα isolated deployment, εκτελέστε εκεί τα migrations και συγκρίνετε τη συμπεριφορά. Αν το container βλέπει μια κενή διαδρομή επειδή τα source του host έχουν γίνει mount αλλού, ελέγξτε πρώτα το σχετικό όριο — public origin, storage ή dependency — πριν αλλάξετε άσχετες ρυθμίσεις.
Τι πρέπει να περάσει πριν φτάσουν πραγματικά δεδομένα του Duplicati
Το release record για το Duplicati χρειάζεται facts, όχι «φαίνεται εντάξει». Αποθηκεύστε το επιλεγμένο image digest, το configuration checksum, το public hostname και ένα timestamped αποτέλεσμα για τα εξής: δημιουργία αντιγράφου ασφαλείας ενός test directory στον επιλεγμένο προορισμό, διαγραφή ενός source file και επαναφορά του σε μια καθαρή εναλλακτική διαδρομή. Χρησιμοποιήστε non-production sample data, ώστε ο έλεγχος να μπορεί να εκτελείται μετά από κάθε deployment.
Αποδείξτε ξεχωριστά δύο lifecycle events. Η αντικατάσταση ενός container πρέπει να διατηρεί την κανονική λειτουργία· μια καθαρή διαδικασία recovery πρέπει να δείχνει ότι ένα νέο instance του Duplicati μπορεί να εισαγάγει τη διαμόρφωση και να επαναφέρει επιλεγμένα αρχεία με επαληθευμένα hashes. Όσο εκτελούνται οι έλεγχοι, μετρήστε τον αριθμό των source files, το compression, το encryption, το latency του προορισμού και την επικάλυψη μεταξύ των scheduled jobs και διατηρήστε το αποτέλεσμα ως το αναμενόμενο envelope για αυτή την έκδοση.
Δοκιμάστε επίσης μια denied ή invalid συνθήκη: αποκλείστε προσωρινά από το test identity την πρόσβαση σε read-only source mounts και σε προσβάσιμο storage στον προορισμό των backup. Το Duplicati πρέπει να αποτύχει με τρόπο που μπορεί να διαγνωστεί και να μην αντικαταστήσει το υγιές state. Επαναφέρετε την έγκυρη συνθήκη, εκτελέστε ξανά το sample και επισυνάψτε τα σχετικά redacted logs. Αυτά τα artifacts παρέχουν συγκεκριμένα στοιχεία για μια μελλοντική απόφαση rollback.
Μετατρέψτε την τοπική εντολή σε inspectable service
Η παρακάτω εντολή κάνει ορατό το όριο του container, χωρίς να προσποιείται ότι κάνει provisioning κάθε external service.
docker run -d \
--name duplicati \
--restart unless-stopped \
-p 127.0.0.1:8200:8200 \
-v duplicati-data:/config \
-v /srv/data:/source:ro \
-e SETTINGS_ENCRYPTION_KEY=replace-with-a-long-random-value \
lscr.io/linuxserver/duplicati:latest
Πριν ανοίξετε ingress, ελέγξτε το resolved environment, τα mounts και τον listener. Προσθέστε τις εγκεκριμένες connection settings για read-only source mounts και προσβάσιμο storage στον προορισμό των backup· χρησιμοποιήστε private names για private services. Ένα επιτυχημένο launch ολοκληρώνεται όταν μπορείτε να δημιουργήσετε αντίγραφο ασφαλείας ενός test directory στον επιλεγμένο προορισμό, να διαγράψετε ένα source file και να το επαναφέρετε σε μια καθαρή εναλλακτική διαδρομή, όχι όταν το docker ps εμφανίζει Up.
Κάντε το recovery του Duplicati μετρήσιμο
Καταγράψτε το state πριν δημιουργηθεί το πρώτο πραγματικό record: τη configuration database του Duplicati και τα backup sets που έχουν επαληθευτεί ξεχωριστά. Κάντε mount το /config πριν από το bootstrap, γράψτε ακίνδυνα sample data και αντικαταστήστε το container για να αποδείξετε ότι η συγκεκριμένη διαδρομή είναι πράγματι persistent. Επιβεβαιώστε το mount γράφοντας ακίνδυνα data, αντικαθιστώντας το Duplicati και διαβάζοντάς τα ξανά.
Τα snapshots είναι πολύτιμα για γρήγορο rollback, όμως χρειάζεται ανεξάρτητο backup όταν χαθεί το host ή το volume. Κάντε restore σε ένα άδειο environment με το pinned image και επαληθεύστε ότι ένα νέο instance του Duplicati μπορεί να εισαγάγει τη διαμόρφωση και να επαναφέρει επιλεγμένα αρχεία με επαληθευμένα hashes. Χρησιμοποιήστε το persistent volumes and snapshots για να διατηρείτε ξεχωριστούς αυτούς τους δύο μηχανισμούς recovery.
Το TLS είναι εύκολο· τα generated URLs όχι
Εκθέστε ένα HTTPS hostname για το Duplicati και κρατήστε το raw port 8200 private. Κρατήστε το management UI private ή προστατευμένο με ισχυρό authentication πίσω από HTTPS. Έτσι αποτρέπετε browsers και API clients από το να μάθουν δύο ανταγωνιστικές διευθύνσεις.
Από έναν clean client, εκτελέστε το known-good transaction και ελέγξτε το πρώτο request που αποτυγχάνει. Χρησιμοποιήστε τον custom-domain guide όταν υπάρχει πρόβλημα με το DNS ή το TLS. Αντιμετωπίστε το «το container βλέπει μια κενή διαδρομή επειδή τα source του host έχουν γίνει mount αλλού» ως ξεχωριστή application diagnosis, αφού επιβεβαιωθεί το route.
Περιορίστε το Duplicati μετά το bootstrap
Τα bootstrap credentials είναι προσωρινά· το trust model είναι μόνιμο. Στο Duplicati, προσέξτε την περίπτωση όπου τα backup sources γίνονται mount με read-write ή χάνεται το encryption passphrase, κάντε mount τα sources ως read-only, κρατήστε το management UI private και αποθηκεύστε το backup passphrase εκτός του server.
Δημιουργήστε το SETTINGS_ENCRYPTION_KEY μία φορά, κρατήστε το εκτός Git και διατηρήστε το μαζί με το recovery manifest, επειδή η αλλαγή του μπορεί να καταστήσει μη έγκυρο το encrypted ή signed application state. Εκτελέστε το image χωρίς περιττές Linux capabilities και εκθέστε μόνο το public application route. Διατηρήστε ορατή τη δραστηριότητα των administrators χωρίς να καταγράφετε secret values.
Χρησιμοποιήστε το Dockup για το platform layer
Για το Duplicati, το Dockup μπορεί να δημιουργήσει το route και το TLS certificate, να διατηρήσει τα mounts, να παραδώσει secrets και να τοποθετήσει τα read-only source mounts και το προσβάσιμο storage στον προορισμό των backup σε private networking, ενώ το deployment γίνεται είτε στο Dockup είτε σε attached servers.
Το release gate παραμένει το συγκεκριμένο transaction του Duplicati: δημιουργία αντιγράφου ασφαλείας ενός test directory στον επιλεγμένο προορισμό, διαγραφή ενός source file και επαναφορά του σε μια καθαρή εναλλακτική διαδρομή. Επαληθεύστε επίσης τη συνθήκη restore — ένα νέο instance του Duplicati μπορεί να εισαγάγει τη διαμόρφωση και να επαναφέρει επιλεγμένα αρχεία με επαληθευμένα hashes. Αυτοί οι δύο έλεγχοι δείχνουν αν το deployment λειτουργεί και αν μπορεί να ανακτηθεί.
Συχνές ερωτήσεις
Τι χρειάζεται το Duplicati για ένα production deployment;
Δρομολογήστε το container του Duplicati στο port 8200 μέσω ενός HTTPS origin. Η απαιτούμενη υποστήριξη σε επίπεδο δικτύου είναι read-only source mounts και προσβάσιμο storage στον προορισμό των backup. Μην θεωρήσετε το Duplicati έτοιμο μέχρι να μπορείτε να δημιουργήσετε αντίγραφο ασφαλείας ενός test directory στον επιλεγμένο προορισμό, να διαγράψετε ένα source file και να το επαναφέρετε σε μια καθαρή εναλλακτική διαδρομή.
Ποια δεδομένα του Duplicati ανήκουν σε backup;
Κάντε persist το /config και συμπεριλάβετε τη configuration database του Duplicati και τα ξεχωριστά επαληθευμένα backup sets στο ίδιο recovery manifest. Ένα clean Duplicati restore θεωρείται επιτυχές μόνο όταν ένα νέο instance του Duplicati μπορεί να εισαγάγει τη διαμόρφωση και να επαναφέρει επιλεγμένα αρχεία με επαληθευμένα hashes.
Απαιτεί το Duplicati HTTPS πίσω από reverse proxy;
Χρησιμοποιήστε HTTPS για το public Duplicati origin και κρατήστε το port 8200 στο internal route. Εφαρμόστε σωστά τη ρύθμιση του Duplicati: κρατήστε το management UI private ή προστατευμένο με ισχυρό authentication πίσω από HTTPS. Για το Duplicati, το HTTPS προστατεύει τα credentials ή το user content κατά τη μεταφορά και διατηρεί συνεπή τη συμπεριφορά των clients που εξαρτάται από το origin.
Πώς πρέπει να δοκιμάζεται μια αναβάθμιση του Duplicati;
Κάντε restore το τρέχον state του Duplicati σε ένα isolated deployment, εφαρμόστε την υποψήφια έκδοση και επαναλάβετε το acceptance transaction. Δώστε ιδιαίτερη προσοχή, επειδή οι αλλαγές στη configuration database και στο backup format του Duplicati πρέπει να δοκιμάζονται χωρίς να ξαναγραφτεί το μοναδικό remote backup set. Διατηρήστε το προηγούμενο Duplicati image μέχρι να κατανοήσετε τα όρια του data migration και του rollback.
