Async syncthing for a fixed number of devices

Good evening. I would like to synchronize some folders between three devices. But i would like to have the syncing done even though the three computers are never turned on at the same time. To solve this, i have a VPS which is online all the time. But i would like to have as few files stored on the server as possible (i.e. i don’t want to sync the server with all the data). My dream process is that each device sends its «modification sets» to the server, and then the server dispatch them to the other devices when they are online. Once each other device has received the modification, the server deletes them. So my questions are:

  • Can i do this with syncthing (at least partly) ?
  • Can syncthing be changed (short/medium/long term) to have this feature ?
  • Do you have any (open, preferably self-hosted) solution so i can implement this process, or any process with the same advantages ?

Thank you for your help or your advice !

I think the answer is no, across all 3 questions sadly.

Welcome here!

If any TWO of your devices are online at the same time, then they are updating each other with the latest changes. If, over time, all three of them are connected to each other in different pairs, they will eventually all be up to date. (I don’t know if that what was what you were asking, but anyway…!)

The only problem is what I quoted here. There is no concept of “change set”. If you are okay to store all the data on all the machines then it works the way you want.

Well, in my case, there is almost never two devices online at the same time :confused:

Well i would like to store the data on all the machines except for the server.

I was thinking of making a custom server that would store the index (like a classical device would do), and also remember the data that has been sent to the devices.

  • Either each device is connected only to the server (the servers acts as a device shared by all clusters)
  • Either the device is inside the cluster and acts as a device that can always serve and get data. Once each «registered» device has requested the data, the server deletes it in its storage. Making the server would only be about implementing the BEPv1. The only problem i see is that theorically a device could ask the server for an index part it cannot give. But the server could mark the part as «requested» and make it available when another device connects. What do you think of this method ? Do you think of anything that would prevent this from working ? Is it the right place to discuss this ? Thank you for your answers !

No, this is not something Syncthing will do for you. Not now or in the foreseeable future.

1 Like