Backup mit Duplicati
Duplicati ist eine Software, die verschlüsselte, komprimierte, inkrementelle Datensicherungen erstellt und diese auf Netzwerklaufwerke, integrierte oder externe USB-Festplatten oder Cloudspeicher überträgt. Dabei kann Duplicati einfach als Docker Container in Betrieb genommen werden. Obwohl die Anwendung den Beta Status nicht verlassen hat, läuft sie bereits seit Jahren stabil.

In meinem HomeLab soll Duplicati die Konfiguration des Servers, als auch die Docker Volumes in der Cloud sichern. Deshalb greife ich diesmal auf Docker Binds zurück - im Gegensatz zu den Docker Volumes. Über Docker Binds werden Pfade direkt im Server adressiert, während Volumes als Datenspeicher für die Container direkt von Docker verwaltet werden. Über die Serverpfade greife ich außerhalb der Docker Verwaltung direkt auf die Daten unter "/var/lib/docker/volumes" und auf meine Konfigurationen unter "/etc" und "/opt/containers" zu. Zu beachten ist dabei, dass wenn in Containern Datenbanken eingesetzt werden, dass diese inkonsistent werden könnten, wenn der Container in Betrieb ist. Über ein Pre-Backup-Script können diese Container durch Duplicati gestoppt und durch ein Post-Backup-Script wieder gestartet werden (--run-script-before, --run-script-after).
Ich nutze das von linuxserver.io bereitgestellte Duplicati Image.
version: "3"
services:
duplicati:
image: linuxserver/duplicati:latest
container_name: duplicati
restart: unless-stopped
ports:
- 8200:8200
environment:
- PUID=0
- PGID=0
- TZ=Europe/Berlin
#- CLI_ARGS=
volumes:
- config:/config
- /var/lib/docker/backups:/backups
- /:/source:ro
volumes:
config:
Bei dieser Konfiguration wird kein externer Zugang über Traefik eingerichtet und das WebGUI von Duplicati ist nur unter der Server-IP oder Servernamen des Docker Servers erreichbar "http://192.168.178.10:8200". Der Webzugang sollte mit einem Passwort geschützt werden.

Unter Einstellungen können Standard-Optionen eingegeben werden. Über diese werden globale Optionen für alle Backups definiert. Zum Beispiel kann mit diesen Optionen für jede Sicherung eine E-Mail Benachrichtigung versandt werden:
--send-mail-to=backup@example.com
--send-mail-url=smtps://smtp.strato.de
--send-mail-username=backup@example.com
--send-mail-password=GeHeImEsPassWort
