Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.
It is supposed to use the host's network stack, which is a potential security risk.
For a suitable host system check out Hypriot OS!
Contributions are welcome.
docker pull funkyfuture/rpi-syncthing
git clone https://github.com/funkyfuture/docker-rpi-syncthing docker build -t funkyfuture/rpi-syncthing docker-rpi-syncthing
Here's an example configuration that is suited to manage an instance with
version: '2' services: client: image: funkyfuture/rpi-syncthing restart: unless-stopped network_mode: host volumes: - ./config:/syncthing/config - ./data:/syncthing/data environment: - GUI_USERNAME=ziggy - GUI_PASSWORD_PLAIN=stardust
For those eager to quickly test this image:
docker run --rm --network=host funkyfuture/rpi-syncthing
The numeric user and group id of the user running the client are set with the
GID. Both default to
1000. This affects the
ownership of the stored data in
You can pass these environment variables to configure the client:
GUI_PASSWORD_BCRYPT(takes precedence over
To further customize the configuration you can provide your own
$CONFIG_DIR/config.xml to the container. Note that the configuration values
resp. their defaults above will be applied on it (but this is going to be more
sensible at some point).
You may also add a
/pre-launch.sh that will be run (by
the configuration values have been applied. For convenient xml-manipulation
you can use
start.sh for examples and a wrapper function.
The user context at this point is still
root, the designated user context
syncthing is available as