In a previous article, I’ve presented Owncloud, that includes CalDAV and CardDAV, allowing you to synchronize your calendar and contacts on your iOS, Android,… devices or directly with your Thunderbird and co applications.
But if you are only looking for a CalDAV and CardDAV server, no need to install Owncloud, simply use Baïkal.
Indeed, Baïkal let you synchronize your calendars and address books over CalDAV and CardDAV. Baïkal implements the IETF standards for centralized calendar and address book collections and is compatible with a large set of applications such as iOS/Mac OSX Calendar, Contacts and reminders, but also Android’s, Linux, Windows similar applications.
Basically, as long the application is CalDAV and CardDAV capable, Baïkal will works.
Easy to install, with a small footprint (<2MB codebase), Baïkal runs on PHP 5.3+ while the user data can be stored in a SQLite or MySQL database.A Web interface is included to simplify the administration such as user, calendar and address book collection management, etc… A dashboard provides a simple overview over the running system.
I assume you already have a working Apache server and SQLlite or MySQL installed.
1) Download and extract the latest archive in your /var/www
cd /var/www wget http://baikal-server.com/get/baikal-regular-0.2.7.tgz tar xvf baikal-regular-0.2.7.tgz rm baikal-regular-0.2.7.tgz
(assuming the latest one is still the version 0.2.7)
2) Create an empty file named ENABLE_INSTALL
Per default, Baikal Install Tool is locked, to unlock it, you need to create an empty file named ENABLE_INSTALL (uppercase, no file extension) in the Specific/ folder.
cd baikal-regular/Specific touch ENABLE_INSTALL
3) Change the owner of the folder to avoid permission issues
chown -R www-data:www-data /var/www/baikal-regular
4) Access the web installation panel
To run the web installation, simply go to http://YourIP/baikal-regular/html
And follow the 2 steps installation.
At the second step, you will need to choose either to use SQLite or MySQL. If you use SQLite, no additional configuration will be needed. If you choose MySQL, simply set the hostname, user, password, etc… of your MySQL database.
5) Create a dedicated virtualhost with a sub domain as Baikail need it to run properly when you will connect your devices to it.
What you will need:
– Create a A redirection in your DNS server/registrar with something like dav.domain.tld to your IP
– Copy the apache virtualhost included in the Specific folder
In root, run:
cp /var/www/baikal-regular/Specific/virtualhosts/baikal.apache2 /etc/apache2/sites-enabled/baikal
and tweak its content to suit your domain name and folder path:
nano /etc/apache2/sites-enabled/baikal <VirtualHost *:80> DocumentRoot /var/www/baikal-regular/html ServerName dav.mydomain.tld RewriteEngine On RewriteRule /.well-known/carddav /card.php [R,L] RewriteRule /.well-known/caldav /cal.php [R,L] <Directory "/var/www/baikal-regular/html"> Options None Options +FollowSymlinks AllowOverride All </Directory> </VirtualHost>
You will need to change the DocumentRoot, ServerName and <Directory “xxxxxx”> values
When done, save the file (CTRL+X then Yes) and reload apache: (In root)
You should now be able to access the web interface through http://dav.domain.tld directly and connect all your devices to your Baikal instance.