SOGo&mdash;Open-Source Groupware

The current state of SOGo and its integration capabilities with desktop and mobile clients.

More than two years have passed since I last wrote about SOGo for Linux
Journal. Since
then, the project has matured greatly and now is being used successfully
in tons of large-scale deployments. SOGo's strengths are really about
scalability; component re-usability (IMAP, LDAP, SMTP and database
server); compliance to standards, such as CalDAV and CardDAV; and excellent
interoperability with popular applications, such as Mozilla Thunderbird,
Apple iCal/Address Book and Microsoft Outlook. The latter is supported
through a close collaboration between the SOGo and OpenChange Projects.

Since my last article, there have been more fluctuations in the
world of open-source groupware, including:

CalDAV and CardDAV protocols have gained major popularity, and extensions,
such as Collection Synchronization for WebDAV and CalDAV Scheduling Extensions
to WebDAV, are making those finally usable in large-scale enterprise
environments.

Apple is actively integrating open standards in its calendar and address-book applications.

DAViCal and OpenChange have emerged as great solutions to consider.

Funambol has positioned itself as the favorite synchronization middleware.

The first incarnation of SOGo appeared with v1.0
in March 2009, and versions up to 1.3.2 quickly followed. This article
presents the current state of SOGo, its integration capabilities with
desktop and mobile clients and provides simple instructions to
get a workable installation quickly.

Installation

Installing SOGo is very easy, as packages are available for a variety of
GNU/Linux-based distributions, such as Red Hat Enterprise (and CentOS),
Debian and Ubuntu. An Ubuntu-based virtual appliance also is available,
which provides a complete out-of-the-box testing environment of SOGo.
Here, I provide high-level installation and configuration
instructions. For more in-depth instructions, look at the official
SOGo documentation, which covers everything, including instructions for
desktop clients and mobile devices.

SOGo leverages virtually every part of your
infrastructure. It makes
use of the following:

Of course, when you do not have such components in your environment,
best-of-breed ones can be used from the free and Open Source community.
SOGo
will literally transform those loosely coupled components into a single
and coherent groupware solution, which then can be accessed from your
favorite Web browser or from a variety of desktop and mobile
clients.

Assuming you have an Ubuntu 10.04 LTS installation and you prefer MySQL,
let's proceed with the installation of SOGo and its dependencies. First, add
SOGo's repository to your APT sources list, and resynchronize the package
index files from their sources:

SOGo's database will be used to store events, tasks, contacts and user
preferences. To keep this installation as simple as possible, let's
also use MySQL for user authentication. To make this work, create a
database table holding user information, and add three test users all with
the same MD5-encrypted password (“secret”):

In a read-world environment, your database table probably would be
much more complex than that. It also might be a database view on your
existing information, and in many cases, an LDAP server will be
used for authentication and user information retrieval instead. SOGo supports
multiple authentication sources, so you also could have an LDAP server
for authentication used together with an SQL view on your CRM contacts
that would be exposed as an address book to all your SOGo users.

Next, let Apache proxy requests to SOGo. Because SOGo is not a
fully compliant HTTP server, you should use Apache (or any other HTTP
server) in front of it by enabling some required modules:

% a2enmod proxy
% a2enmod proxy_http
% a2enmod headers

Once enabled, you must configure SOGo so that it uses your newly created MySQL
database. Again, in this example, let's not configure the Web mail part
of SOGo to keep the configuration as simple as possible. Nonetheless,
if you do have a working IMAP server installation (Cyrus IMAP Server
and Dovecot are recommended), it will work out of the box if SOGo and
your IMAP server use the same authentication source.

Proceed with SOGo's configuration under the “sogo” user. This is very
important as the sogod dæmon will run under the sogo user, so the
preferences created by the defaults utility must belong to the sogo
user: