HomeStart / GuidesAnleitungen / Syncthing on a VPS/ Syncthing auf einem VPS

Syncthing on a VPS: an always-on node for a laptop and a phone that are never awake togetherSyncthing auf einem VPS: ein Always-on-Knoten für Laptop und Handy, die nie gleichzeitig wach sind

Syncthing has no server. Two devices with the app installed find each other and copy a folder back and forth directly, which works beautifully until your laptop is asleep and your phone is on the other side of the country — nothing syncs, because there is nothing in the middle to hold the file while it waits. Add a third device that never sleeps and the problem disappears.Syncthing hat keinen Server. Zwei Geräte mit installierter App finden sich gegenseitig und kopieren einen Ordner direkt hin und her — das funktioniert wunderbar, bis dein Laptop schläft und dein Handy am anderen Ende des Landes ist: Nichts synchronisiert mehr, weil es nichts in der Mitte gibt, das die Datei hält, während sie wartet. Füge ein drittes Gerät hinzu, das nie schläft, und das Problem verschwindet.

What Syncthing is, and the trick an always-on node buys youWas Syncthing ist, und welchen Trick ein Always-on-Knoten bringt

Syncthing is peer-to-peer file synchronisation: every device added to a shared folder keeps a full, independent copy of it, and devices talk to each other directly over an encrypted connection to reconcile changes. There is no central server holding a canonical copy and no account to sign up for — just a set of devices, each identified by a long device ID, that have agreed to share one or more folders with each other. With only two devices, syncing only happens when both are online at once, which is exactly the gap an always-on node closes. Add the VPS to both your laptop's and your phone's shared folder and you have three copies instead of two, one of which never sleeps: your laptop pushes a change the moment it is online, your phone pulls it whenever it next checks in, and the two never have to be awake at the same moment as each other. That is the entire trick — not extra storage, not a dashboard, just a peer that is reliably reachable.Syncthing ist Peer-to-Peer-Dateisynchronisation: Jedes Gerät, das einem geteilten Ordner hinzugefügt wird, behält eine vollständige, unabhängige Kopie davon, und die Geräte sprechen direkt über eine verschlüsselte Verbindung miteinander, um Änderungen abzugleichen. Es gibt keinen zentralen Server, der eine kanonische Kopie hält, und kein Konto, für das man sich anmelden müsste — nur eine Menge von Geräten, jedes mit einer langen Geräte-ID identifiziert, die sich darauf geeinigt haben, einen oder mehrere Ordner miteinander zu teilen. Mit nur zwei Geräten passiert Synchronisation nur, wenn beide gleichzeitig online sind, und genau diese Lücke schließt ein Always-on-Knoten. Fügst du den VPS sowohl zum geteilten Ordner deines Laptops als auch zu dem deines Handys hinzu, hast du drei Kopien statt zwei, von denen eine nie schläft: Dein Laptop schiebt eine Änderung hinaus, sobald er online ist, dein Handy holt sie sich, sobald es das nächste Mal nachschaut, und die beiden müssen nie im selben Moment wach sein wie einander. Das ist der ganze Trick — kein zusätzlicher Speicher, kein Dashboard, nur ein Peer, der zuverlässig erreichbar ist.

The compose fileDie Compose-Datei

Pin the tag rather than tracking latest, so an update is something you choose:Pinne den Tag, statt latest zu verfolgen, damit ein Update etwas ist, das du entscheidest:

services:
  syncthing:
    image: syncthing/syncthing:X.Y.Z   # not a real tag — replace with the current release from hub.docker.com/r/syncthing/syncthing/tags
    hostname: vps-node
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - st-config:/var/syncthing/config
      - st-data:/var/syncthing/Sync
    ports:
      - "127.0.0.1:8384:8384"
      - "22000:22000/tcp"
      - "22000:22000/udp"

volumes:
  st-config:
  st-data:

PUID/PGID make the container run as your own non-root user, so files written into st-data are not owned by root on the host — 1000/1000 is only the conventional first-user ID on a fresh Ubuntu box, so run id -u and id -g on the VPS and use those numbers instead if your user's IDs differ. Config and data get separate volumes on purpose: one holds Syncthing's own settings and certificate, the other the actual synced folder, which matters the moment you want to back up or move just the data. Bring it up with docker compose up -d over an SSH session set up the way connect to your VPS over SSH describes, then check it started with docker compose logs -f syncthing.PUID/PGID sorgen dafür, dass der Container als dein eigener Non-Root-Nutzer läuft, sodass Dateien, die in st-data geschrieben werden, auf dem Host nicht root gehören — 1000/1000 ist nur die konventionelle Erst-Nutzer-ID auf einer frischen Ubuntu-Maschine, führe also id -u und id -g auf dem VPS aus und verwende stattdessen diese Zahlen, falls die IDs deines Nutzers abweichen. Konfiguration und Daten bekommen absichtlich getrennte Volumes: Eines enthält Syncthings eigene Einstellungen und Zertifikat, das andere den tatsächlich synchronisierten Ordner — das ist wichtig, sobald du nur die Daten sichern oder verschieben willst. Fahre es mit docker compose up -d über eine SSH-Sitzung hoch, die du so einrichtest, wie es über SSH mit deinem VPS verbinden beschreibt, und prüfe dann mit docker compose logs -f syncthing, ob es gestartet ist.

Sizing: RAM is small, disk is the whole questionDimensionierung: RAM ist klein, die Festplatte ist die eigentliche Frage

Syncthing itself is light — indexing and reconciling a modest set of folders idles well under 512 MB of RAM even with several devices connected, and the CPU only spikes briefly while hashing a large new file. RAM is close to a non-issue on any tier here.Syncthing selbst ist leichtgewichtig — das Indizieren und Abgleichen eines überschaubaren Satzes von Ordnern läuft im Leerlauf selbst mit mehreren verbundenen Geräten deutlich unter 512 MB RAM, und die CPU schlägt nur kurz aus, während eine große neue Datei gehasht wird. RAM ist hier auf praktisch jedem Tarif kein Thema.

Disk is the real question, because it is not fixed — it equals however much data lives in the folders you choose to share, plus a little overhead for Syncthing's own index. A phone's camera roll plus a folder of documents and a couple of project directories might total a few gigabytes; a full photo or video library runs well past that. Size the tier by the folders you actually plan to share: Basic's 50 GB is comfortable for a phone's photos plus a handful of document and project folders, and a genuinely small set of folders runs fine on Starter's 25 GB instead — Syncthing does not care which tier it runs on, only how much room the folders take up. A media library or several devices' worth of folders is a reason to move to Standard or larger, or add storage through add extra storage to your VPS, not a reason to look for more RAM.Die Festplatte ist die eigentliche Frage, weil sie nicht fest ist — sie entspricht genau der Datenmenge, die in den Ordnern liegt, die du zum Teilen auswählst, plus etwas Overhead für Syncthings eigenen Index. Die Kamerarolle eines Handys plus ein Ordner mit Dokumenten und ein paar Projektverzeichnissen kommen vielleicht auf ein paar Gigabyte; eine vollständige Foto- oder Videobibliothek liegt weit darüber. Dimensioniere den Tarif nach den Ordnern, die du tatsächlich teilen willst: Basics 50 GB sind komfortabel für die Fotos eines Handys plus eine Handvoll Dokument- und Projektordner, und ein wirklich kleiner Satz von Ordnern läuft stattdessen problemlos auf Starters 25 GB — Syncthing ist es egal, auf welchem Tarif es läuft, nur wie viel Platz die Ordner beanspruchen. Eine Medienbibliothek oder die Ordner mehrerer Geräte zusammen sind ein Grund, zu Standard oder größer zu wechseln, oder Speicherplatz zu deinem VPS hinzufügen zu ergänzen, kein Grund, nach mehr RAM zu suchen.

The web GUI: loopback only, over a tunnelDie Web-GUI: nur Loopback, über einen Tunnel

Syncthing's admin GUI listens on port 8384 inside the container, and the compose file above binds the host side to 127.0.0.1 only, so nothing on the open internet can reach it. To use it, tunnel over SSH from your own machine:Syncthings Admin-GUI lauscht innerhalb des Containers auf Port 8384, und die Compose-Datei oben bindet die Host-Seite ausschließlich an 127.0.0.1, sodass nichts aus dem offenen Internet sie erreichen kann. Um sie zu nutzen, tunnelst du über SSH von deiner eigenen Maschine aus:

ssh -L 8384:127.0.0.1:8384 youruser@your-vps

Then open http://127.0.0.1:8384 locally, which is now talking to the VPS through the tunnel. Do this to accept devices and folders; you do not need the tunnel open the rest of the time, since Syncthing keeps syncing without it. Never publish 8384 directly — there is no login screen by default, so anyone who can reach the port can reach the whole configuration. If you want plain browser access without a tunnel, put it behind Caddy on its own subdomain with HTTP basic auth in front, never bare.Öffne dann lokal http://127.0.0.1:8384, das jetzt über den Tunnel mit dem VPS spricht. Tu das, um Geräte und Ordner zu akzeptieren; den Tunnel musst du sonst nicht offen halten, da Syncthing auch ohne ihn weiter synchronisiert. Veröffentliche 8384 niemals direkt — es gibt standardmäßig keinen Login-Bildschirm, sodass jeder, der den Port erreicht, die gesamte Konfiguration erreichen kann. Willst du einfachen Browser-Zugriff ohne Tunnel, stelle es hinter Caddy auf einer eigenen Subdomain mit HTTP-Basic-Auth davor, niemals nackt.

Read this before you buy: the NAT catch on port 22000Lies das, bevor du kaufst: der NAT-Haken bei Port 22000

Port 22000, both TCP and UDP, is the actual sync protocol — the connection your laptop and phone use to talk to the VPS. Whether that connection is direct depends on your plan's networking:Port 22000, sowohl TCP als auch UDP, ist das eigentliche Sync-Protokoll — die Verbindung, über die dein Laptop und dein Handy mit dem VPS sprechen. Ob diese Verbindung direkt ist, hängt vom Networking deines Tarifs ab:

Global discovery and relay servers are both on by default and need no inbound port at all — that is precisely what makes "it still works, just slower" true rather than wishful. Read NAT IPv4 vs a dedicated IP and NAT IPv4, ports and forwarding before assuming a specific port is open on your plan.Globale Discovery und Relay-Server sind beide standardmäßig aktiv und brauchen überhaupt keinen eingehenden Port — genau das macht „es funktioniert trotzdem, nur langsamer“ wahr statt reinem Wunschdenken. Lies NAT IPv4 vs. dedizierte IP und NAT IPv4, Ports und Weiterleitung, bevor du davon ausgehst, dass ein bestimmter Port bei deinem Tarif offen ist.

Adding the VPS as a device, and folder typesDen VPS als Gerät hinzufügen, und Ordnertypen

Open the tunnelled GUI, go to Actions → Show ID, and copy the VPS's device ID, or scan the QR code from a phone's Syncthing app. On your laptop's Syncthing, use Add Remote Device, paste the ID, and accept the pairing request that appears on the VPS's own GUI. Then share a folder with the newly added device from either side — the VPS shows it as a pending folder to accept, and you choose where inside st-data it lands. Repeat from your phone; a folder shared between laptop and VPS does not automatically include the phone until you add the phone to that same folder too.Öffne die getunnelte GUI, gehe zu Aktionen → ID anzeigen, und kopiere die Geräte-ID des VPS, oder scanne den QR-Code aus der Syncthing-App eines Handys. Nutze in Syncthing auf deinem Laptop Remote-Gerät hinzufügen, füge die ID ein, und akzeptiere die Pairing-Anfrage, die auf der eigenen GUI des VPS erscheint. Teile dann von beiden Seiten aus einen Ordner mit dem neu hinzugefügten Gerät — der VPS zeigt ihn als ausstehenden Ordner zum Akzeptieren an, und du wählst, wo innerhalb von st-data er landet. Wiederhole das von deinem Handy aus; ein zwischen Laptop und VPS geteilter Ordner schließt das Handy nicht automatisch ein, bis du das Handy ebenfalls zu genau diesem Ordner hinzufügst.

Every folder also has a type, set per device that shares it. Send & Receive is the default, where changes flow both ways. Receive Only means this device accepts incoming changes but never sends its own local edits back out — a reasonable setting for the VPS's side of a folder you mainly want held somewhere, since a stray edit made directly on the VPS cannot propagate back to your laptop or phone. It is not a backup guarantee, though: receive-only stops this device's local changes going out, but a deletion made on a sending device is just another incoming change, and still replicates in.Jeder Ordner hat außerdem einen Typ, der pro Gerät festgelegt wird, das ihn teilt. Senden & Empfangen ist die Standardeinstellung, bei der Änderungen in beide Richtungen fließen. Nur empfangen bedeutet, dass dieses Gerät eingehende Änderungen akzeptiert, aber nie seine eigenen lokalen Bearbeitungen nach außen sendet — eine sinnvolle Einstellung für die Seite des VPS bei einem Ordner, den du hauptsächlich irgendwo aufbewahrt haben willst, da eine versehentliche Änderung, die direkt auf dem VPS gemacht wird, nicht zurück auf deinen Laptop oder dein Handy propagieren kann. Es ist allerdings keine Backup-Garantie: Nur-Empfangen stoppt, dass die lokalen Änderungen dieses Geräts nach außen gehen, aber eine Löschung, die auf einem sendenden Gerät gemacht wird, ist einfach eine weitere eingehende Änderung und repliziert trotzdem hinein.

Versioning, ignore patterns, and why this is sync, not backupVersionierung, Ignore-Patterns, und warum das Sync ist, kein Backup

Because a deletion or overwrite propagates everywhere a folder is shared, the only real cushion is Syncthing's own file versioning, set per folder under Edit Folder → Versioning. Staggered File Versioning is the sensible default for a VPS acting as a backup-shaped peer: it keeps deleted or replaced files for increasingly spaced-out intervals — frequent for the first hours, then daily, then weekly — instead of keeping everything forever or nothing at all. Turn it on for any folder where the VPS is the copy you would actually want to recover from.Weil eine Löschung oder ein Überschreiben sich überallhin propagiert, wo ein Ordner geteilt wird, ist das einzige echte Polster Syncthings eigene Dateiversionierung, die pro Ordner unter Ordner bearbeiten → Versionierung eingestellt wird. Gestaffelte Dateiversionierung ist die vernünftige Standardeinstellung für einen VPS, der als backup-artiger Peer fungiert: Sie behält gelöschte oder ersetzte Dateien für zunehmend weiter auseinanderliegende Intervalle — anfangs häufig, dann täglich, dann wöchentlich — statt entweder alles für immer oder gar nichts zu behalten. Schalte sie für jeden Ordner ein, bei dem der VPS die Kopie ist, von der du dich tatsächlich erholen möchtest.

Keep the sync itself tidy with a .stignore file at the folder root, editable from Edit Folder → Ignore Patterns, to keep build caches or temporary files out entirely:Halte den Sync selbst mit einer .stignore-Datei im Ordner-Root sauber, editierbar über Ordner bearbeiten → Ignore-Patterns, um Build-Caches oder temporäre Dateien komplett draußen zu halten:

(?d)Thumbs.db
node_modules
*.tmp

Say the constraint plainly: Syncthing keeps copies identical, it does not keep history. A fat-fingered delete on your laptop replicates to every device sharing that folder, VPS included, usually within seconds. Versioning softens this for files that get deleted or overwritten, since the old copy sits in a .stversions folder for a while — but it is a safety net with an expiry, not independent backup retention. If the VPS folder is meant to be a genuine backup rather than just another copy that happens to survive your laptop being off, pair it with something that does not accept a delete signal from the same account that can also issue one; VPS for self-hosting covers that broader picture.Sag die Einschränkung klar und deutlich: Syncthing hält Kopien identisch, es hält keine Historie. Ein vertipptes Löschen auf deinem Laptop propagiert zu jedem Gerät, das diesen Ordner teilt, den VPS eingeschlossen, meist innerhalb von Sekunden. Versionierung mildert das für Dateien, die gelöscht oder überschrieben werden, da die alte Kopie eine Weile in einem .stversions-Ordner liegt — aber es ist ein Sicherheitsnetz mit Ablaufdatum, keine unabhängige Backup-Aufbewahrung. Soll der VPS-Ordner ein echtes Backup sein statt nur eine weitere Kopie, die zufällig überlebt, wenn dein Laptop aus ist, kombiniere ihn mit etwas, das kein Löschsignal vom selben Konto akzeptiert, das auch eines auslösen kann; VPS für Selfhosting behandelt das größere Bild.

UpdatingUpdates

docker compose pull
docker compose up -d

Syncthing keeps its protocol backward-compatible across releases for a good while, so an update on the VPS does not force you to update your laptop and phone apps the same day — but do not let the gap grow indefinitely, since very old and very new versions can eventually lose compatibility. Bump the pinned tag deliberately and check the release notes for anything touching folder versioning or the GUI before you pull.Syncthing hält sein Protokoll über Releases hinweg eine gute Weile rückwärtskompatibel, sodass ein Update auf dem VPS dich nicht zwingt, deine Laptop- und Handy-Apps am selben Tag zu aktualisieren — aber lass die Lücke nicht unbegrenzt wachsen, da sehr alte und sehr neue Versionen irgendwann die Kompatibilität verlieren können. Erhöhe den gepinnten Tag bewusst und prüfe die Release Notes auf alles, was Ordnerversionierung oder die GUI betrifft, bevor du pullst.

On overnight.hostBei overnight.host

Full disclosure: this is what we sell. Basic (2 vCPU / 2 GiB / 50 GB) has RAM to spare for what is really a disk decision — a small set of folders runs fine on Starter (1 vCPU / 1 GiB / 25 GB) instead, and the reason to move up is more synced data, not more compute.Zur vollen Transparenz: Das ist, was wir verkaufen. Basic (2 vCPU / 2 GiB / 50 GB) hat RAM übrig für das, was eigentlich eine Festplattenentscheidung ist — ein kleiner Satz von Ordnern läuft stattdessen problemlos auf Starter (1 vCPU / 1 GiB / 25 GB), und der Grund für ein Upgrade sind mehr synchronisierte Daten, nicht mehr Rechenleistung.

Linux KVM VPS — EUR 4.99 to EUR 59.99 a month, on our own single-tenant bare metal in Dallas, TX and Charlotte, NC. Full hardware virtualisation (KVM), your own kernel, full root. Six tiers, vps-starter to vps-ultra. Starter is 1 vCPU, 1 GiB RAM, 25 GB disk.Linux-KVM-VPS — 4,99 bis 59,99 EUR im Monat, auf unserer eigenen Single-Tenant-Bare-Metal-Hardware in Dallas, TX und Charlotte, NC. Vollständige Hardware-Virtualisierung (KVM), eigener Kernel, volles Root. Sechs Tarife, vps-starter bis vps-ultra. Starter hat 1 vCPU, 1 GiB RAM, 25 GB Speicher.

You order in the shop, pay by card (Stripe) or SEPA bank transfer, and your login details are e-mailed to you once the service is set up. Support is e-mail, run by one person, with no guaranteed response time. All prices are final totals under the German small-business rule (§19 UStG); no VAT is added or shown.Du bestellst im Shop, zahlst per Karte (Stripe) oder SEPA-Überweisung, und deine Zugangsdaten werden dir per E-Mail zugeschickt, sobald der Dienst eingerichtet ist. Support läuft per E-Mail, von einer einzelnen Person betrieben, ohne garantierte Reaktionszeit. Alle Preise sind Endpreise. Gemäß § 19 UStG wird keine Umsatzsteuer ausgewiesen.

Order vps-basic → · Linux KVM VPS overviewvps-basic bestellen → · Übersicht Linux-KVM-VPS

Written by the person who runs overnight.host: a small, honest hosting company on dedicated bare metal — Linux VPS, game servers, web hosting. Live status at up.overnight.host.Geschrieben von der Person, die overnight.host betreibt: ein kleines, ehrliches Hosting-Unternehmen auf dedizierter Bare-Metal-Hardware — Linux-VPS, Gameserver, Webhosting. Live-Status unter up.overnight.host.

Technical guidance is informational. Plans, specifications and final prices are listed in the shop and can be ordered directly; VPS, game server, web hosting, one-click app and automation plans are provisioned automatically after payment. Custom configurations are still arranged by e-mail.Technische Hinweise dienen der Information. Pläne, Spezifikationen und Endpreise stehen im Shop und können direkt bestellt werden; VPS-, Gameserver-, Webhosting-, One-Click-App- und Automatisierungs-Pläne werden nach der Zahlung automatisch bereitgestellt. Sonderkonfigurationen werden weiterhin per E-Mail vereinbart.

FAQFAQ

Do I need to open port 8384 to use Syncthing on a VPS?Muss ich Port 8384 öffnen, um Syncthing auf einem VPS zu nutzen?

No, and you should not. Bind it to 127.0.0.1 as in the compose file above and reach it only through an SSH tunnel. There is no login page by default, so exposing 8384 hands the whole configuration to anyone who finds the port.Nein, und das solltest du auch nicht. Binde ihn wie in der Compose-Datei oben an 127.0.0.1 und erreiche ihn nur über einen SSH-Tunnel. Es gibt standardmäßig keine Login-Seite, sodass das Offenlegen von 8384 die gesamte Konfiguration an jeden übergibt, der den Port findet.

What happens if port 22000 is not forwarded on my plan?Was passiert, wenn Port 22000 bei meinem Tarif nicht weitergeleitet ist?

Syncthing keeps working. The VPS can still connect out to your laptop and phone directly, and if a direct connection cannot be made either way, global discovery and the built-in relay network take over automatically, both on by default with no inbound port required. It is just slower than a direct connection.Syncthing funktioniert weiter. Der VPS kann sich weiterhin direkt zu deinem Laptop und Handy hinaus verbinden, und wenn sich in keiner Richtung eine direkte Verbindung aufbauen lässt, übernehmen globale Discovery und das eingebaute Relay-Netzwerk automatisch, beide standardmäßig aktiv, ohne dass ein eingehender Port nötig wäre. Es ist nur langsamer als eine direkte Verbindung.

Is a receive-only folder on the VPS the same as a backup?Ist ein Nur-Empfangen-Ordner auf dem VPS dasselbe wie ein Backup?

Not quite. Receive-only stops the VPS's own local edits from propagating back out, but a deletion or overwrite made on a sending device still replicates in, since that is just an incoming change like any other. Pair it with Staggered File Versioning for any real protection against a bad sync reaching the VPS.Nicht ganz. Nur-Empfangen stoppt, dass die eigenen lokalen Bearbeitungen des VPS nach außen propagieren, aber eine Löschung oder ein Überschreiben, das auf einem sendenden Gerät gemacht wird, repliziert trotzdem hinein, da das einfach eine eingehende Änderung wie jede andere ist. Kombiniere es mit gestaffelter Dateiversionierung für echten Schutz gegen einen fehlerhaften Sync, der den VPS erreicht.

How much RAM does Syncthing actually need on the VPS?Wie viel RAM braucht Syncthing auf dem VPS tatsächlich?

Very little. A modest number of folders and devices idles well under 512 MB, so RAM is rarely the reason to pick a bigger tier. Disk is what actually scales with what you sync, since every shared folder is a full copy sitting on that VPS's disk.Sehr wenig. Eine überschaubare Anzahl von Ordnern und Geräten läuft im Leerlauf deutlich unter 512 MB, sodass RAM selten der Grund ist, einen größeren Tarif zu wählen. Was tatsächlich mit dem mitwächst, was du synchronisierst, ist die Festplatte, da jeder geteilte Ordner eine vollständige Kopie ist, die auf der Festplatte dieses VPS liegt.

Can I add more devices later, like a second laptop or a friend's machine?Kann ich später weitere Geräte hinzufügen, etwa einen zweiten Laptop oder die Maschine eines Freundes?

Yes. Each device gets its own device ID and its own pairing acceptance, and a folder is shared per-device, not globally — adding a new device to the VPS does not expose your existing folders to it until you explicitly share those folders with the new device too.Ja. Jedes Gerät bekommt seine eigene Geräte-ID und seine eigene Pairing-Bestätigung, und ein Ordner wird pro Gerät geteilt, nicht global — ein neues Gerät zum VPS hinzuzufügen legt ihm deine bestehenden Ordner nicht offen, bis du diese Ordner explizit auch mit dem neuen Gerät teilst.

Ready to order?Bereit zu bestellen?

Prices are final totals; no VAT is shown (§19 UStG). Need something the shop does not list? Email us for a written offer.Alle Preise sind Endpreise ohne ausgewiesene USt. (§19 UStG). Du brauchst etwas, das nicht im Shop steht? Schreib uns für ein schriftliches Angebot.

Order now →Jetzt bestellen → Request a custom configIndividuelle Konfiguration anfragen