Syncthing
Ein verbreitetes Problem bei der Zusammenarbeit in Projekten, ist das Synchronisieren von Dateien zwischen mehreren Rechnern. Damit alle im Team mitarbeiten können, müssen digitale Dateien (wie etwa Präsentationen und Videomaterial für Veranstaltungen, Angebote, Rechnungen, etc) zwischen all unseren Rechner 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, läuft auf jedem Computer ein Programm, das Änderungen automatisch hochlädt. Das geht über eine normale Internetverbindung zu unserem Server, ist also durch diese begrenzt - oder begrenzt diese. Und so hatten wir in 2021 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. Natürlich hat das über die Internetverbindung 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: Clouds sind auch beim Thema Nachhaltigkeit keine sehr schöne Lösung. Zusätzlich zu allen Rechnern, die über eine Cloud synchronisiert werden, braucht es also noch einen Server, der rund um die Uhr online ist, dabei Strom verbraucht und Festplatten im Kreis dreht (oder zumindest mit Strom versorgt). Neben dem Stromverbrauch der Hardware selbst kommen Energiekosten für Klimatisierung und Vorhalten von Notstromaggregaten sowie die Netzwerkverbindung ins Rechenzentrum dazu. Außerdem verschleißen die Server und es entsteht Elektroschrott, auch Speichermedien (bei uns SSDs) verschleißen durch die Benutzung und müssen irgendwann gewechselt werden.
Kosten: Letztlich gibt es auch einen Kostenfaktor, der Speicherplatz in Rechenzentren kostet Geld, und so haben wir nicht sonderlich viel davon. Um bei großen Projekten auch große Datenmengen zu speichern und synchron zu halten, würden auf uns vermutlich monatliche Kosten von etwa 5 - 10 € zusätzlich zukommen, die wir uns bisher sparen möchten.
Die Lösung: Syncthing
Wir wollten es ja schon länger mal testen, aber nun haben wir es endlich geschafft: All die eben genannten Probleme werden mit der freien Software Syncthing für uns gelöst. 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 direkt über das lokale Netzwerk verbunden sind, erlaubt das also auch die maximale Geschwindigkeit von 1GBit/s, die wir in der Praxis sogar erreichen. Sind die Rechner nicht im gleichen Netzwerk, werden die Daten über das Internet übertragen. Somit spart Syncthing Resourcen wie Cloud-Speicherplatz und nutzt immer die schnellste mögliche Netzwerkverbindung. Letztlich können wir mit Syncthing auch Kosten sparen, denn teurer Cloudspeicher für unsere Veranstaltungen ist nicht mehr nötig.
Wir haben die Software nach ein paar Monaten Einsatz gut getestet und für sehr gut befunden. Stück für Stück ziehen wir mehr und mehr unserer Cloud-Daten auf diese Lösung um.
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 online sind. Man kann also nicht am Vorabend eine Datei speichern und am nächsten Tag erwarten, diese auf anderen Rechnern zu finden, wenn diese nicht gleichzeitig online waren. Somit verbleibt also ein kleiner Teil unserer Daten weiter in der Nextcloud.
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:
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..
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.
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.
Device IDs
Für uns intern: Hier eine Übersicht der Geräte, die potentiell eine Freigabe bekommen könnten:
Gerät | ID |
---|---|
aj/Laptop | PSMVICV-PO3WHHG-2MFN3JC-MMGT2BH-JBU5QBN-YI3TJOE-HUQ6SSO-UZI72QI |
eventbike wks02 | OM5VWB7-PWF2AJ2-SDCMS4E-LRICESM-GAJAZI5-QIQGW4S-QQIAXWR-G4D5XQI |
eventbike_wks04 | 2ZMCR4E-P2DFWDC-ZFYQGA2-GV45ZHT-WR6YY4M-NNO4NWM-SWKB5D4-6UHQZAU |
o/hp-deb | L22FQYN-S7H3LFG-H4YJ35U-OVJGMUX-AKKN6OQ-77KKI7T-MDOO6HG-ZPOIHA6 |
o/asdp-lmde4 | Q4BXTCF-2LU7I2Z-KTYPQF7-5V4PBXP-Q7MEVBB-QC47FJX-SSMSCWE-RTVG4AF |
m/_ | XUJDQBN-DGDVUVN-HFQXJE7-FKBS34F-TA4ALQB-EZI2QVD-LPKK2TM-6SIQYAM |
m/Laptop | V4VNVC4-7UYRFLE-J2B7BAU-XTX4JEK-O6JG2DB-NAY4ZTS-XEA6LEM-Q5S7KAP |
j/_ | 5FFNEAL-SBCYWRL-LQI76AO-6O6RBAG-XMF42MY-BJCC2YL-6L3U5LT-ZYCQHQF |