Lead Image © Pablo Hidalgo, 123RF.com

Lead Image © Pablo Hidalgo, 123RF.com

Kolab iRony with CalDAV and CardDAV support

Group iRony

Article from ADMIN 21/2014
By , By
Open standards and open source are requisite in Kolab groupware. The alpha release of version 3.1 hugely extended the number of compatible clients with the CalDAV and CardDAV protocols, making Kolab data available on iOS and Mac OS  X and in Thunderbird and Evolution.

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].

Figure 1: Kolab Systems offers a web service that includes all the features of the Kolab groupware. This figure shows the file browser, which is provided by SabreDAV.

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

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • The state of open source groupware
    Microsoft Exchange and Lotus Notes hold onto the big chunks of the groupware market, and social networks are rushing to transform the space. All the same, free software provides an effective and inexpensive alternative.
  • LDAP integration with popular groupware suites
    Your LDAP directory holds user data for the whole network. Why not save time and avoid duplication by integrating the LDAP directory with your groupware environment?
comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs



Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.

Learn More”>
	</a>

<hr>		    
			</div>
		    		</div>

		<div class=