There is a problem regularly: One of the phones does not show contacts from Outlook, after a while they come back. But I just listened to the podcast episode from FLOSS Weekly about EteSync. EteSync promises to store contacts, calendar and tasks encrypted on their infrastructure or even on your own.
Their website lists some resources where they are back referenced. And there is one quite interesting link: Awesome selfhosted lists many projects to run on your server.