Syncthing einrichten: unlimitierte private Dropbox - Autostart

 

Auf der Suche nach einer Alternative zu Dropbox, bin ich auf das Tool Syncthing gestoßen. Mit Syncthing ist es möglich bestimmte Ordner mit anderen über das Internet zu teilen, z.B. auch als Backup. Im Gegensatz zu Dropbox, Google Drive oder OneDrive werden die Daten beim synchronisieren nicht auf einen zentralen Server kopiert, sondern direkt von einem Gerät zum anderen (P2P), ähnlich BitTorrent. Die Daten bleiben auf den verwendeten Rechnern und werden nicht bei einem Cloudanbieter abgelegt. Das Datenlimit für die Synchronisation wird somit nur von der Festplattengröße und der Netzwerkbandbreite limitiert. Im LAN, also im selben lokalen Netzwerk, werden die Daten direkt von einem Computer zum anderen synchronisiert. Sind die Computer über das Internet verbunden, verwendet Syncthing für den Verbindungsaufbau einen Verbindungsserver im Internet.

ⓘ
Syncthing kann beliebige Ordner, über das lokale LAN oder übers Internet, auf beliebig viele Geräte übertragen.
Jedes Gerät hilft den anderen die eingestellten Ordner synchron zu halten.

Ist die Synchronisation einmal eingerichtet, funktioniert diese sehr stabil. Da die Synchronisation auf beiden Gegenstellen eingerichtet werden muss, ist das Tool nicht so einfach zu bedienen und hat prinzipiell einen anderen Einsatzzweck als Dropbox. Wer aber große Datenmengen auf mehreren Geräten zur Verfügung haben will, ohne diese aus der Hand zu geben, ist bei Syncthing an der richtigen Adresse. Perfekt, zum Beispiel auch um Backups auf ein anderes Gerät im Internet zu übertragen.

Installation

Unter Windows oder Linux wird Syncthing nicht installiert, sondern einfach gestartet:

Die Bedienung erfolgt über den im Hintergrund gestarteten Webserver: http://localhost:8080

 

Um Syncthing automatisch zu starten (Autostart) kann eine der folgenden Varianten verwendet werden: 

Programme Autostart - beim Anmelden - Windows 10 

Geräte koppeln

Beim ersten Start wird eine eindeutige ID erzeugt. Die ID wird verwendet um Geräte miteinander zu verbinden. Mittels "ID anzeigen" kann die ID des Gerätes angezeigt werden.

Wenn wir Syncthing jetzt auf einem 2ten Gerät starten, können wir das erste Geräte verbinden, indem wir die ID des ersten Gerätes hinzufügen:

 

Die Verbindung muss zusätzlich am ersten Gerät bestätigt werden:

Ordner freigeben

Nachdem wir 2 Geräte miteinander verbunden haben, können wir die eigentliche Synchronisation einrichten.

Dazu gebe ich auf einem der 2 Geräte einen Ordner frei:

Für den Ordner müssen wir jetzt noch eine eindeutige ID vergeben (diese kann später nicht mehr verändert werden) und den Pfad zum Ordner:

Durch "Teile mit diesem Geräten" kann bestimmt werden, mit wem der Ordner geteilt wird.

Die angegebenen Geräte bekommen dann eine Einladung für die Synchronisation:

Am anderen Gerät kommt der selbe Dialog, wie am ersten Gerät. Die Verzeichnis ID darf an dieser Stelle nicht geändert werden, da diese für die Synchronisation verwendet wird. 

  Nach Angabe des Pfades und Speichern der Einstellungen, werden die Ordner synchronisiert.

Android

Die Android App hat mich etwas Zeit gekostet:

In der Syncthing Version 10.21 und Android 4.4 ist es nicht möglich in einen beliebigen Ordern auf der SD Karte zu schreiben. Siehe: https://github.com/syncthing/syncthing/issues/1126

Nachdem ich per USB eine Datei mit ".stfolder" in dem Ordner,  konnte ich diesen aber freigeben (Einstellung: "Keine Veränderungen zulassen")

Ich hab in den Einstellungen "Synchronisierung nur mit angeschlossenem Ladegerät" aktiviert, da die App sehr ressourcen hungrig ist und meine Akkulaufzeit erheblich beeinträchtigen wurde.

Autostart

Damit Syncthing automatisch im Hintergrund ausgeführt werden kann, müssen wir einen Startjob einrichten:

Windows - Syncthing automatisch starten

In Windows kann Syncthing automatisch in der Aufgabenplanung gestartet werden:

Argumente: -no-console -no-browser, da ansonsten bei jedem Systemstart die Eingabeaufforderung und ein Browserfenster geladen wird.

Ubuntu Linux - Syncthing automatisch starten

siehe https://gist.github.com/arudmin/5a13e9105814c3f568ec 

#!/bin/sh
### BEGIN INIT INFO
# Provides: syncthing
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Multi-user daemonized version of syncthing.
# Description: Starts the syncthing daemon for all registered users.
### END INIT INFO
 
# Replace with users you want to run syncthing clients for
syncthing_USERS="pi"
DAEMON=/etc/syncthing/syncthing
 
startd() {
  for stuser in $syncthing_USERS; do
    HOMEDIR=$(getent passwd $stuser | awk -F: '{print $6}')
    config=$HOMEDIR/.config/syncthing/config.xml
    if [ -f $config ]; then
      echo "Starting syncthing for $stuser"
      start-stop-daemon -b -o -c $stuser -S -u $stuser -x $DAEMON
    else
      echo "Couldn't start syncthing for $stuser (no $config found)"
    fi
  done
}
 
stopd() {
  for stuser in $syncthing_USERS; do
    dbpid=$(pgrep -fu $stuser $DAEMON)
    if [ ! -z "$dbpid" ]; then
      echo "Stopping syncthing for $stuser"
      start-stop-daemon -o -c $stuser -K -u $stuser -x $DAEMON
    fi
  done
}
 
status() {
  for stuser in $syncthing_USERS; do
    dbpid=$(pgrep -fu $stuser $DAEMON)
    if [ -z "$dbpid" ]; then
      echo "syncthing for USER $stuser: not running."
    else
      echo "syncthing for USER $stuser: running (pid $dbpid)"
    fi
  done
}
 
case "$1" in
  start) startd
    ;;
  stop) stopd
    ;;
  restart|reload|force-reload) stopd && startd
    ;;
  status) status
    ;;
  *) echo "Usage: /etc/init.d/syncthing {start|stop|reload|force-reload|restart|status}"
     exit 1
   ;;
esac
 
exit 0
sudo chmod +x /etc/init.d/syncthing
sudo update-rc.d syncthing defaults
sudo reboot

alternatives Setup: Docker

sudo docker pull syncthing/syncthing

sudo docker run --network=host \
-v /syncthing:/var/syncthing \
syncthing/syncthing:latest --always

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(am besten bewertete zuerst)]

✍anonym
22.10.2015 13:50
User: Andreas 
Hallo,
ja mir fällt etwas zu dem Thema ein. :-)
Bei mir läuft das perfekt auf dem Cubietruck sowie auf dem Desktop-PC mit Linux Mint.
Auf dem Desktop-Rechner mit Windows 7 64B läuft es, aber aus welchem Grund auch immer kann ich keine Ordner syncen, die wie z.B. der Thunderbird-Profile-Ordner normalen Usern nicht zugänglich sind.
Solche Ordner werden dann von syncthing mit 0 Byte angezeigt, angeblich sogar synchronisiert, auf dem Cubietruck, hat der Ordner dann aber auch nur 0 Byte.
Muss syncthing als Admin gestartet werden? Wie ist das mit der Schreibweise der Windowsverzeichnispfade? Linuxlike / oder windooftypisches \ ??
Auf dem Screenshot sieht das ja eher nach Linuxpfad aus mit /media... usw.

Nunja, prinzipiell ein geniales Stück Software, unter Win wird das Problem wohl zwischen Rückenlehne und Tastatur verursacht.
Weiter auf der Pirsch durch die Weiten auf der Suche nach der Lösung...

Grüße
Andreas

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details