ekspercki.eu...

ekspercki.eu...

Backup bez bólu głowy: jak w jeden wieczór zabezpieczyć swój domowy serwer i dane

Bez względu na to, czy trzymasz zdjęcia rodzinne, filmy z wakacji, repozytoria projektów, czy kontenery usług domowych, utrata danych boli. Dobra wiadomość jest taka, że da się temu zapobiec w jedno popołudnie. Ten przewodnik pokazuje, jak w praktyce w jeden wieczór zbudować solidne, niedrogie i zautomatyzowane kopie zapasowe dla domowego serwera, z naciskiem na prostotę, bezpieczeństwo i możliwość szybkiego odtworzenia. Znajdziesz tu przepis na krok po kroku, sprawdzone narzędzia, przykładowe polecenia i konfiguracje. To nie tylko teoria, ale gotowy plan działania.

Plan na jeden wieczór: od zera do bezpiecznego backupu

0–15 minut: inwentaryzacja i priorytety

Zacznij od krótkiego spisu tego, co naprawdę musisz chronić. Dzięki temu unikniesz chaosu i skupisz się na tym, co najcenniejsze.

  • Najwyższy priorytet: zdjęcia, dokumenty, klucze, hasła, bazy danych usług domowych, katalogi konfiguracyjne.
  • Średni priorytet: multimedia, które da się ponownie pobrać, cache, dane tymczasowe usług.
  • Niski priorytet: obrazy kontenerów, budowane artefakty, dane testowe.

Oznacz katalogi źródłowe, np. home, srv, etc, var/lib, oraz specjalne katalogi usług jak Nextcloud, PhotoPrism, Jellyfin, Home Assistant. Zanotuj rozmiar danych poleceniem:

du -sh /home /srv /etc /var/lib | sort -h

15–45 minut: strategia 3-2-1 i polityka retencji

Nawet prosty system musi mieć sensowną strukturę. Kluczem jest zasada 3-2-1: co najmniej trzy kopie, na dwóch różnych typach nośników, jedna poza domem.

  • 3 kopie: dane produkcyjne plus co najmniej dwie kopie zapasowe.
  • 2 różne nośniki: np. dysk USB i serwer NAS, lub NAS i chmura S3.
  • 1 kopia poza domem: chmura lub dysk rotacyjny przechowywany u kogoś zaufanego.

Doprecyzuj retencję i wersjonowanie:

  • Codzienne kopie z ostatnich 7–14 dni.
  • Tygodniowe kopie z ostatnich 4–8 tygodni.
  • Miesięczne kopie z ostatnich 6–12 miesięcy.

Jeśli dopiero uczysz się, jak tworzyć kopie zapasowe na domowy serwer, trzymaj politykę prostą: 7 dziennych, 4 tygodniowe i 6 miesięcznych wersji. To wyważony kompromis między kosztem a bezpieczeństwem.

45–90 minut: lokalny backup na dysk USB lub NAS

Na start najlepiej wybrać łatwy i szybki magazyn lokalny. To da Ci pierwszą warstwę ochrony już dziś.

  • Dysk USB: najtańsza i najszybsza droga do pierwszej kopii. Wygodne zwłaszcza do migawkowych backupów całych katalogów.
  • Serwer NAS: np. Synology, QNAP, TrueNAS, lub po prostu drugi komputer z Sambą lub NFS. Daje przestrzeń współdzieloną i pracę w tle.

W praktyce świetnie sprawdza się duet: narzędzie z deduplikacją plus magazyn lokalny. Przykłady:

  • Restic: szybki, deduplikacja, szyfrowanie domyślnie, wiele backendów.
  • BorgBackup: deduplikacja blokowa, kompresja, niezawodność.
  • Rsync: proste lustrzane kopie, dobre jako warstwa zero.

Przykładowa konfiguracja lokalnego repozytorium Restic na dysk USB zamontowany pod media/usbbackup:

export RESTIC_PASSWORD='twoje_haslo' restic -r /media/usbbackup init restic -r /media/usbbackup backup /home /etc /srv --exclude-caches --exclude node_modules --exclude '*.tmp'

Alternatywnie Borg na tym samym dysku:

export BORG_PASSPHRASE='twoje_haslo' borg init --encryption=repokey-blake2 /media/usbbackup/borgrepo borg create --stats --progress /media/usbbackup/borgrepo::pierwszy-archiwum-{{now}} /home /etc /srv --exclude '*/node_modules' --exclude '*.tmp'

Jeśli wolisz prostotę, rsync na NAS:

rsync -aHAX --delete --info=stats1 --exclude='*.tmp' --exclude='*/node_modules' /home /etc /srv user@nas:/volume1/backup-serwera

90–120 minut: kopia poza domem w chmurze

Druga warstwa to kopia offsite. Najwygodniej skorzystać z chmury kompatybilnej z S3, np. Backblaze B2, Wasabi, AWS S3. Restic i rclone doskonale współpracują z tymi usługami.

Restic z backendem B2:

export B2_ACCOUNT_ID=twoje_id export B2_ACCOUNT_KEY=twoj_klucz export RESTIC_PASSWORD='twoje_haslo' restic -r b2:twoj-bucket:/domowy-serwer init restic -r b2:twoj-bucket:/domowy-serwer backup /home /etc /srv --exclude-caches

Restic oferuje prostą retencję:

restic -r b2:twoj-bucket:/domowy-serwer forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6

Wiedza o tym, jak tworzyć kopie zapasowe na domowy serwer, łączy się tu z doborem właściwego backendu: najpierw lokalnie dla szybkości, a potem zdalnie dla odporności na awarie domowe.

120–150 minut: automatyzacja z cron lub systemd

Backup bez automatyzacji w praktyce nie istnieje. Zaplanuj codzienną kopię nocą oraz cotygodniowe czyszczenie starych wersji.

Przykładowy crontab dla użytkownika backup:

0 2 * * * export RESTIC_PASSWORD='twoje_haslo' && restic -r /media/usbbackup backup /home /etc /srv --exclude-caches >> /var/log/restic-local.log 2>&1 0 3 * * 0 export RESTIC_PASSWORD='twoje_haslo' && restic -r /media/usbbackup forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6 >> /var/log/restic-local.log 2>&1 30 2 * * * export RESTIC_PASSWORD='twoje_haslo' B2_ACCOUNT_ID=twoje_id B2_ACCOUNT_KEY=twoj_klucz && restic -r b2:twoj-bucket:/domowy-serwer backup /home /etc /srv --exclude-caches >> /var/log/restic-b2.log 2>&1 0 4 * * 0 export RESTIC_PASSWORD='twoje_haslo' B2_ACCOUNT_ID=twoje_id B2_ACCOUNT_KEY=twoj_klucz && restic -r b2:twoj-bucket:/domowy-serwer forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6 >> /var/log/restic-b2.log 2>&1

Analogicznie z Borg przy użyciu borg prune.

150–180 minut: test odtwarzania i dokumentacja

Backup jest tak dobry, jak jego przywracanie. Po pierwszym przebiegu wykonaj test.

  • Losowy plik: usuń skopiowany plik i odtwórz go z repozytorium na tymczasową lokalizację.
  • Próba katalogu: odtwórz cały mały katalog, np. Dokumenty testowe, i sprawdź spójność.
  • Raport: zapisz w pliku ścieżki, komendy i hasła do sejfu offline.

Przykładowe przywracanie w Restic:

export RESTIC_PASSWORD='twoje_haslo' restic -r /media/usbbackup snapshots restic -r /media/usbbackup restore latest --target /tmp/restore-test

Zwróć uwagę na prawa dostępu i właścicieli plików. Przywracaj z zachowaniem atrybutów, gdy to istotne.

Dlaczego RAID to nie backup

RAID zapewnia dostępność, nie chroni przed błędami ludzkimi, malware, szyfrowaniem przez ransomware czy skasowaniem katalogu przez pomyłkę. Nawet w NAS, macierze RAID mogą się rozjechać przy awarii kontrolera. Kopia wersjonowana poza macierzą to absolutna podstawa. Właśnie dlatego ucząc się, jak tworzyć kopie zapasowe na domowy serwer, nie mylimy RAID z backupem.

Wybór magazynu i narzędzi: przegląd praktyczny

Dyski USB, NAS, chmura: plusy i minusy

  • Dysk USB: niski koszt, wysoka szybkość, ale brak odseparowania, ryzyko utraty w zdarzeniach domowych. Dobrze jako pierwsza warstwa.
  • NAS: centralne miejsce, wygodne udziały SMB i NFS, łatwa współpraca z Time Machine i Windows. Wymaga podstawowej administracji i zabezpieczeń.
  • Chmura S3: kopia offsite, wersjonowanie po stronie dostawcy, dostęp z każdego miejsca. Koszt miesięczny i potrzeba kontroli haseł oraz kluczy API.

Oprogramowanie do backupu: którym narzędziem iść

  • Restic: proste, szybkie, z szyfrowaniem, deduplikacją i wieloma backendami. Idealne dla większości domowych zastosowań.
  • BorgBackup: stabilny klasyk z deduplikacją i kompresją; wymaga lokalnego lub zdalnego repozytorium, świetny na USB i NAS.
  • Rsync: dobre do lustrzanych kopii i seedingów; warto łączyć z snapshotami systemu plików lub narzędziami wersjonującymi.
  • Duplicacy, Duplicati: alternatywy z GUI; wygodne dla początkujących.
  • Veeam Agent dla Windows i Linux: przyjazny wizard, obrazowe kopie systemu, harmonogramy.
  • Time Machine na macOS: bezobsługowe wersjonowanie na NAS lub dysk sieciowy.

Jeśli zastanawiasz się, jak tworzyć kopie zapasowe na domowy serwer, zacznij od Restic na USB oraz w chmurze, a w tle zaplanuj bardziej zaawansowane rozwiązania jak snapshoty ZFS czy Btrfs.

Gotowe scenariusze wdrożenia

Linux domowy serwer: Ubuntu, Debian, Arch

Załóżmy, że masz katalogi home, etc, srv i chcesz mieć lokalny backup na USB oraz offsite na B2. Prosta recepta:

  1. Instalacja Restic: apt install restic lub pacman -S restic.
  2. Repozytorium lokalne: init na USB.
  3. Pierwszy backup: backup z wykluczeniami.
  4. Repozytorium w chmurze: init w B2.
  5. Automatyzacja: cron lub systemd timer.
  6. Test restore: restore latest do folderu tymczasowego.

Przykładowe pliki exclude dla Restic w etc/restic-exclude:

*.tmp .cache .thumbnails */node_modules *.iso lost+found var/tmp proc sys dev run

Następnie uruchom backup z użyciem listy wykluczeń:

restic -r /media/usbbackup backup /home /etc /srv --exclude-file /etc/restic-exclude

TrueNAS i ZFS: snapshoty i replikacja

Jeżeli Twoje dane żyją na ZFS, skorzystaj z mocy snapshotów i replikacji między systemami. Plan:

  • Snapshoty: co godzinę lub codziennie dla datasetów o wysokiej zmienności.
  • Zfs send: wysyłka przyrostowa na drugi NAS lub dysk USB.
  • Offsite: snapshot stream na zdalny host przez ssh.

Przykład ręcznej wysyłki przyrostowej:

zfs snapshot tank/dane@daily-2024-10-01 zfs send -I @daily-2024-09-30 tank/dane@daily-2024-10-01 | ssh user@nas2 zfs receive backup/dane

Snapshoty nie zastępują pełnego backupu wersjonowanego w chmurze, ale świetnie wspierają szybkie lokalne odtworzenia.

Proxmox, LXC, VM i kontenery

Jeśli hostujesz usługi w Proxmox, połącz kopie maszyn wirtualnych z backupem danych aplikacji.

  • Backup VM do lokalnego storage, np. PVE vzdump na dysk rotacyjny.
  • Kopie danych aplikacji z katalogów bind mount lub wolumenów, np. Restic z hosta.
  • Offsite dla najważniejszych folderów konfiguracyjnych i baz.

Nie polegaj wyłącznie na kopiach obrazów VM. Dla usług takich jak Nextcloud z bazą MariaDB wykonuj także zrzuty baz i backup katalogów danych.

Synology i QNAP: Hyper Backup, HBS3

Serwery NAS mają wbudowane narzędzia do kopii z retencją i szyfrowaniem. Skonfiguruj zadania Hyper Backup Synology lub HBS3 QNAP:

  • Cel lokalny: drugi wolumen, dysk USB.
  • Cel zdalny: S3, B2, partner SFTP.
  • Retencja: polityka rotacji wersji z codziennym i tygodniowym harmonogramem.

W tym środowisku wiedza, jak tworzyć kopie zapasowe na domowy serwer, sprowadza się do opanowania kreatora, wyboru udziałów i poprawnej retencji. Nie zapomnij o szyfrowaniu zadania.

Windows 10 i 11: File History i Veeam Agent

Na stacjach roboczych Windows dobrze sprawdza się File History do wersjonowania na NAS. Dla pełniejszego obrazu systemu użyj Veeam Agent:

  • File History: wskazanie udziału sieciowego i wykluczenia folderów tymczasowych.
  • Veeam Agent: backup obrazowy na NAS lub dysk USB, harmonogram nocny, retencja miesięczna.

To prosty sposób, by uzyskać kompatybilność z serwerem domowym i przygotować się na odtwarzanie całej maszyny.

macOS: Time Machine do SMB na serwerze

Time Machine płynnie współpracuje z udziałem SMB skonfigurowanym do roli celu TM. Na Linuksie użyj Samby z odpowiednimi parametrami. Minimalny fragment konfiguracyjny:

[TimeMachine] path = /srv/tm browseable = yes writeable = yes vfs objects = fruit streams_xattr fruit:time machine = yes fruit:time machine max size = 1000G

Na Macu wybierz udział Time Machine i włącz szyfrowanie. To wygodne, a wersjonowanie działa bezobsługowo.

Szyfrowanie, klucze i bezpieczne przechowywanie haseł

Hasła i klucze

  • Restic i Borg szyfrują domyślnie. Hasła trzymaj w menedżerze haseł i offline na papierze.
  • SSH: generuj klucze z passphrase. Przykład: ssh-keygen -o -a 100 -t ed25519.
  • Kopie kluczy: eksportuj i przechowuj offsite, zaszyfrowane.

Dla zmiennych środowiskowych używaj plików w katalogu domowym użytkownika backup, np. plik .restic-env z uprawnieniami 600 i ładowany przez skrypty.

Transport i dostęp

  • VPN: Tailscale lub WireGuard do bezpiecznego dostępu offsite.
  • Firewall: ograniczaj porty, preferuj ssh zamiast otwartych usług.
  • Rclone z tokenami o ograniczonych uprawnieniach do chmury.

Element bezpieczeństwa jest integralny z tym, jak tworzyć kopie zapasowe na domowy serwer. Bez szyfrowania i separacji haseł backup może stać się wektorem ryzyka.

Retencja, wersjonowanie i polityka kasowania

Przykładowe polityki

  • Dom standard: 7 dziennych, 4 tygodniowe, 6 miesięcznych.
  • Foto plus: 14 dziennych, 8 tygodniowych, 12 miesięcznych.
  • Minimal: 7 dziennych, 3 tygodniowe, 3 miesięczne.

Restic i Borg mają wbudowane mechanizmy forget lub prune. Uruchamiaj je przewidywalnie, najlepiej raz w tygodniu.

restic forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6

borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /media/usbbackup/borgrepo

Monitoring, raporty i kontrola zdrowia

  • Logi: przekierowuj stdout i stderr do plików w var/log.
  • Healthchecks: dodaj curl do healthchecks.io na końcu joba, aby mieć powiadomienia, gdy backup nie dotrze.
  • Powiadomienia email: proste skrypty z mailx lub msmtp.

Przykład integracji z healthchecks:

restic backup ... && curl -fsS https://hc-ping.com/uid

Wydajność i koszty: jak przyspieszyć i nie przepłacić

Parametry i wykluczenia

  • Exclude: nie archiwizuj cache i plików tymczasowych, to oszczędza miejsce i ruch.
  • Kompresja: Borg z kompresją lz4 czy zstd, Restic ma wbudowaną deduplikację blokową.
  • Rsync: przełączniki aHAX, delete, partial, progress wedle potrzeb.

Dobór wykluczeń jest kluczowy dla skuteczności. Prawidłowe wykluczenia to często różnica między 300 GB a 120 GB w chmurze.

Snapshoty systemu plików

  • ZFS i Btrfs: snapshoty spójne w czasie, potem rsync lub send do repozytorium. Świetne dla baz danych.
  • LVM: snapshot i backup z mrożenia systemu plików.

Snapshot plus narzędzie backupu to przepis na szybkie i spójne kopie. To kolejny element praktyki, jak tworzyć kopie zapasowe na domowy serwer, bez przestojów usług.

Szacowanie kosztów chmury

  • Przechowywanie: koszt za GB miesięcznie, tańsze w B2 i Wasabi, droższe w S3 standard.
  • Transfer: egress bywa płatny. Backup to głównie ingress, ale testy odtwarzania także generują ruch.
  • Operacje: S3 ma opłaty za listowanie i żądania, Restic używa ich umiarkowanie.

Optymalizuj przez retencję i deduplikację, a także seeding pierwszej kopii lokalnie, jeśli to możliwe.

Najczęstsze błędy i jak ich uniknąć

  • Brak testu odtwarzania: minimum raz na kwartał przywróć próbkę danych.
  • Przechowywanie haseł w skryptach: używaj plików env z prawami 600 i menedżera haseł.
  • Mylenie RAID z backupem: RAID nie chroni przed ransomware ani przypadkowym usunięciem.
  • Jedna lokalizacja: brak offsite to proszenie się o kłopoty przy zalaniu, pożarze, kradzieży.
  • Nadmierne wykluczenia: nie wykluczaj katalogów z konfiguracją i baz danych przez przypadek.
  • Za mała retencja: czasem błąd wykryjesz po tygodniu. Zostaw miejsce na wersje miesięczne.

FAQ: szybkie odpowiedzi

Czy wystarczy backup na sam NAS? Nie. Dodaj kopię offsite w chmurze lub na dysku rotacyjnym przechowywanym poza domem.

Jak często robić kopie? Codziennie w nocy plus snapshoty częstsze dla baz. Prune raz w tygodniu.

Jak sprawdzić integralność? Restic ma polecenie check, Borg check. Używaj ich co miesiąc.

Czy szyfrować? Tak, zawsze, zwłaszcza przy chmurze lub nośnikach przenośnych.

Co z Dockerem? Backupuj wolumeny danych, nie tylko obrazy. Eksportuj konfiguracje i compose.

Ile miejsca zaplanować? Zwykle 2–3 razy rozmiar źródłowych danych na warstwę lokalną przy agresywnej retencji, mniej gdy deduplikacja jest skuteczna.

Lista kontrolna do wdrożenia w jeden wieczór

  • Spisz katalogi krytyczne i ich rozmiary.
  • Wybierz magazyny: dysk USB plus chmura S3 lub B2.
  • Zainstaluj Restic lub Borg i zainicjuj repozytoria.
  • Wykonaj pierwszy lokalny backup, potem offsite.
  • Zaprogramuj zadania cron z retencją i logami.
  • Przeprowadź test odtwarzania pliku i katalogu.
  • Udokumentuj hasła i ścieżki, schowaj offline.
  • Włącz monitoring jobów i miesięczny check integralności.

Podsumowanie: bez bólu głowy, z realną ochroną

Skuteczna ochrona domowych danych nie wymaga tygodni konfiguracji. Wystarczy trzymać się zasady 3-2-1, połączyć szybki backup lokalny z kopią offsite, zautomatyzować harmonogram i co jakiś czas sprawdzić odtwarzanie. To praktyczna esencja tego, jak tworzyć kopie zapasowe na domowy serwer, by spać spokojnie. Zacznij dziś od pierwszej warstwy, dołóż drugą w chmurze, włącz powiadomienia i wykonaj test restore. Dzięki temu Twój domowy serwer i dane będą bezpieczne także wtedy, gdy zdarzy się to, czego nie przewidzisz.

Aneks: krótkie snippety i gotowce

Skrypt Restic lokal plus B2

#!/bin/sh set -euo pipefail export RESTIC_PASSWORD='twoje_haslo' SOURCES="/home /etc /srv" EXCLUDES="/etc/restic-exclude" # lokalny restic -r /media/usbbackup backup $SOURCES --exclude-file $EXCLUDES restic -r /media/usbbackup forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6 # offsite export B2_ACCOUNT_ID=twoje_id export B2_ACCOUNT_KEY=twoj_klucz restic -r b2:twoj-bucket:/domowy-serwer backup $SOURCES --exclude-file $EXCLUDES restic -r b2:twoj-bucket:/domowy-serwer forget --prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6

Odzysk pojedynczego pliku w Borg

borg list /media/usbbackup/borgrepo borg extract --stdout /media/usbbackup/borgrepo::arch-2024-10-01 home/user/Dokumenty/ważny.pdf > /tmp/wazny.pdf

Rsync snapshot directory

RSYNC_DEST=/mnt/nas/snapshots/$(date +%F) rsync -aHAX --delete --link-dest=/mnt/nas/snapshots/last /home $RSYNC_DEST rm -f /mnt/nas/snapshots/last ln -s $RSYNC_DEST /mnt/nas/snapshots/last

Masz już wszystkie klocki, by bezboleśnie wdrożyć kopię zapasową po domowemu. Najważniejsze to zacząć i utrzymać nawyk regularnej kontroli. Jeśli ktoś zapyta Cię jutro, jak tworzyć kopie zapasowe na domowy serwer, pokaż mu ten plan i pozwól, by jego dane również zyskały drugie życie.