4. Basic setup
Please follow the installation guide ('General Preferences'):
su - sogo
defaults write sogod SOGoTimeZone "America/Montreal"
...
and so on.
All information will be stored in /home/sogo/GNUstep/Default/.GNUstepDefault.
If you want to use SOGo with MySQL as the DB backend, you need sope4.9-gdl1-mysql [6].
5. ebox/ldap integration
Here is my .GNUstepDefault with explanations below. All ${.*} have to be adjusted accordingly. Please refer to the official documentation.
SOGo does not support IMAPS yet (I think there are some patches or ideas out already). So you have to allow IMAP connections.
{
NSGlobalDomain = {
};
sogod = {
WOApplicationRedirectURL = "https://{$yoururl}/SOGo/";
OCSFolderInfoURL = "mysql://{$sogouser}:{$sogopassword}@localhost:3306/{$sogodb}/sogo_folder_info";
SOGoACLsSendEMailNotifications = YES;
SOGoAppointmentSendEMailNotifications = YES;
SOGoAuthenticationMethod = LDAP;
SOGoDraftsFolderName = Drafts;
SOGoFirstDayOfWeek = 1;
SOGoFoldersSendEMailNotifications = YES;
SOGoForceIMAPLoginWithEmail = YES;
SOGoForwardEnabled = YES;
SOGoIMAPServer = localhost;
SOGoLanguage = {$language};
SOGoMailDomain = {$maildomain}
SOGoMailingMechanism = sendmail;
SOGoOtherUsersFolderName = "Other Users";
SOGoProfileURL = "mysql://{$sogouser}:{$sogopassword}@localhost:3306/{$sogodb}/sogo_user_profile";
SOGoSMTPServer = localhost;
SOGoSentFolderName = Sent;
SOGoSharedFolderName = "Shared Folders";
SOGoSuperUsernames = (
{$adminuser1}, {$adminuser2}
);
SOGoTimeZone = {$timezone};
SOGoTrashFolderName = Trash;
SOGoUserSources = (
{
CNFieldName = cn;
IDFieldName = uid;
UIDFieldName = uid;
baseDN = "ou=Users,dc=ebox";
bindDN = "cn=ebox,dc=ebox";
bindPassword = ${ldapsecret};
canAuthenticate = YES;
displayName = "Shared Addresses";
hostname = localhost;
id = public;
isAddressBook = YES;
port = 389;
}
);
SOGoVacationEnabled = YES;
WOMessageUseUTF8 = YES;
WOParsersUseUTF8 = YES;
WOPort = 20000;
WOSendMail = "/usr/sbin/sendmail";
};
}
WOApplicationRedirectURL = {$yoururl}: url of apache proxy stettings for SOGo (AFAIK this parameter is deprecated)
OCSFolderInfoURL = "mysql://{$sogouser}:{$sogopassword}@localhost:3306/{$sogodb}/sogo_folder_in: cf. [6,2]
SOGoMailDomain = {$maildomain}: ebox mail domain
SOGoForceIMAPLoginWithEmail = YES: important for the dovecot login
SOGoMailingMechanism = sendmail: SMTP can work as well if you adjust your ebox settings
SOGoProfileURL = "mysql://{$sogouser}:{$sogopassword}@localhost:3306/{$sogodb}/sogo_user_profil: cf. [6,2]
SOGoSuperUsernames = ({$adminuser1}: sogo admin(s)
bindDN = "cn=ebox,dc=ebox": for ebox 1.4 (or what you've chosen in the openldap setup); use "cn=admin,dc=ebox" for ebox 1.2
bindPassword = ${ldapsecret}: cat /etc/ldap.secret
There might be some more parameters that could be of interest. More detail in [2].
In addition: a similar setup using the xml-style configuration, a bit more complex (note: the bracket style configuration gets automatically converted into xml after using defaults write, both styles work):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
<plist version="0.9">
<dict>
<key>NSGlobalDomain</key>
<dict>
</dict>
<key>sogod</key>
<dict>
<dict>
<------><key>OCSFolderInfoURL</key>
<------><string>mysql://sogo:sogo@127.0.0.1:3306/sogo_prod/sogo_folder_info</string>
<------><key>SOGoACLsSendEMailNotifications</key>
<------><string>YES</string>
<------><key>SOGoAppointmentSendEMailNotifications</key>
<------><string>YES</string>
<------><key>SOGoCacheCleanupInterval</key>
<------><string>300</string>
<------><key>SOGoDraftsFolderName</key>
<------><string>Drafts</string>
<------><key>SOGoFirstDayOfWeek</key>
<------><string>1</string>
<------><key>SOGoFoldersSendEMailNotifications</key>
<------><string>YES</string>
<------><key>SOGoForceIMAPLoginWithEmail</key>
<------><string>YES</string>
<------><key>SOGoForwardEnabled</key>
<------><string>YES</string>
<------><key>SOGoIMAPAclConformsToIMAPExt</key>
<------><string>YES</string>
<------><key>SOGoIMAPServer</key>
<------><string>127.0.0.1:143</string>
<------><key>SOGoLanguage</key>
<------><string>English</string>
<------><key>SOGoMailAuxiliaryUserAccountsEnabled</key>
<------><string>yes</string>
<------><key>SOGoMailingMechanism</key>
<------><string>sendmail</string>
<------><key>SOGoMemcachedHost</key>
<------><string>127.0.0.1</string>
<------><key>SOGoOtherUsersFolderName</key>
<------><string>Other Users</string>
<------><key>SOGoProfileURL</key>
<------><string>mysql://sogo:sogo@127.0.0.1:3306/sogo_prod/sogo_user_profile</string>
<------><key>SOGoSMTPServer</key>
<------><string>127.0.0.1</string>
<------><key>SOGoSentFolderName</key>
<------><string>Sent</string>
<------><key>SOGoSharedFolderName</key>
<------><string>Shared Folders</string>
<------><key>SOGoSuperUsernames</key>
<------><array>
<------> <string>sogo</string>
<------> <string>bartsimpson</string>
<------></array>
<------><key>SOGoTimeZone</key>
<------><string>America/Montreal</string>
<------><key>SOGoTrashFolderName</key>
<------><string>Trash</string>
<------><key>SOGoVacationEnabled</key>
<------><string>YES</string>
<------><key>WOMessageUseUTF8</key>
<------><string>YES</string>
<------><key>WOParsersUseUTF8</key>
<------><string>YES</string>
<------><key>WOPort</key>
<------><string>20000</string>
<------><key>WOSendMail</key>
<------><string>/usr/sbin/sendmail</string>
<------><key>WOWorkersCount</key>
<------><string>3</string>
<------><key>domains</key>
<------><dict>
<------> <key>sogo.local</key>
<------> <dict>
<------><------><key>SOGoMailDomain</key>
<------><------><string>sogo.local</string>
<------><------><key>SOGoUserSources</key>
<------><------><array>
<------><------> <dict>
<------><------><------><key>CNFieldName</key>
<------><------><------><string>cn</string>
<------><------><------><key>IDFieldName</key>
<------><------><------><string>mail</string>
<------><------><------><key>MailFieldNames</key>
<------><------><------><array>
<------><------><------> <string>mail</string>
<------><------><------> <string>mozillaSecondEmail</string>
<------><------><------></array>
<------><------><------><key>SOGoLDAPContactInfoAttribute</key>
<------><------><------><string>uid</string>
<------><------><------><key>UIDFieldName</key>
<------><------><------><string>mail</string>
<------><------><------><key>bindFields</key>
<------><------><------><string>uid</string>
<------><------><------><key>SOGoForceIMAPLoginWithEmail</key>
<------><------><------><string>true</string>
<------><------><------><key>SOGoLDAPContactInfoAttribute</key>
<------><------><------><string>uid</string>
<------><------><------><key>baseDN</key>
<------><------><------><key>baseDN</key>
<------><------><------><string>ou=Users,dc=sogo</string>
<------><------><------><key>bindDN</key>
<------><------><------><string>cn=ebox,dc=sogo</string>
<------><------><------><key>bindPassword</key>
<------><------><------><string>sogoldappw</string>
<------><------><------><key>canAuthenticate</key>
<------><------><------><string>YES</string>
<------><------><------><key>displayName</key>
<------><------><------><string>Users Addresses</string>
<------><------><------><key>filter</key>
<------><------><------><string>(objectClass=inetOrgPerson)</string>
<------><------><------><key>hostname</key>
<------><------><------><string>127.0.0.1</string>
<------><------><------><key>id</key>
<------><------><------><string>users</string>
<------><------><------><key>isAddressBook</key>
<------><------><------><string>YES</string>
<------><------><------><key>port</key>
<------><------><------><string>389</string>
<------><------><------><key>type</key>
<------><------><------><string>ldap</string>
<------><------> </dict>
<------><------></array>
<------> </dict>
<------></dict>
</dict>
</dict>
</plist>
Make sure you make a backup of your config, because typos in the config can cause the whole config reset.
6. Apache integration
The proxy settings for the apache/SOGo integration are done /etc/apache2/conf.d/SOGo.conf. You need to adjust several settings. Things are further explained in [2].
If you use mod_security you have to disable rules 960010, 960032, 960038, 970903 and
970902.
That's it (hopefully).
Have fun. I really like SOGo, its a great open source group ware.
So long,
Björn
EDIT: corrected missing quotes in the database connection string