Backupowanie danych z użyciem Duplicati
Spis treści
Ludzie dzielą się na tych, którzy robią backupy, i tych, którzy będą je robić. Stare, ale jare.
Jeśli należysz do tej drugiej grupy, bo pisanie skryptów i grzebanie w cronie zwyczajnie Ci się nie uśmiecha, Duplicati może być dokładnie tym, czego szukasz. Całość konfigurujesz w przeglądarce: co kopiować, jak często i dokąd, a tych “dokąd” jest naprawdę sporo - lokalny dysk, SFTP, S3, B2 i jeszcze kilkanaście innych.
Na Mikrusie#
Dedykowanego skryptu do Duplicati w NOOBS-ie nie mamy. Jest za to skrypt do Dockera, a Duplicati i tak najwygodniej uruchomić właśnie w kontenerze, więc wychodzi na jedno.
Brak NOOBS-a? Nadrabiamy:
curl -s https://noobs.mikr.us | bash
Instalacja Dockera:
sudo /opt/noobs/scripts/chce_dockera.sh
Gotowe. Możesz przeskoczyć prosto do sekcji Pierwsze uruchomienie, bo dalej nie ma już znaczenia, skąd wziął się Docker.
Na dowolnym serwerze (Ubuntu/Debian)#
Tutaj Dockera trzeba zainstalować ręcznie z oficjalnego repozytorium. Polecenia są wspólne dla Ubuntu i Debiana:
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Pierwsze uruchomienie#
Zaczynamy od katalogów na konfigurację i kopie:
mkdir -p ~/duplicati/config ~/duplicati/backups
Teraz właściwy kontener. W miejsce 20112 wpisz któryś ze swoich portów (10000+ID, 20000+ID albo 30000+ID):
docker run -d --name duplicati \
-p 20112:8200 \
-v ~/duplicati/config:/config \
-v ~/duplicati/backups:/backups \
-v /:/source:ro \
--restart unless-stopped \
duplicati/duplicati:latest
Trzy parametry zasługują na komentarz.
-p 20112:8200 wystawia panel, który w środku kontenera siedzi na porcie 8200, na Twoim publicznym porcie. -v ~/duplicati/config:/config sprawia, że konfiguracja przetrwa restart i aktualizację obrazu. Najciekawszy jest -v /:/source:ro: cały dysk serwera, wyłącznie do odczytu, widoczny w kontenerze pod /source, czyli wszystko, z czego potem będziesz wybierać.
Przy pierwszym starcie Duplicati generuje jednorazowy link logowania z tokenem. Znajdziesz go w logach:
docker logs duplicati | grep signin
W linku zamień localhost na adres serwera i port z docker run, wklej do przeglądarki i jesteś w środku.
Wolisz od razu mieć stałe hasło do panelu? Dorzuć do docker run zmienną -e DUPLICATI__WEBSERVICE_PASSWORD=twoje-haslo. Można je też ustawić później, w ustawieniach panelu.
Skoro już grzebiemy w zmiennych, dodałbym jeszcze -e SETTINGS_ENCRYPTION_KEY=twoj-losowy-klucz. I tu uwaga, bo nazwa bywa myląca: to wcale nie jest hasło do logowania. Tym kluczem szyfrowana jest baza ustawień Duplicati, a w niej siedzą między innymi hasła do backupów i dane dostępowe do chmur. Zapisz go sobie. Kontener odpalony kiedyś bez tego klucza albo z innym po prostu nie wstanie.
Konfiguracja pierwszego zadania backupu#
W panelu: Add backup, następnie Configure a new backup. Kreator prowadzi przez kilka kroków.
Najpierw nazwa i hasło szyfrujące. To hasło zapisz gdzieś, gdzie go nie zgubisz. Nie przesadzam. Bez niego nie odszyfrujesz kopii, choćbyś miał pliki na wyciągnięcie ręki.
Potem Destination, czyli cel. Lokalny /backups (katalog podmontowany z hosta), SFTP na inny serwer, któraś z chmur - S3, B2, Google Drive i tak dalej. Od siebie dodam, że backup leżący na tym samym dysku co oryginał to raczej półśrodek. Jeśli padnie serwer, pójdzie razem z nim.
W Source Data zaznaczasz katalogi. Pamiętaj, że widać je pod /source/..., bo tak podmontowaliśmy dysk, więc szukasz np. /source/etc albo /source/home.
Schedule to harmonogram. Codziennie o 3:00 w zupełności wystarczy większości ludzi.
W Options ustawiasz, ile starych wersji trzymać. “Smart backup retention” to rozsądny punkt startowy. Bez żadnej retencji backup będzie po prostu puchł.
Po zapisaniu od razu kliknij Run now. Lepiej przekonać się teraz, że wszystko hula, niż o trzeciej nad ranem, gdy nikt nie patrzy.
Najczęstsze błędy#
Pusto w Source Data. Prawie na pewno kontener wystartował bez -v /:/source:ro i Duplicati widzi wyłącznie swój własny, goły system plików.
Backup działa, ale zżera coraz więcej miejsca. Zajrzyj do Options → Backup retention. Domyślnie Duplicati potrafi trzymać każdą wersję aż do końca świata.
Po restarcie serwera nie da się zalogować. Link z tokenem jest jednorazowy. Logujesz się hasłem z panelu, a jeśli go nie ustawiłeś, nowy link znowu czeka w docker logs duplicati.
Jeśli szukasz miejsca dla swoich developerskich potrzeb, to zapoznaj się z ofertą serwerów VPS od Mikrusa.
SerweryVPS już od 35 zł rocznie.
Dowiedz się więcej