OP would rule this out because of the third party cloud service thing, but I use signal in the same way. It feels quite ridiculous but it works.
The best option I can think of is syncthing, but the ux for non technical users isn't great.
The best option I can think of is syncthing, but the ux for non technical users isn't great.