LinuxCommandLibrary

syncthing

Synchronize files between devices

TLDR

Start Syncthing

$ syncthing
copy

Start Syncthing without opening a web browser
$ syncthing --no-browser
copy

Change the home directory
$ syncthing --home [path/to/directory]
copy

Run Syncthing with increased logging
$ syncthing --verbose
copy

Pause all devices
$ syncthing cli config devices pause --all
copy

Resume all devices
$ syncthing cli config devices resume --all
copy

Change the address upon which the web interface listens
$ syncthing --gui-address [ip_address:port|path/to/socket.sock]
copy

Set the log level for output
$ syncthing --log-level [info|warning|error|debug]
copy

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.

SEE ALSO

rsync(1), scp(1), unison(1), ssh(1)

Copied to clipboard