So since you sound technically inclined..
Just to follow up with a summary of what's involved in self-hosting,
which *does work* across all platforms if you try hard enough, these are
some of the things you need to consider:
- You can host the server at home or on a commercial hosting service:
I run davical in a container, and while it didn't do a lot to make
setup easy, it's pretty much fire-and-forget in the manner of most
Linux stuff. If hosting from home you need to sort out NAT so your
mobile devices can reach the server on the move. davical is
lightweight and will run on pretty much any hardware you can think
of. OwnCloud is a viable alternative with similar considerations.