Kolab iRony with CalDAV and CardDAV support
Group iRony
As mobile clients become more popular, admins find it increasingly difficult to avoid offering remote access to calendars and address data to their users. Despite being open source and open standards-driven groupware, Kolab [1] has had little to offer in this scenario. Only its own clients (Kontact; the Horde web interface and, later, Roundcube; and some proprietary Outlook plugins) can use the central calendar and address book. Mobile devices needed Microsoft's ActiveSync protocol or (up to Kolab 3) the outdated SyncML to connect with the open source groupware.
As of version 3.1, the Kolab team from Swiss-based Kolab Systems added the CalDAV and CardDAV open protocol standards for the exchange of appointments, tasks, and contacts to the server, allowing admins to turn to many existing groupware-enabled clients, such as the Lightning Thunderbird extension, Evolution, OS X applications like Apple's iCal (Calendar since Mountain Lion), as well as iOS and Android systems.
For this to work, the Kolab team did not reinvent the wheel; rather, they integrated the proven PHP package by SabreDAV [2] (Figure 1), which implements the WebDAV protocol stack as a server. The newly created protocol layer in Kolab goes by the name "iRony" [3] and is an integral part of the groupware package as of version 3.1, which was the most recent available at the time of writing; stable version 3.2 has since been released [4].
Installation
A complete test installation of Kolab 3.0 and later is a matter of one or two cups of coffee and does not impose too many requirements on the admin. The Kolab developers recommend a recent CentOS (preferably 6.4) as the basis. Only a few preliminary requirements must be met: a fully qualified domain name and SELinux running in permissive mode.
The budding Kolab administrator needs to install the three RPMs in Listing 1 and then enter
yum install kolab
to launch the convenient installer for the entire groupware package. The configuration step is launched by typing setup-kolab to define the admin passwords for services, among other tasks.
Listing 1
Installing Kolab 3.2 on CentOS
# Install EPEL rpm -Uhv http://url/to/epel-release.rpm # Install the Kolab Groupware repository configuration cd /etc/yum.repos.d/ wget http://obs.kolabsys.com:82/Kolab:/3.2/CentOS_6/Kolab:3.2.repo wget http://obs.kolabsys.com:82/Kolab:/3.2:/Updates/CentOS_6/Kolab:3.2:Updates.repo
Default Configuration Pitfalls
Once installed and set up, you should be able to access the administrative GUI at http://<Kolab-Server>/kolab-webadmin . You can log in as cn=Directory Manager and use the previously defined admin password.
As a first administrative task, you are advised to set up a normal user account. You can then use this account to log in to Roundcube Webmail, the Kolab web client, which is accessible on http://<Kolab-Server>/roundcubemail . The username for logging can be one of your aliases or an email address. Working as the new user, you can quickly create some calendars, contacts, and tasks that provide test material for connecting with WebDAV clients.
The version that we tested still had a configuration problem when this issue went to press, which at first prevented the use of iRony. Kolab publishes its DAV services on http://<Kolab-Server>/iRony
. This step initially returned a URL exception (Listing 2), which was easy to fix with some help from the Kolab mailing list: In the iRony configuration file (/etc/iRony/dav.inc.php
) just replace the value of the $rcmail_config['base_uri']
configuration parameter with '/iRony/'
and restart the Kolab daemon by typing service kolabd restart
. After this, Kolab is ready to exchange data via the iRony protocol stack.
Listing 2
iRony Fights Back
<d:error> <s:exception>Sabre\DAV\Exception\Forbidden</s:exception> <s:message>Requested uri (/iRony/) is out of base uri (ony/public_html/)</s:message> <s:sabredav-version>1.8.6</s:sabredav-version> </d:error>
Trying to Connect
One item on the checklist involves your chosen client trying to connect with Kolab using one of the DAV protocols. Basically, you need to enter the Kolab server URL using the following pattern:
http://<Kolab-Server>/iRony
Alternatively, you can even leave out the subdirectory in theory; after all, standards-compliant clients first look for the principal address below ../.well-known/caldav
.
The Kolab iRony configuration for Apache includes corresponding redirects that beam this call to /iRony/
. The username requested in this way also helps locate the correct user directory – in theory.
Buy this article as PDF
(incl. VAT)