Running SyncThing as a Windows service

Yesterday I blogged about SyncThing as an alternative to BitTorrentSync. Today a business partner asked me whether it is possible to run SyncThing as a service. The answer is definitely yes, but it requires an additional tool.

As per this StackOverflow answer you can use NSSM – the Non-Sucking Service Manager to create a service that works fine.

I had to add the following command line arguments to the call:

  • -no-console
  • -no-browser
  • -home=”c:\users\<myaccount>\AppData\Local\Syncthing”

(Mind the extra dash after the “no”!)
The latter was because I wanted to keep using the configuration which was generated by just starting the SyncThing console application. It’s perfectly possible to move this folder somewhere else.

Also, on the I/O tab, I added log files for stdout and stderr, so I am able to see any error messages it might write. I didn’t specify any file rotation yet, but that’s probably something you want to do.

After creating the service using NSSM, I could simply start the SyncThing service and connect to it with the browser.

Due to a restriction of our router (no UPnP), I also had to configure port forwarding for port 22000 as described here for it to be able to connect to other servers over the internet.