Not many years ago, cloud based storage was a very hot topic with considerable competition between vendors. Each vendor competed against every other vendor to get as much marketshare as possible, as quickly as possible. Companies would offer vast amounts of storage for free or extremely low monthly or annual fees. Much of that competition has settled and the market is much more stable today.
During those growth years, I changed cloud vendors several times depending upon which had the best deal. It was onerous moving files from one cloud to the next. Worse, because I share large number of huge files for my photography and videography hobbies, I was constantly looking for more space.
I don't share a lot of data at one time, so my bandwidth needs aren't that high, but I do need a lot of storage. And I wanted to ensure that the files I was storing on the cloud were secure. If they disappeared, how would they be restored? I wanted to manage my own cloud.
After a bit of research, I found several cloud storage systems and selected OwnCloud. It was a good system that was not too onerous to install and maintain. It's hardware requirements weren't insane, and it was sufficiently flexible that I could configure it so that it would suit my needs. Even better, it has multiple extremely useful facilities.
Setup of OwnCloud is pretty much straight out of the book. Setup is little more than following the steps in the setup guide of the Admin Manual and some good web server practices. I did deviate a little. My file store is pointed to a RAID 5 disk storage array, which gives me the space I need and some level of protection against disk drive failure.
Two of wonderful side benefits of OwnCloud are it's integrated Contact manager and Calendar management tools. They are not active by default, but are easy to add to the system via the OwnCloud marketplace. I use both the Calendar and the Contact extensions, which work very well. Even better, they also act as CalDAV and CardDAV servers.
Little needs to be done to setup the servers once OwnCloud is installed and working. Enabling the Contacts and Calendar extensions provide those services. All that remains is configuring the connection setting for the calendar and contact clients. My servers are Linux based, but clients are MacOS X and iOS. Fortunately, setting up the clients isn't hard.
Calendar CalDAV client setup
At the lower left corner of the Calendar app's page, open the Settings and find either the Primary CalDAV address or the iOS/OS X CalDAV address, depending on your client's operating system. Use that address, as well as your username and password to setup the server connection for your calendar client. Pretty easy.
Contacts CardDAV client setup
Here this isn't quite as straightforward, users need to open the OwnCloud User Manual and select the Synchronization Clients section. The connection path varies a little depending on your address book client. For iOS the server entry is of the form: example.com/remote.php/dav/principals/users/USERNAME/. OS X is nearly the same except that when setting up the CardDAV connection, select the configuration for Server Type: Advanced and break the URL into its component pieces. Instead of https://example.com/remote.php/dav/principals/users/USERNAME/, enter example.com for server and /remote.php/dav/principals/users/USERNAME/ for the server path. Don't forget to specify port 443 and Use SSL.
That's it. The benefit of having your calendar and contact lists synchronized across all of your devices, is extremely handy.