syncthing
Synchronize files between devices
TLDR
Start Syncthing
Start Syncthing without opening a web browser
Change the home directory
Run Syncthing with increased logging
Pause all devices
Resume all devices
Change the address upon which the web interface listens
Set the log level for output
SYNOPSIS
syncthing [OPTIONS]
PARAMETERS
--version
Prints the Syncthing version and exits.
--help
Shows a help message detailing available command-line options and exits.
--home=
Specifies the home directory where Syncthing stores its configuration, keys, and index data. Defaults to `~/.config/syncthing` on Linux.
--no-browser
Prevents Syncthing from automatically opening the web GUI in a browser upon startup. Useful when running as a service or headless.
--gui-address=
Sets the address for the web GUI. For example, `127.0.0.1:8384` for local access or `0.0.0.0:8384` for access from other devices on the network. Can be overridden in the GUI itself.
--disable-gui
Completely disables the web GUI, allowing Syncthing to run purely in the background without any web interface.
--log-file=
Writes log output to the specified file instead of standard output.
--log-no-stdout
Suppresses logging to standard output when `--log-file` is also specified.
--paths
Prints paths to various Syncthing directories (config, data, etc.) and exits. Useful for debugging or setting up service files.
DESCRIPTION
The syncthing command starts the Syncthing daemon, a powerful open-source, peer-to-peer file synchronization application. It allows users to synchronize files between multiple devices in real-time without relying on a central cloud server. All data transfer is direct between your devices, encrypted with TLS, ensuring your data remains private and under your control. Syncthing is highly configurable, offering features like selective folder syncing, versioning of changes, conflict resolution, and support for various network topologies. It's designed to be robust against network failures and operates efficiently across different operating systems, making it a versatile tool for maintaining consistent data across your personal and professional devices. Its decentralized nature means there's no single point of failure or an external party that can access your files.
CAVEATS
Initial indexing of large folders can be CPU and disk intensive.
Firewall configuration is essential; Syncthing typically uses TCP ports 22000 (for data transfer) and 21027 (for discovery) by default, which may need to be opened.
For global device discovery across different networks, UPnP or port forwarding may be required on your router.
WEB-BASED GUI
Syncthing is primarily configured and monitored through a responsive web-based graphical user interface, usually accessible at http://localhost:8384. This GUI allows users to add and remove folders, manage connected devices, and monitor synchronization status.
DECENTRALIZED ARCHITECTURE
Unlike services that rely on a central server, Syncthing operates on a peer-to-peer (P2P) model. Devices connect directly to each other to synchronize files, eliminating the need for intermediaries. This enhances privacy and reduces potential bottlenecks or points of failure inherent in centralized systems.
HISTORY
Syncthing was initially created by Jakob Borg and first released in 2013. It was developed as an open-source alternative to proprietary cloud-based file synchronization services, with a strong emphasis on privacy, security, and decentralization. Its development has been community-driven, leading to a robust, cross-platform application widely adopted by users seeking greater control over their data.