Andries filmer

Feel free with Open Source Software

Andries Filmer - Internet professional sinds 1996.
Ik ben groot voorstander van Free- en Opensource Software (FOSS) en laat deze site jouw overtuigen waarom dit goed is.
Home Over deze website Kennisbank Ezelsoren Freelancer Online gereedschap

Scalable Open Groupware Org - SOGo

Index
  1. What is SOGo?
  2. Install SOGo
  3. Configure SOGo
  4. Configure SOGo to use MySQL
  5. Configure Apache
  6. Configure SMTP
  7. Enjoy SOG0
  8. Debug SOGo
  9. Comments

Share your calendars, address books. todo's and mails in your community with a completely free and open source solution.

What is SOGo?

SOGo is groupware server with a focus on scalability and open standards.

SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV.

SOGo is the missing component of your infrastructure; it sits in the middle of your servers to offer your users an uniform and complete interface to access their information. It has been deployed in production environments where thousands of users are involved.

http://www.scalableogo.org

Install SOGo

This howto is based on a install on ubuntu server (Intrepid 8.10)

 vi /etc/apt/source.lst

Add

 deb inverse.ca/debian/ lenny lenny

Then run

 sudo apt-get update
 sudo apt-get install gnustep-make
 sudo apt-get install sogo
 sudo apt-get install slapd

Configure SOGo

This is a example SOGo configuration. There are options to authenticate users via sql and ldap. In this example we use mysql database to authenticate the users and we use a global ldap address book.

 vi /home/sogo/GNUstep/Defaults/.GNUstepDefaults 

 {
    NSGlobalDomain = {
    };
    "sogod" = {
       OCSFolderInfoURL = "mysql://sogo:sogopassword@mysql.filmer.nl:3306/sogo/sogo_folder_info";
       SOGoProfileURL = "mysql://sogo:sogopassword@mysql.filmer.nl:3306/sogo/sogo_user_profile";
       SOGoAppointmentSendEMailNotifications = YES;
       SOGoAuthenticationMethod = SQL;
       SOGoCalendarDefaultRoles = (
              PublicViewer,
              ConfidentialDAndTViewer
       );
       SOGoMailDomain = mail.filmer.nl;
       SOGoMailingMechanism = smtp;
       SOGoSMTPServer = 127.0.0.1;
       SOGoSentFolderName = Sent;
       SOGoDraftsFolderName = Drafts;
       SOGoTrashFolderName = Trash;
       SOGoSharedFolderName = "Shared Folders";
       SOGoOtherUsersFolderName = "Other Users";
       SOGoSpecialFoldersInRoot = YES;
       SOGoIMAPServer = "mail.filmer.nl";
       SOGoUserSources =
       (
          {
             type = sql;
             id = accounts;
             viewURL = "http://sogo:sogopassword@mysql.filmer.nl:3306/sogo/sogo_view";
             canAuthenticate = YES;
             isAddressBook = NO;
             userPasswordAlgorithm = none;
             displayName = "Employees";
          },
          {
              type = ldap;
              CNFieldName = cn;
              IDFieldName = uid;
              UIDFieldName = uid;
              baseDN = "ou=contacts,dc=filmer,dc=nl";
              bindDN = "cn=contactread,dc=filmer,dc=nl";
              bindPassword = contactreadpassword;
              canAuthenticate = NO;
              displayName = "LDAP addresses";
              hostname = "ldap.filmer.nl";
              id = contacts;
              isAddressBook = YES;
              port = 389;
           }
       ); 
       SOGoLanguage = Dutch;
       SOGoTimeZone = Europe/Amsterdam;
    };
 }

Tip: Read howto configure the ldap server.

Configure SOGo to use MySQL

If we use mysql to authenticate we need a create a table or view with the fields (sogo_id,c_uid,c_name,c_password,c_cn,mail).

First create a database and user:

 mysql -u root mysql
 mysql> CREATE DATABASE `sogo`;
 mysql> GRANT ALL PRIVILEGES ON sogo.* TO sogo@'194.242.19.%' IDENTIFIED BY 'sogopassword';

Create a table or view (sogo_view.sql):

 DROP TABLE IF EXISTS `sogo_view`;
 CREATE TABLE `sogo_view` (
  `sogo_id` int(11) NOT NULL AUTO_INCREMENT,
  `c_uid` varchar(50) DEFAULT NULL,
  `c_name` varchar(50) DEFAULT NULL,
  `c_password` varchar(20) DEFAULT NULL,
  `c_cn` varchar(50) DEFAULT NULL,
  `mail` varchar(100) NOT NULL DEFAULT '',
  PRIMARY KEY (`sogo_id`)
 );
 
 # Create a user:
 insert into sogo_view (c_uid,c_name,c_password,c_cn,mail) Values ('andries','andries','pwsecret','Andries Filmer','andries@filmer.nl');

Exectute the sql query's

 mysql sogo < sogo_view.sql

Configure Apache

 apt-get install apache2

Configure modules

 cd /etc/apache2/mods-enabled
 ln -s ../mods-available/proxy.load proxy.load
 ln -s ../mods-available/proxy_connect.load proxy_connect.load
 ln -s ../mods-available/proxy_http.load proxy_http.load
 ln -s ../mods-available/headers.load headers.load

 vi /etc/apache2/sites-enabled/000-default

Set

 DocumentRoot /usr/lib/GNUstep/SOGo

Configure SMTP

 apt-get install exim4
 dpkg-reconfigure exim4-config

I use a separate mailserver (Postfix Dovecot) and choose smarthost option.

Enjoy SOG0

Start or restart SOGo:

 /etc/init.d/sogod restart

Browse to; http://host.filmer.nl/SOGo/

Debug SOGo

Besides the regular logfiles I found it hard to debug SOGo. The only thing I could find to debug where the following options which can be used in GNUstepDefaults.

 GCSFolderDebugEnabled = YES;
 OCSFolderManagerSQLDebugEnabled = YES;
 SOGoImapDebugEnabled = YES;
 SOGoDebugRequests = YES;
 SOGoUIxDebugEnabled = YES;
 SoDebugKeyLookup = YES;
 SoDebugBaseURL = YES;

This page is created on 2010-04-12 and updated on 2010-04-22

I appreciate if you give some comment about this page. Please go ahead.
Your e-mailaddress will not be published it is only to contact you (if needed).

 
Your name
Your e-mailaddress
To prefent robots to use this form I ask you kindly to type the next characters in the input field.
 
Jouw Gravatar Commentaar van Mario Ganzeboom geplaatst op 2010-11-24
Hi Andries,

This little run down of installing SOGo helped me in setting up a SOGo server. My server setup is:
Ubuntu 10.04 Lucid Lynx
SOGo 1.3.4 from the Inverse repositories for Ubuntu
Postfix for SMTP
MySQL for authentication and addres book keeping
No LDAP

I would like to add my experiences in the problems I encountered during configuration.

1. GNUStep config problems/issues
My version of GNUStep converts everything to XML format. The manual from the SOGo website does however
explain everything in the former format of the serialised property list.
Not having a valid .GNUStepDefaults file because I did not know the format for arrays and dictionaries
in the new XML format, my SOGo server did not start fully and Apache threw a 502 proxy error in which
it could not connect to the SOGo server.
I remedied the invalid config file by first writing everything down in the old serialised property list
format, saving the file and then changing one of the properties through the command line method of
defaults write sogod ..... as described in the manual.
Then GNUStep automatically converted the whole file correctly to the XML format.
Presto! SOGo started up completely and correct and Apache now retrieved the SOGo login page.

2. MySQL and MD5 encryption of passwords
In addition to the instructions above, I wanted to enable the MD5 encryption of passwords in SOGo. To do
that I encrypted the database password field of the user for logging into SOGo through phpMyAdmin with
the MD5 encryption algorithm.
In the .GNUStepDefaults file I also changed the userPasswordAlgorithm value from none to md5 under the
SOGoUserSources key. At first I could not login to SOGo and it errored with the message that either login
or password was incorrect. That was because the password field in the database was not long enough to
contain the complete md5 hash. After changing to a varchar of length 50 the login with md5 encrypted
passwords was fine.

Hope you can benefit from the above comments.

Happy SOGoing!
Jouw Gravatar Commentaar van Tony Rogers geplaatst op 2010-12-26
Thanks for the guide.

I read through the Sogo documentation, but most of it went right over my head.

But after reading this web page, I had Sogo up and running in 15 minutes!

Thankyou!

Best regards,
Tony Rogers.
Jouw Gravatar Commentaar van Helge Kraak geplaatst op 2011-07-23
Many thanks for sharing this very useful information!

 


Mijn Curriculum vitae | De content op deze website heeft de Creativecommons 3.0 licentie | © 2011
Andries Filmer | http://andries.filmer.nl | andries@filmer.nl | © 2011
Deze website wordt gerealiseerd met Free- en Open Source Software: | | | | | |