UI for managing which files to sync? Data caches/relays?

My setup consists of a phone, a laptop, a home NAS, and a VPS.

Currently I keep my music collection selectively synced using an elaborate scheme involving syncthing, rsync, hardlinks, send-only modes, and some shell glue. Least to say, it’s pretty cumbersome. Probably the same thing could be achieved by whitelisting specific patterns on each device using .stignore, but this would still be cumbersome to work with even on a laptop, let alone a phone.

Additionally, the VPS is the only device that is online 24/7.

So I have two feature ideas… 1. Some UI to selectively choose which files should reside on each device; 2. a way to use the VPS as a relay/cache for the data, while some of the other devices might be offline. I’m happy with Go & HTML5, and occasionally have some free time on my hands; but no familiarity with syncthing internals nor UI design experience. Does any of this sound like interesting features to build? I’m sure I’m not alone with these use-cases.

I am not sure how a cache would be any different from just a device that stores some data (which could be achieve using ignores). A selective ui someone already had a PR open, but I have not seen much activity recently.

A selective ui someone already had a PR open, but I have not seen much activity recently.

Oh, just saw #5132. Silly me, I’ve been digging thru open issues to find something related but didn’t check open PR’s.

I am not sure how a cache would be any different from just a device that stores some data (which could be achieve using ignores).

Anything can be achieved with enough glue :wink: the idea is that the cache is transparent: device A has files, device B needs files; device A comes online - the cache pulls the files; device A goes offline, and B comes online - B pulls files from the cache; cache sees that A and B are up to date, and it frees up the disk space. Everything with zero user interaction.

Of course that is 100% wishlist-grade stuff.

So the difference in your proposed feature would be, that the “cache” does not keep the complete folder, but only the files which are different between the global state and the local state of each device.

I think this is difficult to implement into Syncthing, because Syncthing always on keeping a synchronized state between all devices.

If I would add a new device C to your system the cache would start to request the whole folder in order to be able to deliver it device C.

But I am not a Syncthing contributor. Maybe a contributor can chime in if this is reasonably doable with Syncthing.

You are talking to two contributors. Sure, I am sure we can come up with some cache heuristic etc, the question is who has time and ambition to do any of this…