Syncthing is a continuous, peer-to-peer file synchronization program. It syncs files between devices in real time with no cloud dependency. This template enables direct P2P connection by exposing the BEP sync protocol on TCP/UDP 22000, so peers connect without going through Syncthing's relay servers. Deploy on Zeabur as an always-on sync node.

Continuous peer-to-peer file synchronization with direct P2P connection support — no reliance on Syncthing's relay servers.
This template exposes the BEP sync protocol (TCP/UDP 22000) via Zeabur Port Forwarding, so other Syncthing peers can connect to your Zeabur instance directly. The Zeabur instance acts as an always-on sync node, keeping files in sync even when your other devices are offline.
By default, Syncthing devices behind NAT can fall back to Syncthing's relay network, which throttles transfer speed. This template pre-exposes TCP/UDP 22000 so peers can connect directly.
Step 1 — Find the forwarded address. In the Zeabur Dashboard, open this service's Networking tab. You will see two forwarded entries for ports sync-tcp (22000/TCP) and sync-udp (22000/UDP), each in the form <host>:<port>. On dedicated server projects this will be your server's public IP and an assigned port (the exact values shown in your dashboard differ per deployment). The TCP and UDP forwarded ports often share the same number (Zeabur uses one external port for both listeners on the same internal port).
Step 2 — Configure your peer device. On your other Syncthing devices (laptop, phone, NAS, …), add this Zeabur instance as a remote device. Then click into the device entry, expand Advanced, and set the Addresses field to (comma-separated):
tcp://FORWARDED_HOST:FORWARDED_TCP_PORT, quic://FORWARDED_HOST:FORWARDED_UDP_PORT
Replace the placeholders with the values from Step 1. If you want to keep relay as fallback when the static addresses fail, append , dynamic at the end. Do not leave Addresses as just dynamic — global discovery cannot infer the forwarded random port and Syncthing will silently fall back to relay.
Step 3 — Verify. In the Web UI's Remote Devices panel, the connection status should show TCP or QUIC (not Relay). The relay bandwidth bottleneck is avoided.
/var/syncthing/config — it contains the device's private key and Device ID. Syncing it across machines creates Device ID conflicts.sync-conflict files. Keep Syncthing folders in paths outside other sync engines.All config and synced data are stored under /var/syncthing (backed by a Zeabur volume).
MPL-2.0 — GitHub · Official Site · Documentation