Syncthing: Dateien zwischen Geräten synchronisieren – ohne Cloud
Dateien direkt zwischen deinen Geräten abgleichen, verschlüsselt und ohne fremde Cloud: Syncthing als Peer-to-Peer-Sync hinter Traefik, mit Backup-Tipps.
Inhaltsverzeichnis
Dropbox ohne Dropbox: Syncthing gleicht Ordner direkt zwischen deinen Geräten ab – verschlüsselt, ohne dass die Dateien je auf einem fremden Server liegen. Auf einem immer erreichbaren VPS wird dein Server zum zuverlässigen Sync-Knoten, der auch dann vermittelt, wenn Laptop und Handy nie gleichzeitig online sind.
Was bauen wir?
Einen dauerhaft laufenden Syncthing-Knoten mit Syncthing v2.1.2 hinter Traefik. Am Ende erreichst du die Weboberfläche verschlüsselt unter deiner Domain, hast sie mit einem Passwort abgesichert und kannst deine Geräte über ihre Geräte-IDs koppeln, sodass ausgewählte Ordner automatisch abgeglichen werden. Anders als Nextcloud ist Syncthing kein zentraler Speicher, sondern ein Peer-to-Peer-Abgleich: Jedes Gerät hält eine vollständige Kopie, der Server ist nur ein besonders zuverlässiger Teilnehmer.
Voraussetzungen
- Ein Server mit laufendem Traefik und Docker Compose
- Eine Subdomain, die auf den Server zeigt – im Folgenden
DEINE_DOMAIN - Die Möglichkeit, in der Firewall den Port 22000 (TCP+UDP) zu öffnen – darüber läuft der eigentliche Sync
- Syncthing auf mindestens einem weiteren Gerät (Desktop, oder die Android-App)
VPS 1000 G12
4 vCore · 8 GB RAM · 256 GB NVMe
ab 10,36 €/Monat
Ein kleiner VPS als Dauer-Sync-Knoten reicht völlig – Syncthing ist genügsam.
💶 5 € Gutschein für netcup-Neukunden:36nc17844976032
(nur Neukunden, keine Domains)
Schritt für Schritt
Schritt 1: Verzeichnisse anlegen – und die Rechte gleich richtig setzen
Syncthing speichert seine Konfiguration und die synchronisierten Daten in zwei Ordnern. Der Container läuft als normaler Benutzer (UID 1000), deshalb müssen die Ordner diesem gehören – das ist die häufigste Startfalle:
mkdir -p /opt/syncthing/config /opt/syncthing/data
chown -R 1000:1000 /opt/syncthing/config /opt/syncthing/data
cd /opt/syncthingOhne chown startet Syncthing nicht
permission denied“ im Log). Das chown auf UID/GID 1000 vor dem ersten Start verhindert das – mehr zu Rechten in Benutzer & Rechte.Schritt 2: Compose-Datei
Ersetze DEINE_DOMAIN. Wichtig ist der Unterschied zwischen Weboberfläche und Sync-Verkehr:
services:
syncthing:
image: syncthing/syncthing:2.1.5
restart: unless-stopped
hostname: koch-server
environment:
PUID: '1000'
PGID: '1000'
volumes:
- ./config:/var/syncthing/config
- ./data:/var/syncthing/Sync
ports:
- "22000:22000/tcp" # Sync-Protokoll (direkt, nicht über Traefik)
- "22000:22000/udp" # Sync über QUIC
- "21027:21027/udp" # lokale Geräte-Erkennung
networks: [proxy]
labels:
- "traefik.enable=true"
- "traefik.http.routers.syncthing.rule=Host(`DEINE_DOMAIN`)"
- "traefik.http.routers.syncthing.entrypoints=websecure"
- "traefik.http.routers.syncthing.tls.certresolver=le"
- "traefik.http.services.syncthing.loadbalancer.server.port=8384"
networks:
proxy:
external: trueNur die Weboberfläche (Port 8384) läuft über Traefik – dafür sorgen die Labels. Der eigentliche Sync-Verkehr (Port 22000) ist ein eigenes Protokoll, kein HTTP, und wird deshalb direkt über ports: veröffentlicht, nicht über Traefik geleitet. Genau diese Trennung erklärt Docker-Netzwerke verstehen.
Schritt 3: Firewall öffnen und starten
Öffne den Sync-Port in der Firewall (sonst finden sich die Geräte nicht):
ufw allow 22000/tcp
ufw allow 22000/udpDann starten:
docker compose up -dGeduld: Traefik wartet auf den Healthcheck
healthy ist. Der erste Check läuft aber erst nach dem Standard-Intervall von 60 Sekunden – bis dahin bekommst du über die Domain eine Traefik-404. Das ist normal; kurz warten. Prüfen: docker inspect -f '{{.State.Health.Status}}' syncthing-syncthing-1.Sobald der Status healthy ist, antwortet die Oberfläche mit gültigem HTTPS:
curl -sI https://DEINE_DOMAIN/ | head -1HTTP/2 200Schritt 4: Die Weboberfläche und der wichtige Sicherheitsschritt
Öffne https://DEINE_DOMAIN/. Die Oberfläche ist standardmäßig auf Englisch; du siehst dein Gerät („This Device“) mit seiner Geräte-ID, Version und Status:

Auf einer frischen Installation warnt Syncthing oben mit rotem Banner, dass noch kein GUI-Passwort gesetzt ist – das ist ernst zu nehmen: Ohne Passwort kann jeder, der die Oberfläche erreicht, auf deine Dateien zugreifen. Setze daher sofort unter Actions → Settings → GUI („Aktionen → Einstellungen") einen Benutzernamen und ein starkes Passwort. Danach fordert Syncthing bei jedem Zugriff eine Anmeldung – zusätzlich zum HTTPS von Traefik.
GUI-Passwort in der Oberfläche setzen, nicht per generate als root
syncthing generate als root im Container ausführt, schreibt die config.xml mit falschem Besitzer – danach startet Syncthing nicht mehr (permission denied). Falls das passiert: chown -R 1000:1000 /opt/syncthing/config und neu starten.Schritt 5: Ein zweites Gerät koppeln
Syncthing verbindet Geräte über ihre Geräte-ID – einen langen, eindeutigen Schlüssel. Die Kopplung ist beidseitig: Jedes Gerät muss das andere kennen. Klicke auf Add Remote Device („Entferntes Gerät hinzufügen“):

Die ID des anderen Geräts findest du dort unter Actions → Show ID („Aktionen → Meine ID“) als Text und QR-Code. Trage sie hier ein, vergib einen Namen und speichere. Auf dem anderen Gerät wiederholst du das mit der ID deines Servers. Sobald beide Seiten sich kennen, erscheint das Gerät als „verbunden“.
Schritt 6: Einen Ordner teilen
Jetzt legst du fest, was abgeglichen wird. Über Add Folder („Ordner hinzufügen“) wählst du einen Pfad (auf dem Server z. B. /var/syncthing/Sync/dokumente, was dem gemounteten ./data-Ordner entspricht) und gibst ihm eine Ordner-ID. Unter dem Reiter Sharing („Teilen“) hakst du die Geräte an, mit denen der Ordner synchronisiert werden soll. Auf dem anderen Gerät bestätigst du die eingehende Freigabe – ab dann hält Syncthing beide Seiten automatisch identisch.
Dateiversionierung als Schutz vor Versehen
.stversions-Ordner aufbewahrt. Wichtig: Das ist ein Schutz vor Versehen, kein Backup (siehe unten).Wenn es nicht funktioniert
Der Container startet nicht / Neustart-Schleife mit permission denied. Die Rechte am config- oder data-Ordner stimmen nicht. chown -R 1000:1000 /opt/syncthing/config /opt/syncthing/data und neu starten (siehe Warnung in Schritt 1).
Die Oberfläche gibt eine Traefik-404, obwohl der Container läuft. Der Healthcheck ist noch nicht healthy – Traefik leitet dann bewusst nicht. Bis zu 60 Sekunden nach dem Start abwarten und den Status prüfen (siehe Warnung in Schritt 3).
Zwei Geräte verbinden sich nicht. Prüfe drei Dinge: Ist Port 22000 (TCP+UDP) in der Firewall offen? Hast du die ID auf beiden Geräten eingetragen (die Kopplung ist beidseitig)? Und stimmt die ID exakt (Buchstabendreher fallen leicht auf, weil eine Prüfsumme eingebaut ist)? Der Status „Getrennt“ mit korrekt eingetragenen IDs deutet fast immer auf den Firewall-Port.
Ein Ordner bleibt bei „Synchronisiere 0 %" hängen. Meist fehlt auf der Gegenseite die Bestätigung der Freigabe, oder die Ordner-ID stimmt nicht überein – sie muss auf beiden Geräten identisch sein. Prüfe außerdem die Schreibrechte im Zielordner.
Nach dem Setzen des GUI-Passworts kein Zugriff mehr. Passwort vergessen? Du kannst es in der config.xml (<gui>-Block) zurücksetzen, indem du die <user>- und <password>-Zeilen entfernst und Syncthing neu startest – danach ist die Oberfläche wieder ohne Login erreichbar (und du setzt es sofort neu).
Wartung & Backups
- Updates. Setze den Image-Tag (
syncthing/syncthing:2.1.5) gelegentlich auf die aktuelle Version unddocker compose up -d. Syncthing hält sich innerhalb einer Hauptversion kompatibel; beim Sprung auf eine neue Hauptversion (wie hier v2) vorher die Release-Notes lesen. Den Rest erledigt dein normaler Update-Prozess. - Backup ist Pflicht – Sync ist kein Backup. Das ist der wichtigste Punkt: Syncthing spiegelt Änderungen, also auch versehentliches Löschen und Verschlüsselung durch Ransomware. Sichere den Sync-Ordner deshalb zusätzlich mit einem echten, versionierten Backup, das der Sync nicht erreichen kann – etwa Restic auf dem Server. Auch der
config-Ordner (Geräte-IDs, Ordnerfreigaben) gehört ins Backup. - Ehrlicher Aufwand. Einmal eingerichtet läuft Syncthing sehr wartungsarm. Behalte den Speicherplatz im Blick (
df -h), wenn du große Ordner mit Versionierung abgleichst, und miste alte.stversions-Ordner gelegentlich aus.
Zuletzt aktualisiert: 09.09.2026
Feedback per E-Mail: feedback@serverkueche.de
Das könnte dir auch schmecken

Stirling-PDF: der PDF-Werkzeugkasten auf dem eigenen Server
PDFs zusammenführen, komprimieren, umwandeln, per OCR durchsuchbar machen – lokal statt bei Online-Diensten: …

FreshRSS: der eigene RSS-Reader
Alle Nachrichtenquellen an einem Ort, ohne Algorithmus und Tracking: FreshRSS als selbstgehosteter RSS-Reader hinter …

Homepage: das Dashboard für alle deine selbstgehosteten Dienste
Ein aufgeräumtes Start-Dashboard für deinen Server: Homepage verlinkt alle Dienste, zeigt Systemlast und live den …