Docker image with Syncthing for Raspberry Pis
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is a Docker image targeting Raspberry Pi hosts containing Syncthing which describes itself:

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.

What's the current latest version?

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
docker build -t funkyfuture/rpi-syncthing docker-rpi-syncthing


Here's an example configuration that is suited to manage an instance with docker-compose:

version: '2'

    image: funkyfuture/rpi-syncthing
    restart: unless-stopped
    network_mode: host
      - ./config:/syncthing/config
      - ./data:/syncthing/data
      - 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 environment variables UID and GID. Both default to 1000. This affects the ownership of the stored data in /syncthing and $CONFIG_DIR.

You can pass these environment variables to configure the client:

  • CONFIG_DIR (default: /syncthing/config)
  • GUI_ADDRESS (default: [::]:8384)
  • GUI_ENABLED (default: true)
  • GUI_PASSWORD_BCRYPT (takes precedence over ..._PLAIN)
  • GUI_TLS (default: false)

Further customization

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 / that will be run (by sourceing) after the configuration values have been applied. For convenient xml-manipulation you can use xmlstarlet, see for examples and a wrapper function. The user context at this point is still root, the designated user context to run syncthing is available as $UID, $GID, $USER_NAME and $GROUP_NAME.


Docker Hub repository

Source repository

Syncthing configuration docs

xmlstarlet documentation