To self hosted your own CalDAV & CardDAV server is one of the first step to better control your data and keep your data, actually, yours!So here comes Baikal which is really easy to setup. That easily you can also configure any device (mobile/tablet/laptop/desktop) to use your baikal instance and synchronize your calendar & contacts everywhere.
In this blog post are some personal notes on installing or upgrading baikal on your web server.
[ The latest version as this article was written is 0.4.1 ]
Change to your web directory (usually is something like: /var/www/html/) and download baikal:
Clean Install - Latest release 0.4.1
based on sabre/dav 3.1.2
You need at least PHP 5.5 but preferable use 5.6.
# wget -c https://github.com/fruux/Baikal/releases/download/0.4.1/baikal-0.4.1.zip # yes | unzip baikal-0.4.1.zip # chown -R apache:apache baikal/
That’s it !
Be Aware that there is a big difference between 0.2.7 and versions greater that 0.3.x.
And that is, that the URL has an extra part: html
to : https://baikal.example.com/html/admin
If you already had installed baikal-0.2.7 and you want to upgrade to 0.4.x version and later, then you have to follow the below steps:
# wget -c http://baikal-server.com/get/baikal-flat-0.2.7.zip # unzip baikal-flat-0.2.7.zip # mv baikal-flat baikal # wget -c https://github.com/fruux/Baikal/releases/download/0.4.1/baikal-0.4.1.zip # yes | unzip baikal-0.4.1.zip # touch baikal/Specific/ENABLE_INSTALL # chown -R apache:apache baikal/
I prefer to create a new virtualhost every time I need to add a new functionality to my domain.
Be smart & use encryption !
Below is mine virtualhost as an example:
< VirtualHost *:443 > ServerName baikal.example.com # SSL Support SSLEngine on SSLProtocol ALL -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite HIGH:!aNULL:!MD5 SSLCertificateFile /etc/letsencrypt/live/baikal.example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/baikal.example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/baikal.example.com/chain.pem # Logs CustomLog logs/baikal.access.log combined ErrorLog logs/baikal.error.log DocumentRoot /var/www/html/baikal/ < Directory /var/www/html/baikal/ > Order allow,deny Allow from all < /Directory > < /VirtualHost >
Next step is to open your browser and browse your baikal's location,
if you have an older version (0.2.7) on your system
I use SQLite for personal use (makes easy backup process) but you can always choose MySQL .
Dashboard on 0.4.1
Useful URIs are:
Here is a sceen-guide on latest versions:
Login to the admin dashboard and create your user through
Users and resources tab
and you are done with the baikal installation & configuration process.
Applications (caldav/carddav and task clients) can now be accessed by visiting principals URI:
or via dav.php
but If your client does not support the above holistic URI, then try the below for calendar & contacts:
On android devices, I use: DAVdroid
If you have a problem with your self-signed certificate,
try adding it to your device through the security settings.