Bezpieczny Backup Katalogu Domowego na TrueNAS za Pomocą Duplicati i Dockera

Duplicati TrueNAS

Tworzenie niezawodnej kopii zapasowej jest absolutnie krytyczne, zwłaszcza gdy pracujemy z kodem (PHP, Python, JavaScript) lub zarządzamy kluczowymi systemami, jak np. systemem ERP. Lokalny backup nie wystarczy – potrzebujemy rozwiązania zdalnego i zaszyfrowanego, które będzie odporne na awarie dysku.

Duplicati w połączeniu z Dockerem i serwerem TrueNAS (wykorzystującym SFTP) to złoty standard. Instalacja może być podstępna, ale dzięki temu przewodnikowi unikniesz problemów z zależnościami (libicu) i uprawnieniami (Access Denied).

1. Wymagania Wstępne i Architektura

Zainstalujemy Duplicati w kontenerze Docker na komputerze klienckim, a dane prześlemy bezpiecznie na serwer TrueNAS za pomocą protokołu SFTP (SSH).

Wymagania:

  1. Zainstalowany i skonfigurowany Docker na Twoim Ubuntu.
  2. Włączona Usługa SSH na TrueNAS.
  3. Utworzony folder docelowy na TrueNAS (np. /mnt/Twoja_Pula/Duplicati) z uprawnieniami zapisu dla użytkownika SSH.

2. Uruchomienie Kontenera Duplicati (Wersja Niezawodna)

Użyjemy popularnego obrazu linuxserver/duplicati. Aby uniknąć błędów z uprawnieniami i nieudanym startem, musimy poprawnie zdefiniować mapowanie wolumenów (folderów) i hasła środowiskowe.

Przygotowanie folderu i użytkownika

Przed uruchomieniem kontenera, upewnij się, że Twój folder konfiguracji istnieje. Zmienne PUID i PGID gwarantują, że Duplicati będzie miało pełny dostęp do Twojego katalogu domowego.

# Sprawdź swoje UID i GID (zazwyczaj 1000)
UID=$(id -u andre)
GID=$(id -g andre)

# Utwórz folder do przechowywania konfiguracji Duplicati
mkdir -p /home/andre/duplicati_config

Polecenie Docker Run

Musimy użyć kluczy środowiskowych (do uruchomienia i do hasła webowego) oraz dwóch mapowań wolumenów (konfiguracja i pliki źródłowe).

Ważne: Użyj swoich, silnych wartości dla kluczy SETTINGS_ENCRYPTION_KEY i DUPLICATI__WEBSERVICE_PASSWORD.

docker run -d \
  --name=duplicati \
  -p 8200:8200 \
  -e PUID=$UID \
  -e PGID=$GID \
  -e SETTINGS_ENCRYPTION_KEY="TWÓJ_UNIKALNY_KLUCZ_SZYFRUJĄCY_KONFIGURACJĘ" \
  -e DUPLICATI__WEBSERVICE_PASSWORD="TWOJE_HASLO_DO_INTERFEJSU_GUI" \
  -v /home/andre/duplicati_config:/config \
  -v /home/andre:/source/home/andre \
  --restart unless-stopped \
  linuxserver/duplicati:latest
  • /config: Trwałe przechowywanie bazy danych i ustawień Duplicati.
  • /source/home/andre: Mapowanie całego Twojego katalogu domowego (źródło) do kontenera.
  • PUID/PGID: Mapowanie kontenera na UID/GID Twojego użytkownika (andre), aby zapobiec błędom Access Denied podczas backupu folderu domowego.

3. Konfiguracja i Ustawienie Backupu na TrueNAS

Po udanym uruchomieniu kontenera (sprawdź docker ps), otwórz przeglądarkę.

Krok 1: Dostęp do Interfejsu

Przejdź do: http://localhost:8200

Zaloguj się hasłem, które ustawiłeś w zmiennej środowiskowej DUPLICATI__WEBSERVICE_PASSWORD.

Krok 2: Ustawienie Zdalnego Repozytorium (Destination)

  1. Kliknij Add backup i przejdź do kroku Destination (2).
  2. Storage Type: Wybierz SFTP (SSH).
  3. Server: Wpisz adres IP TrueNAS (np. 192.168.0.13).
  4. Path on server: Wpisz pełną ścieżkę do datasetu TrueNAS, np. /mnt/Twoja_Pula/Duplicati.
  5. Username/Password: Podaj dane logowania użytkownika SSH (np. andre) na TrueNAS.
  6. Kliknij Test connection — musi pojawić się komunikat Connection worked!.

Krok 3: Wybór Danych Źródłowych (Source Data)

W kroku Source Data (3) wybierzesz foldery, które zmapowałeś do Dockera:

  1. W drzewie plików znajdź folder /source/home/andre.
  2. Zaznacz krytyczne podfoldery (np. Documents, Projects, Klucze SSH w .ssh).

Filtry (Kluczowe dla wydajności): Aby uniknąć kopiowania śmieci i cache’u, które generowały błędy, dodaj te wykluczenia w sekcji Filters:

Typ FiltraŚcieżka Filtra
Exclude folder/source/home/andre/.local/share/Trash
Exclude folder/source/home/andre/.cache
Exclude folder/source/home/andre/Downloads

Krok 4: Ustawienie Opcji (Retention)

W sekcji Options (5) ustaw:

  • Remote volume size: 50 MB (lub 100 MB).
  • Backup retention: Smart backup retention (Najlepsza polityka zarządzania miejscem).

Po zakończeniu Duplicati będzie tworzyć zaszyfrowane, deduplikowane i automatyczne kopie zapasowe, które zabezpieczą Twoje środowisko programistyczne i dane przed awarią dysku lokalnego.

Andre Selfie
Andrzej Majewski

Moja fascynacja technologią zaczęła się podczas studiów informatycznych na Uniwersytecie Zielonogórskim. Od czasu przeprowadzki do Wielkiej Brytanii w 2015 roku i osiedlenia się na stałe w Bournemouth, przekułem tę pasję w karierę zawodową poświęconą infrastrukturze o wysokiej wydajności.W głębi duszy jestem entuzjastą Linuxa – to zaangażowanie wykracza poza moją pracę zawodową w SolutionsInc i obejmuje również mój rozbudowany, prywatny homelab. Niezależnie od tego, czy zarządzam złożonymi architekturami serwerowymi przez ISPConfig, buduję systemy VoIP w ramach Phones Rescue, czy tworzę narzędzia do automatyzacji w Pythonie, najlepiej czuję się, podejmując wyzwania związane z projektowaniem wydajnych rozwiązań open-source

Komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *