Syncthing Setup

Vor ein paar Monaten hatte ich Syncthing schon einmal ausprobiert, erfolglos, darum zwischenzeitlich BTSync eingesetzt. Mittlerweile ist das quelloffene Programm ausgereift genug, dass es sich auch bei mir erfolgreich einsetzen ließ.

Syncthing synchronisiert Dateien und Ordner mit einem P2P-Protokoll zwischen mehreren Geräten. Im Vergleich zu Dropbox gibt es keinen zentralen Server, die Geräte können sich nur synchronisieren, wenn mindestens zwei gleichzeitig online sind.
Die anfängliche Konfiguration erfordert ein klein wenig mehr Aufwand, als bei BTSync. Mit dem Verteilen einer Ordner-ID ist es nicht getan.

Jedes Gerät hat eine eindeutige ID, möchten sich zwei Geräte synchronisieren, so müssen sich diese gegenseitig akzeptieren. Das hört sich schlimmer an, als es ist. Füge ich beispielsweise meinem Android-Handy dem Computer hinzu, so fotografiere ich einfach die als QR-Code generierte ID des Computers ab und akzeptiere danach am Computer das neue Gerät, hier mein Smartphone, welches sich automatisch anmeldet.
Ordner können dann beliebig über eine lesbare ID geteilt werden, was wiederum gegenseitigem Einverständnis bedarf.

Konfiguriert werden kann Syncthing unter allen System mit einer Webgui, zu erreichen auf
http://localhost:8384


Android

Wichtig ist hier, Adresse leer zu lassen, auf diese Weise holt sich Syncthing die benötigte IP automatisch vom Tracker-Server, was reibungslos funktioniert.
Ein Gerät als Introducer auszuwählen, z.B. einen Server, der 24/7 online ist, bringt den Vorteil, das automatisch zusätzlich mit allen "Clients" synchronisiert wird, die sich auch mit dem Server synchronisieren. Infolgedessen müssen weitere Geräte nicht mehr manuell hinzugefügt werden.


Windows - portabel
Batch Skript.bat mit

@echo off
%~d0
cd "%~d0%~p0"
IF %ERRORLEVEL%==0 GOTO PATH_IS_OK
exit
:PATH_IS_OK

rem set AppData=D:\Data\syncthing\
set AppData=%~d0%~p0
set LocalAppData=%AppData%
start "syncthing" /B /LOW syncthing.exe

erstellen, syncthing.exe muss sich im gleichen Verzeichnis befinden.


Linux - Server/Client
Als root Paketquelle hinzufügen:

# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | apt-key add -

# Add the "release" channel to your APT sources:
echo "deb http://apt.syncthing.net/ syncthing release" | tee /etc/apt/sources.list.d/syncthing.list

# Update and install syncthing:
apt-get update
apt-get install syncthing

Unprivilegierten Nutzer anlegen:
useradd -m --system syncthing

Root-Verzeichnis für Synchronisation erstellen:

mkdir /home/syncthing/Sync
chown syncthing:syncthing /home/syncthing/Sync


Die Syncthing-Konfigurations-GUI lokal weiterleiten, falls auf einem entfernten Server installiert wurde:
ssh -L 8384:localhost:8384 user@host.tld
darauffolgend lokal im Browser localhost:8384 aufrufen und nötige Einstellungen vornehmen.
SSH Portforwarding gibt noch mal ein eigenes Kapitel.
In der Firewall ist Port 22000 TCP freizugeben.