I ended up creating https://github.com/nickjj/bmsu which calls rsync under the hood but helps you build up a valid rsync command with no surprises. It also codifies each of your backup / restore strategies so you're not having to run massively long rsync commands each time. It's 1 shell script with no dependencies except rsync.
Nothing leaves my local network since it's all local file transfers.
If they want to collaborate, they can just post the changed file, using the auth key you generated for them set in some header field, to https://files.<your domain>/<id here>, which could automatically increment revision numbers. Then you could access specific revisions with .../<id here>/rev/<revision>.
So much easier than installing an app! You could literally just use curl as the interface! (I kid)