Run with no GUI and administer programmatically

I’ve just recently discovered Syncthing and it looks awesome: p2p, discovery and in Go <3 First of all, thanks for all the work you are putting into this open-source project!

I am building a tool where I would need to programatically add/remove directories to Syncthing. Hence my question, is there a way to disable GUI but still use an API? I am guessing not (since same app provides an API?), but just wanted to confirm. But is it possible to build and distribute Syncthing without GUI related implementation at all?

So far I tried adding folders directly to configuration file, but it looks like they don’t have an effect, until I restart Syncthing on all nodes in a cluster. My next question, is it possible to trigger restart programmatically (like sending some signal?), without GUI/API? All I am after is managing Synchthing without GUI.


You can modify the config.xml, and restart syncthing with SIGTERM and exec

I’ve created a launchd service in keep alive mode and after sending SIGTERM launchd automatically starts it again.

What about other question, do you happen to know if its trivial do extract only the syncer part and distribute it without API, nor GUI and thus removing all configurations related to it? This will help me to reduce the size of the package and have less moving parts.


There is no GUI-less or API-less build currently, no.