Skip to content

syncthing

A secure, file synchronization app for devices over networks, offering a private alternative to cloud services.

Usage

We recommend configuring this module as an sync-service through the provided options. Although it provides a Web GUI through which more usage scenarios are supported.

Features

  • Private and Secure: Syncthing uses TLS encryption to secure data transfer between devices, ensuring that only the intended devices can read your data.
  • Decentralized: No central server is involved in the data transfer. Each device communicates directly with others.
  • Open Source: The source code is openly available for audit and contribution, fostering trust and continuous improvement.
  • Cross-Platform: Syncthing supports multiple platforms including Windows, macOS, Linux, BSD, and Android.
  • Real-time Synchronization: Changes made to files are synchronized in real-time across all connected devices.
  • Web GUI: It includes a user-friendly web interface for managing devices and configurations. (127.0.0.1:8384)

Configuration

  • Share Folders: Select folders to share with connected devices and configure permissions and synchronization parameters.

Info

Clan automatically discovers other devices. Automatic discovery requires one machine to be an introducer

If that is not the case you can add the other device by its Device ID manually. You can find and share Device IDs under the "Add Device" button in the Web GUI. (127.0.0.1:8384)

Troubleshooting

  • Sync Conflicts: Resolve synchronization conflicts manually by reviewing file versions and modification times in the Web GUI (127.0.0.1:8384).

Support

Usage

To use this module, import it like this:

{config, lib, inputs, ...}: {
    imports = [ inputs.clan-core.clanModules.syncthing ];
    # ...
}

Module Options

clan.syncthing.autoAcceptDevices

Auto accept incoming device requests. Should only be used on the introducer.

Type: boolean

Default:

false

syncthing

clan.syncthing.autoShares

Auto share the following Folders by their ID's with introduced devices. Should only be used on the introducer.

Type: list of string

Default:

[ ]
Example
[
  "folder1"
  "folder2"
]

syncthing

clan.syncthing.id

This option has no description.

Type: null or string

Default:

"config.clanCore.facts.services.syncthing.public.\"syncthing.pub\".value"
Example
"BABNJY4-G2ICDLF-QQEG7DD-N3OBNGF-BCCOFK6-MV3K7QJ-2WUZHXS-7DTW4AS"

syncthing

clan.syncthing.introducer

The introducer for the machine.

Type: null or string

Default:

null

syncthing