SOGo—Open-Source Groupware
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.
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"
Today’s modular x86 servers are compute-centric, designed as a least common denominator to support a wide range of IT workloads. Those generic, virtualized IT workloads have much different resource optimization requirements than hyperscale and cloud applications. They have resulted in a “one size fits all” enterprise IT architecture that is not optimized for a specific set of IT workloads, and especially not emerging hyperscale workloads, such as web applications, big data, and object storage. In this report, you will learn how shifting the focus from traditional compute-centric IT architectures to an innovative disaggregated fabric-based architecture can optimize and scale your data center.
Sponsored by AMD
Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6
Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.
Learn more about catching the bad guy in this free white paper.
Sponsored by DLT Solutions
Free Webinar: Linux Backup and Recovery
Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.
In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.
| Using Salt Stack and Vagrant for Drupal Development | May 20, 2013 |
| Making Linux and Android Get Along (It's Not as Hard as It Sounds) | May 16, 2013 |
| Drupal Is a Framework: Why Everyone Needs to Understand This | May 15, 2013 |
| Home, My Backup Data Center | May 13, 2013 |
| Non-Linux FOSS: Seashore | May 10, 2013 |
| Trying to Tame the Tablet | May 08, 2013 |
- RSS Feeds
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- New Products
- Drupal Is a Framework: Why Everyone Needs to Understand This
- A Topic for Discussion - Open Source Feature-Richness?
- Home, My Backup Data Center
- Validate an E-Mail Address with PHP, the Right Way
- Tech Tip: Really Simple HTTP Server with Python
- Trying to Tame the Tablet
- New Products
- git-annex assistant
5 hours 44 min ago - direct cable connection
6 hours 7 min ago - Agreed on AirDroid. With my
6 hours 17 min ago - I just learned this
6 hours 21 min ago - enterprise
6 hours 51 min ago - not living upto the mobile revolution
9 hours 42 min ago - Deceptive Advertising and
10 hours 18 min ago - Let\'s declare that you have
10 hours 19 min ago - Alterations in Contest Due
10 hours 20 min ago - At a numbers mindset, your
10 hours 21 min ago




Comments
At last !
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