Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:docker:apps:resiliosync

Resilio Sync (Docker)

Die Seite befindet sich noch im Aufbau.

Resilio Sync (formals BitTorrent) ist eine Anwendung zur Dateisynchronisation zwischen zwei oder mehr Rechnern. Das Produkt nutzt auf einen auf dem BitTorrent-Protokoll basierende Peer-to-Peer-Ansatz. Die Synchronisation ist zwischen Rechnern im gleichen LAN und/oder über das Internet mit Rechnern an anderen Standorten erfolgen. Die Synchronisation mit Remote-Rechnern kann über Relay-Knoten erfolgen, sodass die Remote-Rechnern nicht direkt aus dem Internet erreichbar sein müssen.

Unter Linux und Windows wird Resilio Sync über eine Web-UI gesteuert, was eine Nutzung in einem Docker-Container erleichtert. Die Web-UI ist standardmäßig über Port 8888 zu erreichen.

Image
Docker Hub linuxserver/resilio-sync
linuxserver migriert derzeit seine Image nach ghcr.io
GitHub linuxserver/docker-resilio-sync
Architektur x86-64, armhf, arm64
Software
Produktseite Resilio Sync
GitHub
Beim Betrieb des Images linuxserver/resilio-sync unter älteren Linux-Versionen (z.B. Raspbian Buster) kann es zu Problemen mit der Aktualität der Bibliothek libseccomp2 kommen. In diesem Fall wird im Log eine Warnmeldung ausgegeben und der Container geht in eine Fehlerschleife.

Als eine der möglichen Lösungen kann bei Debian-basierten Systemen das backports-Repository eingebunden werden, das eine aktuelle Version der Bibliothek enthält.

docker run

Der Container wird wie folgt mit docker run eingerichtet und gestartet:

docker run -d \ 
  --name=resilio-sync \
  -e PUID=2000 \
  -e PGID=2000 \
  -e TZ=Europe/Berlin \
  -e UMASK_SET=022 `#optional` \
  -p 8888:8888 \
  -p 55555:55555 \
  -v /path/to/config:/config \
  -v /path/to/downloads:/downloads \
  -v /path/to/data:/sync \
  --restart unless-stopped \
  linuxserver/resilio-sync

Parameter

Dies sind die wichtigsten Parameter. Sofern sie mit einem „*“ markiert sind, sollte eine Anpassung erfolgen:

Parameter Funktion
-e PUID= * Vorgabe des Users, mit dem die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden.
-e PGID= * Vorgabe des Gruppe, mit der die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden.
-e TZ= * Vorgabe der lokalen Zeitzone im Format Gebiet/Ort.
-p Ports:
* 8888: Port der Web-UI, ggf. auf 80:8888 ändern, damit die UI über den Standard-Web-port erreichbar ist
* 55555: Port für Datenaustausch
-v * Volumes, siehe Unterabschnitt Volumes

Volumes

In der Konfiguration werden Volumes in der Regel im folgenden Format angegeben:

<Pfad auf dem Host>:<Pfad im Container>[:<Optionen>]

Die Volumes haben die folgenden Funktionen (maßgeblich ist der Pfad im Container):

Pfad im Container Funktion
/config Ablageort der Konfiguration
/downloads Ablageort für einzelne Dateien, die per Share-Link geladen wurden
/sync Teil des Dateisystems, im den die zu synchronisierenden Ordner abgelegt sind.
Hier liegen nicht nur Ordner, die vom System auf andere Knoten synchronisiert werden sollen, sondern auch Ordner, die von anderen Knoten auf das System synchronisiert werden.

docker-compose

Der Container wird wie folgt in der docker-compose.yml konfiguriert:

docker-compose.yml
version: "2.1"
services:
  resilio-sync:
    image: linuxserver/resilio-sync
    container_name: resilio-sync
    environment:
      - PUID=2000
      - PGID=2000
      - TZ=Europe/Berlin
      - UMASK_SET=022 #optional
    volumes:
      - /path/to/config:/config
      - /path/to/downloads:/downloads
      - /path/to/data:/sync
    ports:
      - 8888:8888
      - 55555:55555
    restart: unless-stopped

Integration in Træfik

Der Container kann mit den folgenden Eintragungen in der docker-compose.yml in Træfik integriert werden:

…

  resilio-sync:
    image: linuxserver/resilio-sync
    container_name: resilio-sync
    environment:
      - PUID=2000
      - PGID=2000
      - TZ=Europe/Berlin
      - UMASK_SET=022 #optional
    volumes:
      - /path/to/config:/config
      - /path/to/downloads:/downloads
      - /path/to/data:/sync
    ports:
      - 8888:8888
      - 55555:55555
    restart: unless-stopped
    labels:
     - traefik.http.routers.resilio.rule=Host(`resilio.example.com`)
     - "traefik.http.routers.resilio.tls.certResolver=default"
     - "traefik.http.routers.resilio.tls=true"
Sofern die Transportverschlüsselung – wie im Beispiel – mit Traefik realisiert wird, ist die Transportverschlüsselung durch Resilio Sync selbst zu deaktivieren.
Im Image linuxserver/resilio-sync ist die Transportverschlüsselung per https bereits per Default deaktiviert.

Konfiguration der Anwendung

Abschnitt wird noch ergänzt.

Inbetriebnahme

Abschnitt wird noch ergänzt.

https für WebUI

Der Zugang zur WebUI sollte per https gesichert werden, damit die Zugangsdaten nicht aus dem Datenstrom in Klartext abgefangen werden können. Sofern https nicht per Default aktiviert ist, kann dies durch die Ergänzung des Statements „force_https“ : true in der Konfigurationsdatei gesteuert werden:

    "webui" :
    {
        "listen" : "0.0.0.0:8888",
        "allow_empty_password" : false,
        "force_https" : true  // enable https
    }

Sofern die Transportverschlüsselung nicht von Resilio Sync vorgenommen werden soll1), ist die entsprechende Zeile auszukommentieren bzw. zu löschen.

Beim Anhängen einer neuen Zeile ist das Komma am Ende der vorangehenden Zeile zu ergänzen.
Beim Entfernen der letzten Zeile eines Blocks ist das entsprechende Komma zu entfernen.
Erfolgt die Transportverschlüsselung mit https durch einen Router wie Traefik, dann sollte die Transportverschlüsselung durch Resilio Sync deaktiviert werden.
Im Image linuxserver/resilio-sync ist die Transportverschlüsselung per https der Default deaktiviert.
1)
z.B. Sicherung durch Traefik
thoschwiki/docker/apps/resiliosync.txt · Zuletzt geändert: 17.04.2022 16:58 von thosch