Dateien, Ordner, Schmerzen

Nach über Tausend1 Jahren “Computer” ist es noch immer ein ungelöstes Problem:

Zwei Computer stehen einen halben Meter nebeneinander. Wie tauscht man jetzt Dateien aus?!?

Ja, dafür gibt es doch Nullmodem-Kabel, Infrarot-Schnittstellen, oder dieses moderne “Ethernet”.. Schon gehört? Setz doch “einfach” einen Samba Server auf, oder schick dir doch selbst eine Mail mit Anhang.

Ich kotz im dicken Strahl.

Wie? Du willst an beiden Computern die selben Dateien bearbeiten, und es soll immer aktuell bleiben, ohne die immer manuell rüber zu schieben?

Ach ja? Die Computer sind nicht im selben Netzwerk, und dank IPv4 NAT-Hölle können die sich nicht sehen?

Stellt sich raus, damals™ hat Dropbox das Problem gelöst.. Aber hey, es kann doch wohl nicht wahr sein, dass “der einfachste Weg” Dateien von Süderbrarup nach Flensburg zu synchronisieren einmal über den Atlantik und wieder zurück geht. Wie, was? Datenschutz?!? Nie gehört - Vielleicht doch lieber Google Drive oder OneDrive?

Strahl wird noch dicker!

Wir wären ja nicht im Self-Host Abenteuer, gäbe es nicht doch was brauchbares.

Es heißt Syncthing und es ist sehr gut!

Was mir sehr viel Freude bereitet - es läuft alles lokal, nur auf Maschinen die man selbst kontrolliert (und nicht über fremde Server in anderen Ländern, auf die irgendwelche Leute im Zweifel zugreifen ohne dass man es weiß). Noch ein bisschen Kryptographie drüber gestreut, Schlüssel-Austausch wird mittels QR-Codes vereinfacht. Dazu ein offenes Protokoll, mit UPnP zum entkommen aus der IPv4 NAT-Hölle..


Einfaches Setup: Zwei Computer, sonst nix.

Meine Mutti (die Beste!) hat ein MacBook und eine Wintendo-Maschine am Start. Und möchte den “Dokumente” Ordner immer gleich haben.

Also hab ich ihr Syncthing untergejubelt. Am Mac gibt es ein Homebrew Cask das alles mitbringt, für die Büchse muss man bisschen improvisieren: mit SyncTrayzor (oder davor QSyncthingTray - Hilfe, diese Namen.. grusel). Funktioniert alles wunderbar. Das größte Problem: man muss ab und an mal sicher stellen, dass beide Computer gleichzeitig laufen. Aber wenn man mal zu Hause ist, und Updates installiert und Probleme repariert lässt man beide parallel laufen, dann hat sich das.

Positiver Nebeneffekt: Die wichtigsten Sachen sind mehrfach gespeichert. Ist nicht direkt ein Backup, das ist klar, aber doch besser als gar nichts.


Fortgeschritten: Mein Setup (FreeBSD, MacBooks, Linux & iPhone)

Hab einen FreeBSD Server beim Hoster der immer läuft, also soll dieser doch “einmal alles” (mit Soße & Scharf) vorhalten, und die anderen Maschinen untereinander koordinieren.

Also eine neue Jail angelegt, den net/syncthing Port (mit pkg) installiert. Dann die passenden Löcher in die Firewall gebohrt, und den Reverse-Proxy mit LetsEncrypt-Zertifikat in die Jail zeigen lassen (Wiki-Seite). Fertig ist der Karton.

Auf meinem NAS zu Hause (natürlich auch FreeBSD weil ZFS!) genauso wie oben, bloß ohne Reverse-Proxy; Für die MacBooks gibt es Homebrew (noch weiter oben), für Linux ist was in den jeweiligen Repositories. Alles schick!

Am iPhone jedoch war es lange Zeit leider echt übel, da gab es nichts, und/oder nichts brauchbares. Irgendwann tauchte aber Möbius Sync auf (der Name, das Icon.. grusel). Es ist zwar “nur” die Web-Oberfläche von SyncThing in einem Safari-Frame, jedoch an den entsprechenden Stellen so modifiziert, damit dann alles funktioniert. Letztendlich landen die Dateien im App-Bundle der Files.app und sind dadurch von überall erreichbar. Wunderbar! Es lohnt sich da auch Geld einzuwerfen - die App wird aktiv entwickelt und funktioniert bei mir schon seit Jahren ohne Probleme. Das einzig nervige ist - ab und an muss man die App manuell starten: iOS Akku sparen und Hintergrund-Prozesse kommen nicht so gut miteinander klar. Aber gut, so ist es halt.


Sonst so

Das Leben macht man sich einfacher, wenn man den Server als “Introducer” an den anderen Computern einträgt, und ggf. das “Auto Accept” Setting anschaltet. Somit werden neue geteilte Ordner automatisch bei den anderen Computern zum Austausch angeboten und man spart sich den Weg über die QR-Codes. Auch hab ich meist “Staggered File Versioning” aktiviert, gebraucht hab ich das noch nie wirklich (puh, Glück).

Es ist in Go geschrieben. Persönlich hat die Sprache bei mir nicht verfangen, aber aus Anwender-Sicht wird alles richtig gemacht. Das Executable irgendwie herbekommen, starten, und dank statischem linken funktioniert das einfach so - und das auf Dauer.. Wunderbar.

Auf bald!


  1. Internet-Jahre ↩︎