Deploy Syncthing on a Synology DS416 with DSM 7

23 Oct 2021

After updating my NAS, a Synology DS416, to DSM 7 I decided to deploy Syncthing on it. Synology supports containers in its latest NAS but not in DS416 and the suggested way to deploy is to use docker.

There is an alternative fortunately since the NAS uses an ARMv7 Processor rev 4 (v7l) and Syncthing is written in Go, it's really easy to cross-compile from source and just copy the binary into the NAS.

If you don't want to compile it you will find binaries here: https://syncthing.net/downloads/. Download the ARM binary and you are ready to go.

In the NAS I created a dedicated user for syncthing, copied the binary on a specific path and, since DSM 7 uses systemd, I added the following unit inside /etc/systemd/system:

[Unit]
Description=Syncthing continuous file synchronization
After=network.target

[Service]
User=<the user you created for syncthing>
ExecStart=/path/to/syncthing serve --no-browser --no-restart --logflags=0
Restart=on-failure
RestartSec=1
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

[Install]
WantedBy=multi-user.target

Please mind to substitute <the user you created for syncthing> with the actual user you created and /path/to/syncthing with the actual path syncthing is in.