X

FreeFileSync als Docker-Container installieren und einrichten

Geschrieben amgeschrieben von Dennis, zuletzt aktualisiert am RSS Feed
Heute gibt es von mir eine detaillierte Anleitung, wie man das Programm FreeFileSync als Docker-Container mit Hilfe von Portainer auf einem Raspberry Pi 4 B * installiert. FreeFileSync kann Dateien an 2 unterschiedlichen Orten miteinander synchronisieren. So kann man z.B. an 2 unterschiedlichen Orten arbeiten und man hat trotzdem immer den gleichen Stand der Dateien. Ich werde FreeFileSync hier jedoch nutzen, um eine einfache Sicherung meiner Calibre-Datenbank zu erstellen.

FreeFileSync als Docker-Container installieren und einrichten

Diese Lösung ist jedoch eher einfach, daher habe ich hier bereits ein deutlich professionellere Lösung beschrieben: Duplicati als Docker-Container installieren und automatisches Backup einrichten



Vorbereitung


Als erstes muss das Betriebssystem für den Raspberry Pi auf der microSD-Karte installiert werden, dafür nutzen wir den offiziellen Raspberry Pi Imager. Wer hierzu eine detaillierte Anleitung benötigt, findet diese etwas weiter unten in dem folgenden Artikel: evcc Anleitung für intelligentes PV Überschussladen mit vielen Wallboxen

Danach müssen Docker und Portainer installiert werden, das habe ich bereits hier detailliert beschrieben: Installation von Calibre als Docker-Container mit Portainer auf dem Raspberry Pi



Installation von FreeFileSync als Docker-Container mit Portainer


Für FreeFileSync gibt es leider kein App-Template, daher müssen wir selbst einen Container anlegen. Dazu gehen wir auf die Weboberfläche von Portainer, wählen unsere Docker-Umgebung aus, gehen links auf Containers und dann rechts auf Add container.



Im oberen Teil geben wir unserem Container den wir erstellen wollen einen Namen, hier also passend FreeFileSync. Dann geben wir an welches Image sich aus dem Docker-Hub gezogen werden soll, das ist in diesem Fall jlesage/freefilesync (Link zum Docker-Hub). Und als letztes fügen wir noch die Ports hinzu, die der Container nachher benötigt.

Die Ports im Feld host können individuell angepasst werden, zum Beispiel wenn der Port im System schon anderweitig verwendet wird. (Belegte Ports kann man sich mit netstat -lnt anzeigen lassen.)

FreeFileSync als Docker-Container installieren und einrichten

Nun kommen wir in den unteren Bereich der Einstellungen, hier wechseln wir auf Volumes und erstellen dort 2 Volumes. Für den Container müssen wir die Ordner config und storage erstellen. Unter host geben wir einmal ein wo der Container seine Config-Dateien hinschreiben soll (hier im Beispiel /portainer/config/freefilesync) und unter storage geben wir eine Verknüpfung an wo die Daten liegen die wir nachher synchronisieren wollen (hier im Beispiel /portainer).

FreeFileSync als Docker-Container installieren und einrichten

Als letztes gehen wir noch auf die Restart policy und ändern diese von Never auf Unless stopped, damit der Container nach einem Neustart des Systems automatisch startet.

Dann können wir auf Deploy the container gehen, womit der Docker-Container für FreeFileSync erstellt wird.

FreeFileSync als Docker-Container installieren und einrichten

Ein paar Sekunden später läuft der Container dann auch schon…

FreeFileSync als Docker-Container installieren und einrichten


FreeFileSync Synchronisierung einrichten


Nun rufen wir die Weboberfläche von FreeFileSync auf, dazu gebt ihr die IP eures Systems gefolgt von :5800 ein. (Beispiel: 192.168.1.11:5800)

Daraufhin erscheinen ein Begrüßungsfenster und das grafische User Interface.

FreeFileSync als Docker-Container installieren und einrichten

Als nächstes müssen wir links den Ort der Quelldateien, die synchronisiert werden sollen, und rechts den Zielort angeben.

FreeFileSync als Docker-Container installieren und einrichten

Sobald man auf Browse geklickt hat, entdeckt man auf der linken Seite den Eintrag storage. Das ist das Volume, das wir beim Erstellen des Containers angegeben haben, bei mir ist das also mit dem lokalen Ordner /portainer verknüpft. Hier wähle ich jetzt den Ordner Calibre aus, der meine komplette eBook-Bibliothek und die Einstellungen von Calibre enthält.

FreeFileSync als Docker-Container installieren und einrichten

Auf der rechten Seite möchte ich jetzt einen Ordner außerhalb meines Haushaltes angeben. Dazu gehen wir auf das Wolken-Symbol, wo uns eine Auswahl aus Google Drive, SFTP und FTP angeboten wird. Ich möchte Google Drive nutzen, wo ich 15 GB kostenlosen Speicher habe. Dazu gehe ich auf Add connection und stelle über den sich öffnenden Browser eine Verbindung zu meinem Google-Konto her. Dann gibt man unter Directory on Server den Ordner auf dem Google Drive an, wo die synchronisierten Daten gespeichert werden sollen.

FreeFileSync als Docker-Container installieren und einrichten

Für die Synchronisierung müssen wir jetzt noch einstellen, wie genau die Dateien synchronisiert werden sollen. Dazu gehen wir auf das grüne Zahnrad oben rechts und rufen damit die Einstellungen für die Synchronisierung auf.

Da ich eine einfache Spiegelung meiner Calibre-Daten erreichen möchte, wähle ich hier Mirror aus. Bei Delete and Overwrite wähle ich Versioning, damit bei einem versehentlichen löschen die Daten noch auf dem Google Drive vorhanden sind. Diesen Ordner muss man jedoch, soweit ich das gesehen habe, manuell verwalten. Also bleiben hier alle alten Daten so lange erhalten, bis man sie manuell löscht.

Dann kann man noch eine E-Mail-Benachrichtigung und ein Änderungs-log einrichten, das lasse ich hier aber weg.

FreeFileSync als Docker-Container installieren und einrichten

Nun können wir die erste Synchronisierung mit einem klick oben rechts auf Synchronize starten. Bei der ersten Synchronisierung kommt noch eine Warnmeldung, dass die Unterschiede signifikant sind und ob wir wirklich weitermachen wollen, das kann man natürlich ignorieren. Nun läuft die Synchronisierung durch…

FreeFileSync als Docker-Container installieren und einrichten


Synchronisierung automatisieren


Nun synchronisiert FreeFileSync zwar so wie wir es möchten, allerdings müsste man so die Synchronisierung immer manuell starten. Um das zu ändern, gehen wir oben links auf File und dann auf Save as a Batch Job.

Hier wählen wir dann aus, wie sich die Synchronisierung verhalten soll. Auto-Close muss zwingend angehakt bleiben, da sonst kein Folgejob startet. Ich habe hier außerdem Ignore errors angehakt, damit die Synchronisierung bei einem Fehler nicht komplett abbricht.

FreeFileSync als Docker-Container installieren und einrichten

Dann habe ich die Batch-Datei individuell benannt und diese muss dann im Config-Order von FreeFileSync gespeichert werden.

FreeFileSync als Docker-Container installieren und einrichten

Nun müssen wir zurück zu Portainer wechseln, den Container von FreeFileSync aufrufen, auf Duplicate/Edit gehen und dann ganz unten den Tab env öffnen.



Hier müssen wir jetzt die Timezone ändern auf Europe/Berlin (s.o.) damit unsere Zeitzone für den Cronjob genutzt wird.

Nun müssen wir noch 2 Variablen hinzufügen (s.o.):

name: FFS_SCHEDULED_BATCH_JOB_[ID]_NAME
value: [NAME] 

[ID]: Hier kann eine individuelle ID vergeben werden
[NAME]: Name der von euch erstellten Batch-Datei <u>ohne</u> die Endung .ffs_batch


name: FFS_SCHEDULED_BATCH_JOB_[ID]_CRON
value: [CRON-EXPR]

[ID]: Hier die gleiche individuelle ID wie bei 1. eingeben
[CRON-EXPR]: Hier wird eingestellt, wann die Batchdatei ausgeführt werden soll. 

Erklärung der Cron-Zeit-Einstellungen: https://crontab.guru

FreeFileSync als Docker-Container installieren und einrichten

Nun müssen wir noch einmal auf Deploy the container gehen und die Ausführung mit Replace bestätigen.



Damit ist auch die automatische Synchronisierung eingerichtet und wir sind fertig.


Fazit


Die Synchronisierung mit FreeFileSync funktioniert so wie sie soll und die Einstellmöglichkeiten sind recht umfangreich. Für mich ein großer Vorteil ist außerdem, dass alle Daten im Original gespeichert werden und somit auch manuell zurück kopiert werden könnten. Dazu kann man die Synchronisierung zeitlich steuern, womit man diese vollständig automatisieren kann. Wer noch weitere Informationen zu dem Docker-Container von FreeFileSync benötigt, findet hier bei Github noch mal alles detailliert beschrieben.

Die Nachteile gegenüber einem echten Backup-Programm sind aber doch deutlich. Ein Programm wie Duplicati zum Beispiel packt die Daten in von der Größe vorher festgelegte Teile und muss so weniger Dateien kopieren. Das ist vor allem bei vielen kleinen Dateien ein deutlicher Vorteil. In meinem Beispiel hat FreeFileSync beispielsweise über eine halbe Stunde benötigt um alle Dateien einmal zu synchronisieren, wohingegen Duplicati den gleichen Job in unter 2 Minuten erledigt hat. Weitere Vorteile könnt ihr in meiner Anleitung zur Installation von Duplicati nachlesen.

Nichts desto trotz kann es aber für manche Vorhaben der bessere Weg sein eine Synchronisierung zu nutzen und dafür habt ihr jetzt diese Anleitung. :)



Hinweis in eigener Sache


Wir kaufen grundsätzlich alles, was wir an Hardware für unsere Tests nutzen, selbst, da wir nur so den Einfluss von Herstellern auf unsere Tests komplett ausschließen können. Solltet ihr daher einen Teil der hier verwendeten Hardware käuflich erwerben wollen, wäre es lieb, wenn ihr die Hardware über einen unserer grünen Links kaufen würdet. So erhalten wir eine kleine Provision und für euch kostet es keinen Euro mehr. Das ermöglicht uns den Kauf neuer Hardware, die dann hier für weitere Tests genutzt werden kann. Vielen Dank! :)


Für diesen Test wurde folgende Hardware genutzt:





Bei Links, die mit einem * gekennzeichnet sind, handelt es sich um Affiliate-Links, bei denen wir bei einem Kauf eine Vergütung durch den Anbieter erhalten.
VG-Wort

Kommentare (0)


Diesen Artikel kommentieren:

Hinweis:

  • Nur Fragen / Antworten direkt zum Artikel
  • Kein Support für andere Hard- oder Software !


   
   
Ergebnis der Rechenaufgabe   Bild neu laden

   
optional
  Wenn Du eine E-Mail-Adresse angibst, informieren wir dich, sobald es hier etwas Neues gibt.
   
 
E-Mail Abo
E-Mail Benachrichtigung bei neuen Artikeln
RSS Feed
Abonniert unseren RSS-Feed
benötigt einen RSS-Reader