I would suggest to take a look at owncloud (https://owncloud.com/).
They have clients for every device, are largely open source and have quite a few configuration options.
You can set them up on a server on the hosting provider of your trust or even on your raspberry pi.