Zum Inhalt

Syncthing

Ein verbreitetes Problem bei der Zusammenarbeit in Projekten, ist das Synchronisieren von Dateien zwischen mehreren Rechnern. Damit mehrere Leute zusammen digital arbeiten können, müssen digitale Dateien (wie etwa Präsentationen und Videomaterial, Angebote, Rechnungen, etc) zwischen allen Rechnern synchron gehalten werden.

Wenn auf einem Rechner jemensch noch eine Version der Lichtshow abspeichert, möchten wir nicht vor Ort mit USB-Sticks hantieren, oder uns viele Versionen per E-Mail zuschicken.

Hier beschreiben wir unsere Erfahrungen mit der Software "Syncthing", und auch ein paar erste Schritte. Bei Fragen, könnt ihr uns gern kontaktieren!

Das Problem der Cloud

Bisher haben wir für diesen Einsatzzweck eine Nextcloud genutzt. Dies ist eine freie Alternative, z. B. zu Dropbox oder Google Drive, die auf unserem eigenen Server läuft, dabei keine Daten an Großkonzerne überträgt und einige spezielle Features besitzt. Diese Software können wir insgesamt sehr empfehlen, jedoch kam sie bei uns gelegentlich an ihre Grenzen.

Geschwindigkeit: Damit die Dateien in die Cloud kommen, müssen sie an einen Server übertragen werden. Wenn die Daten dabei über eine normale Internetverbindung müssen, ist dies durch diese Geschwindigkeit begrenzt. In der Regel sind diese langsamer als eine direkte Verbindung zwischen Geräten. Beispielsweise könnten zwei Geräte, die physisch per Netzwerkkabel verbunden sind, mit 1000 MBit/s verbunden sein. Ein Internetanschluss hat aber oft geringere Geschwindigkeiten, beispielsweise 50 - 200 MBit/s.

Ein Beispiel, warum das ein Problem ist 2021 hatten wir beispielsweise eine Veranstaltung, auf der wir über Mobilfunk einen Livestream ins Internet realisiert haben, und gleichzeitig etwa 500MB Videos und Fotos für eine Präsentation auf einem Beamer zwischen den Geräten synchronisieren wollten. Über die Internetverbindung hat sehr lange gedauert (immerhin mussten die Daten von einem Rechner auf den Cloud-Server hoch- und von einem anderen wieder heruntergeladen werden), und uns dabei auch gleich noch die Internetbandbreite verbraucht, sodass die Stream-Qualität zeitweise beeinträchtigt war.

Umweltauswirkungen: Die Daten zentral in einer Cloud zu speichern, hat beim Thema Nachhaltigkeit zwei große Probleme. Erstens braucht es zusätzlich zu allen verbundenen Rechnern noch einen zusätzlichen Server, der rund um die Uhr online ist, dabei Strom verbraucht, aber auch Elektroschrott produziert (z. B. durch Hardwaretausch und Verschleiß der Festplatten). Zweitens verbraucht der Datentransfer durch das Internet mehr Strom und Hardware, wobei eine direkte Verbindung zwischen zwei Geräten in der Regel sparsamer ist.

Kosten: Letztlich gibt es auch einen Kostenfaktor, der Speicherplatz in Rechenzentren kostet Geld, und wir haben nicht sonderlich viel davon. Cloudanbieter lassen sich ihre Dienstleistungen natürlich gut bezahlen und üben dabei sogenannten "vendor lock-in" aus, um ihre Kund*innen an ihre Dienste zu binden.

Die Lösung: Syncthing

Die eben genannten Probleme werden mit der freien Software Syncthing umgangen. Syncthing ist kein klassischer Cloud-Dienst und benötigt keine Server. Stattdessen werden die Dateien direkt zwischen den Rechnern synchronisiert, auf denen die Software installiert ist. Wenn die Rechner über das lokale Netzwerk miteinander verbunden sind, wird die maximale physische Bandbreite (oft 1GBit/s) verwendet, ohne dass ein teurer Internetanschluss notwendig ist.

Sind die Rechner nicht im gleichen Netzwerk, werden die Daten über das Internet übertragen. Damit spart Syncthing immer noch Resourcen wie Cloud-Speicherplatz und nutzt immer die kürzeste mögliche Netzwerkverbindung.

Wir haben die Software bereits mehrere Jahre erfolgreich im Einsatz und nutzen sie für fast alle Anwendungsfälle.

Wofür Syncthing nicht verwendet werden sollte

An dieser Stelle bleibt erwähnenswert, dass Syncthing kein 100%iger Ersatz für die Cloud (und auch nicht so gedacht) ist, denn Dateien werden nur aktualisiert, während die Geräte gleichzeitig online sind. Das folgende ist also möglich:

  • Rechner A wird gestartet und erstellt eine Datei X
  • Rechner B wird gestartet, Datei X wird übertragen
  • Rechner A wird heruntergefahren
  • Rechner B kann die Datei X benutzen

Das folgende funktioniert jedoch nicht:

  • Rechner A wird gestartet und erstellt Datei X
  • Rechner A wird heruntergefahren
  • Rechner B wird gestartet
  • Die Datei X wurde allerdings nie übertragen

Syncthing ist also nicht geeignet, wenn selten mehrere Geräte gleichzeitig online sind oder Daten sehr schnell verfügbar sein müssen. Für kleinere Ordner, z. B. aktuelle Projektdaten, lohnt sich mitunter weiterhin eine klassische Cloud.

Für große Bilderordner, Archive o. ä. ist Syncthing jedoch uneingeschränkt zu empfehlen.

Syncthing einrichten und installieren

Wenn Ihr Syncthing selbst nutzen wollt, z. B. um im eventbike mitzumachen oder es für eure eigenen Projekte zu probieren, fassen wir kurz die wichtigsten Schritte zusammen.

Wir Ihr Syncthing installiert, schaut ihr am besten jeweils aktuell auf der Webseite der Entwickler*innen nach. Dort gibt es zum Zeitpunkt der Erstverfassung auch einen Link zu deutschen Videoanleitungen in den ersten Absätzen. Wir selbst nutzen Debian GNU/Linux als Betriebssystem und installieren das Paket über apt install syncthing aus den offiziellen Paketquellen.

Wenn Ihr Micro$oft Windows verwendet, gibt es auf von SyncTrayzor einen Installer, der alles in einem inklusive kleine grafische Oberfläche auf eurem System installiert. Etwas runterscrollen, unter "Quick Links" werdet ihr dann fündig. Diese Methode ist zumindest für Erstnutzer*innen deutlich einfacher. Es gibt außerdem syncthingtray, auch für M$ Windows, das haben wir uns aber noch nicht näher angesehen.

Die Software selbst arbeitet standardmäßig über eine lokale Weboberfläche. Damit sie erreichbar ist, sucht ihr im Menü den Punkt "Start Syncthing" und führt diesen aus. Um die Software beim Systemstart automatisch zu starten, fügen wir diese in die betriebssystemabhängige Autostart-Liste ein. Anschließend kann man die Web UI immer über den Menüpunkt "Syncthing Web UI" aufrufen und dort loslegen.

Ordner Freigeben

Damit man Ordner freigeben und synchronisieren kann, muss man Geräte anlegen. Es gibt in der Webseite den Menüpunkt "Actions", wo man seine Geräte-ID als QR-Code oder Zeichenkette anzeigen kann. Diese muss an das andere Gerät übertragen und dort über den Knopf "Gerät hinzufügen" eingetragen werden.

Anschließend kann man in dem "Folders" Menü lokale Ordner wählen und mit anderen teilen. Dazu findet sich unter dem Eintrag in der Oberfläche ein Knopf, um neue Ordner freizugeben: Add Folder Knopf in der Syncthing-Oberfläche

In dem sich öffnenden Popup müsst ihr dann den Ordnerpfad angeben, den ihr teilen wollt. Beim Tippen werden euch allerdings auch schon Vorschläge gemacht. Dann geht ihr auf den "Sharing" Tab und wählt die Geräte aus, mit denen ihr den Ordner teilen wollt und speichert. Diese werden dann automatisch gescannt und über die schnellstmögliche Netzwerkverbindung übertragen sobald die Empfängerin den Ordner akzeptiert..

Add Folder Knopf in der Syncthing-Oberfläche

Probiert es gerne einfach mal aus. Besonders cool: Syncthing nutzt ein sehr fortgeschrittenes Verfahren, um Dateien zu komprimieren, und ist daher recht effizient.

Tipps und Tricks

Wir können hier wohl kaum die gesamte Syncthing-Anleitung wiederholen und möchten das auch nicht. Dennoch teilen wir ein paar nennenswerte Details, die man sonst vielleicht schnell übersieht oder nicht kennt.

Keine Ordner verschachteln: Wir haben schlechte Erfahrungen damit gemacht, Ordner zu verschachteln. Beispielsweise klingt es verlockend, einen Ordner "ProjektAllgemein" zu erstellen, und darin einen Ordner "Öffentlich", und diesen an andere Leute freizugeben. Leider ist Syncthing im Umgang mit solchen Strukturen eher verwirrend (wenn auch nicht unmöglich). Besser ist es, die Ordner nebeneinander anzulegen.

Introducer-Geräte: Wenn Ihr ein neues Gerät hinzufügt (oder die Einstellungen bearbeitet), gibt es unter dem Tab "Sharing" die Funktion "Introducer". Damit müsst Ihr neue Geräte nicht auf jedem Gerät einzeln anmelden, sondern nur auf einem. Sofern sie sich eine Freigabe teilen (z. B. einen Projektordner), werden die Geräte dann überall angezeigt und können sich auch gegenseitig austauschen. Wir empfehlen, diese Option innerhalb von Projektteams grundsätzlich zu verwenden.

Dateiversionierung: Für jeden Ordner könnt Ihr einzelne Einstellungen zur Dateiversionierung einrichten. So könnt Ihr z. B. gelöschte oder veränderte Dateien für einen gewissen Zeitraum aufheben, um diese notfalls wiederherzustellen.

Zurück zum Seitenanfang