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.

  • OpenGroupware.org, 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.

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:

  • 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 http://inverse.ca/ubuntu 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 DATABASE sogo CHARSET='UTF8';
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', 'alice@acme.com');
mysql> INSERT INTO sogo_users VALUES ('bob', 'bob', MD5('secret'), 
 ↪'Bob Smith', 'bob@acme.com');
mysql> INSERT INTO sogo_users VALUES ('chris', 'chris', MD5('secret'), 
 ↪'Chris Cooper', 'chris@acme.com');

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 "acme.com"
% defaults write sogod SOGoLanguage English 
% defaults write sogod SOGoUserSources '({canAuthenticate = YES; 
 ↪displayName = "SOGo Users"; id = users; isAddressBook = YES; 
 ↪type = sql; userPasswordAlgorithm = md5; viewURL = 
 ↪"mysql://sogo:secret@127.0.0.1:3306/sogo/sogo_users";})'
% defaults write sogod SOGoProfileURL 
 ↪'mysql://root:secret@127.0.0.1:3306/sogo/sogo_user_profile'
% defaults write sogod OCSFolderInfoURL 
 ↪'mysql://root:secret@127.0.0.1:3306/sogo/sogo_folder_info'
% 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"

______________________

Comments

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

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState