SOGo—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.

  • Mozilla Messaging finally released Thunderbird 3 with a greatly improved Mozilla Lightning extension.

  • Zimbra gained tons of popularity, but Yahoo sold it to VMware for a major loss.

  •, Open-Xchange, Citadel, Kolab, eGroupWare and Bedework are fading away.

  • Chandler and Bongo virtually died.

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


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:

  • Your LDAP server for authentication, public address books and groups extraction.

  • Your database server to store events, tasks and contacts. A database server also can be used for authentication and shared address books. MySQL, Oracle and PostgreSQL are supported.

  • Your IMAP server to store/retrieve e-mail. When available, SOGo also makes use of advanced capabilities, such as IMAP ACLs, Sieve, shared folders and more.

  • Your SMTP server to send e-mail.

  • Your HTTP server to proxy requests to the SOGo server and perform SSL encryption.

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:

% sudo su -
% echo 'deb lucid main' 
  ↪>> /etc/apt/sources.list
% apt-get update 

Then, install SOGo, its dependencies, Apache and MySQL:

% apt-get install sogo sope4.9-gdl1-mysql apache2 mysql-server 

If you get Apache startup errors after the installation, ignore them. Next, create the SOGo database and the required user:

mysql -h localhost -u root -p
mysql> CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'secret';
mysql> GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost';

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”):

mysql> USE sogo;
mysql> CREATE TABLE sogo_users (c_uid VARCHAR(10) PRIMARY KEY, 
 ↪c_name VARCHAR(10), c_password VARCHAR(32), 
 ↪c_cn VARCHAR(128), mail VARCHAR(128));
mysql> INSERT INTO sogo_users VALUES ('alice', 'alice', 
 ↪MD5('secret'), 'Alice Thompson', '');
mysql> INSERT INTO sogo_users VALUES ('bob', 'bob', MD5('secret'), 
 ↪'Bob Smith', '');
mysql> INSERT INTO sogo_users VALUES ('chris', 'chris', MD5('secret'), 
 ↪'Chris Cooper', '');

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:

% sudo su - sogo
% defaults write sogod SOGoTimeZone "America/Montreal"
% defaults write sogod SOGoMailDomain ""
% defaults write sogod SOGoLanguage English 
% defaults write sogod SOGoUserSources '({canAuthenticate = YES; 
 ↪displayName = "SOGo Users"; id = users; isAddressBook = YES; 
 ↪type = sql; userPasswordAlgorithm = md5; viewURL = 
% defaults write sogod SOGoProfileURL 
% defaults write sogod OCSFolderInfoURL 
% defaults write sogod SOGoAppointmentSendEMailNotifications NO
% defaults write sogod SOGoLoginModule Calendar
% exit

Finally, modify the /etc/apache2/conf.d/SOGo.conf configuration file to use localhost with no SSL. So replace the following:

RequestHeader set "x-webobjects-server-port" "443"
RequestHeader set "x-webobjects-server-name" "yourhostname"
RequestHeader set "x-webobjects-server-url" "https://yourhostname"



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

At last !

Jason Simmons's picture

A lot of the "open source" groupware products that run on Linux servers are designed to service primarly windows clients.

This is the first solution that I have seen that can be run in a linux server, and be consumed by windows,linux and mac clients, via a single application via Thunderbird & Lightining.

Windows users can still have their MS Outlook comfort blanket if they cant bear to part with it, without the need to install cludgy Mapi connectors.

This looks like a fantastic project, and I will be trying it out myself