Zentyal Forum, Linux Small Business Server

Zentyal Server => Installation and Upgrades => Topic started by: binary-two on April 05, 2010, 12:07:35 pm

Title: Quick Howto: SOGo
Post by: binary-two on April 05, 2010, 12:07:35 pm
Hi there,

as far as I can understand, some people are interested in getting SOGo [1] running on ebox; or others are having trouble with their LDAP integration. It works fine for me with the setup as described later. I use SOGo with MySQL on Ubuntu Hardy 8.04 LTS. I am using ebox is 1.4.

Actually it might be worth getting an ebox module, but I never had time to look into it (yet) :-). For now here are some basic informations how I got it running. I just want to point out the most important steps. Please refer to the very nice official documentation from Inverse [3]. The MHC SoftWare SOGo WIKI [4] was also a big help for me.

1. SOGo apt source

Add
Code: [Select]
deb http://inverse.ca/debian lenny lenny to your /etc/apt/sources.list

2. Other dependencies

You need to build
gnustep-base-common_1.16.1-2ubuntu1_all.deb
gnustep-base-runtime_1.16.1-2ubuntu1_i386.deb
gnustep-common_2.0.6-2_i386.deb
libgnustep-base1.16_1.16.1-2ubuntu1_i386.deb
yourself or get them from the intrepid repository. There are only older hardy packages (maybe in backports?!). All other dependencies can be automatically obtained form the inverse or hardy repositories.

I can't remember any other problems respectively unmet dependencies.

Disclaimer: (a) the manually installed packages are not updated automatically, of course and (b) external packages and untrusted repositories can damage your system.

3. Installing SOGo

Should be sudo apt-get install gnustep-make sogo only.

The setup will be in the next post in this thread.

[1] http://www.scalableogo.org
[2] http://www.scalableogo.org/files/docs/SOGo%20Installation%20Guide.pdf
[3] http://inverse.ca/english.html
[4] http://wiki.mhcsoftware.de/SOGo
[5] http://www.scalableogo.org/english/support/faq/article/how-to-install-sogo-on-ubuntu.html
[6] http://www.scalableogo.org/english/support/faq/article/how-do-i-configure-sogo-to-use-mysql.html
Title: Re: Quick Howto: SOGo
Post by: J. A. Calvo on April 05, 2010, 12:37:11 pm
Thanks for your contribution!!
Title: Re: Quick Howto: SOGo
Post by: binary-two on April 05, 2010, 01:05:55 pm
4. Basic setup

Please follow the installation guide ('General Preferences'):
Code: [Select]
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.

Code: [Select]
{
    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):

Code: [Select]

<?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
Title: Re: Quick Howto: SOGo
Post by: poundjd on April 05, 2010, 08:26:17 pm
Thanks a million.
-jef
Title: Re: Quick Howto: SOGo
Post by: binary-two on April 06, 2010, 11:07:08 am
Btw. with the MailFieldNames attribute ...

Code: [Select]
SOGoUserSources = (
            {
                ...
                MailFieldNames = ( mail, AstVoicemailEmail);

... you can get more mail addresses pulled out of the LDAP.

So long,

Björn
Title: Re: Quick Howto: SOGo
Post by: JuanjoA on April 06, 2010, 02:48:26 pm
Is spanish language supported?

Thx
Juanjo A.
Title: Re: Quick Howto: SOGo
Post by: kbrault on April 06, 2010, 09:35:18 pm
Thanks Björn nice work,

I can't wait to try this!

Kevin
Title: Re: Quick Howto: SOGo
Post by: chrischnian on April 13, 2010, 10:43:25 am
The user password is stored in the LDAP server?

For we must say yes when the LDAP server field in which it is stored.

Under "bindPassword" yes you have the box where the user's password is stored in LDAP. Should be the field yet, so the user password is not stored in the LDAP how can I create a box and store it as a password?

Greeting

in German  ;)

Das User Passwort wird das auch im LDAP Server gespeichert?

Denn man muss ja sagen wo in welchen Feld des LDAP Servers es gespeichert wird.

Unter "bindPassword" muss man ja das Feld angeben das wo das User Passwort im LDAP gespeichert wird. Sollte das Feld noch nicht bestehen, also das User Passwort nicht im LDAP gespeichert werden wie kann ich ein Feld anlegen und darin ein Passwort ablegen?

Gruss

chris
Title: Re: Quick Howto: SOGo
Post by: binary-two on April 13, 2010, 11:00:07 am
Nope, bindPassword is the admin password (cn=ebox,dc=ebox) for openldap. Therefore you need to take the value stored in /etc/ldap.secret.

With this configuration, ebox users passwords are pulled automatically from the LDAP. The attribute for the user password in the LDAP is standardised. Just add users via ebox.

Björn
Title: Re: Quick Howto: SOGo
Post by: chrischnian on April 13, 2010, 11:08:34 am
Ok thanks

I'll have to test it, I understood what wrong!
Title: Re: Quick Howto: SOGo
Post by: snarf77 on September 01, 2010, 11:19:58 am
Hello,

  I'm very interested in setting up Sogo for thunderbird with LDAP integration but for the moment I just can't succeed in. I found this old post very interesting and I try to follow it but I'm confused mainly concerning three items:

   1) my GNUStepDefault is xml format instead of plain text as yours.
    can I copy / paste yours instead (and modifying custom data of course) or should I enter these manually following xml format (<key>, <string>) ?

    2) are all the options related to mysql mandatory or is these necessary only ot authentication is set to mysql instead of LDAP (OCSFolderInfoURL and SOGoProfileURL) ?

    3) finallly, what is WOApplicationRedirectURL purpose ? Before I was able to access the Sogo page with http://myIP:20000 but after modifying this line the web page is no more available. Is it due to this line or have I another connection problem ?

  Thanks in advance for your answer.
 
  Snarf77
Title: Re: Quick Howto: SOGo
Post by: binary-two on September 01, 2010, 05:07:59 pm
Hi Snarf77,

Are you using Ubuntu 10 already? I have only hardy installations, so far. I am not aware of any changes of the file format (i.e, xml). You can manually add the key, values with a SOGo command, please check the SOGo manual (i.e., su - sogo; defaults write sogod ...). Please let us know if it works.

There is SOGo-specific profile data stored in a database (mysql or postgres). The authentication is still via LDAP, if configured so.

Please do not access the sogod directly. You need to configure a reverse proxy in Apache. Please see the manual again.

You might want to check the excellent SOGo documentation or the SOGo mailing list as well.

So long,

Björn
Title: Re: Quick Howto: SOGo
Post by: snarf77 on September 01, 2010, 10:52:33 pm
Hi Björn,

thanks for your reply,

Yes I'm running a 10.04 LTS server.
I have alreaedy added values with the Sogo command (defaults write ...) but it's far less convenient than copy/paste into a text file !! especially when you must fill with array like usersgroup ...

Anyway that is not the main item, I can handle that.

I'm not sure to understand your second point. My understanding is that Sogo requires a database whatever the authentication type (ldap or other). Hence I presume that both OCSFolderInfoURL and SOGoProfileURL are requires even if I only use LDAP to authenticate. Please correct me if I'm wrong.

At last, concerning the "direct" access, you mean http://myserverip:20000 ? I will double check the manual concerning the reverse proxy as I must confess I didn't do anything concerning that point.

I already got the last sogo docs but I'm a little bit confused how to customize the settings to make it works with ebox. Concerning that point, what rules did you add to your ebox firewall ? Additionnaly to the TCP port 20000, I saw some requests concerning UDP port 5353 ? Is it possible for you to share your ebox conf with me (firewall rules and mainly ldap settings (listening port and other parameters you might think useful)).

Many thanks for this first step again

Bye

Snarf

Title: Re: Quick Howto: SOGo
Post by: binary-two on September 05, 2010, 08:10:56 pm
Hi Snarf,

I will check with Ubuntu 10.4 soon. It could be that there were changes in the GNUStep environment, but I have no Lucid test system yet. Did you try to use the text version as described here?

Yes you need the database.

As far as I understand and read the documentation, you must use a reverse proxy. You must not access it directly (i.e., port 20000). You can find more in the SOGo mailing list. Also, there should be a sogo.conf in /etc/apache2/conf.d. Theoretically it should be included automatically, but you might need to tweak something.

Please see "Chapter 5 - Apache Configuration" in the SOGo doc.

I did not change any ldap or firewall configurations for the basic SOGo setup. I have customised things, but for other purposes.

So long,

Björn
Title: Re: Quick Howto: SOGo
Post by: binary-two on September 10, 2010, 11:20:43 am
Yes, works with the same config file.
Title: Re: Quick Howto: SOGo
Post by: snarf77 on September 10, 2010, 04:06:15 pm
Hi Björn,

sorry fo being idiot but when you install SOGo and edit your conf file the first time, which format is that xml or plain text ???

I will try next week to use your file (is it complete in this post or only an extract ?)

thanks again

snarf
Title: Re: Quick Howto: SOGo
Post by: binary-two on September 22, 2010, 07:40:04 am
Hi Snarf,

No problem!

I finally found the time to finish a clean lucid install now. So I was able to check. By default the GNUstep environment creates an xml file. But it is okay to paste the bracket-style  ({ template as posted here.

It works perfectly fine and you can edit the file with a text editor.  If you use the command line tool, ie., defaults write sogod ... for the first time, the file gets converted to xml (neat! I could not find anything documented when I quickly tried to find a tool for conversion).

Everything runs fine except the ACL features. They did not work out of the box in an hardy environment, but I thought a lucid setup should have all prerequisites. I'll check this issue. Maybe we can find something in the mailing list.

I would suggest to paste my template, adjust it and run defaults write sogod at least once.

Keep me updated!

So long,

Björn
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on October 07, 2010, 04:54:23 pm
I had little issue getting SOGo to work. I'm still debating whether to go Zarafa or SOGo. I'm very reluctant to put 50+ Gbits of email in a DB. SOGo builds on tried and true mail services, and don't forget the great Thunderbird integration. However, Zarafa is the supported solution, seemed pretty responsive in my limited tests, and I was able to get Thunderbird/Lightning to work with it using the IMAP and CalDAV backends. I may be having decision paralysis  :-\

So far we are only missing the folder sharing/ACL features of SOGo. I believe that has as much to do with Dovecot. I've started to look into it, but so far I haven't found much from SOGo about working with Dovecot 1.2 ( which does support folder sharing and ACL). Anyone come up with anything yet?

If Zentyal had gone Cyrus vs Dovecot, SOGo would have made one nice integrated product.
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 07, 2010, 06:30:39 pm
Hi!

ACL works with some minor changes to dovecot.conf.mas:

In the protocol imap section:

% my @imapPlugins = qw(quota imap_quota autocreate);

change to

% my @imapPlugins = qw(quota imap_quota autocreate acl imap_acl);

and uncomment both in the acl section:

acl = vfile:/etc/dovecot/dovecot-acls:cache_secs=300

and

acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes

And

/etc/init.d/ebox mail restart

Maybe acls could be enabled out of the box?!


Björn
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on October 07, 2010, 07:57:13 pm
Nice thanks, I'll try it out. Just one question or thought. From what I've read I thought it was necessary to set add the shared namespace configuration info.
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on October 08, 2010, 03:09:29 am
Still attempting to get email folder sharing working. I think I'm closer. I tried the above modifications but they don't seem to work as expected. Below is a diff of my modifications of the dovecot.conf.mas thus far. The shared folder show up for users, the shared-mailboxes.db gets written to, but shared folders don't yet appear under the "Shared" folder just yet.

I think the shared-mailboxes.db is not correct, so I'm taking that on next. I think it as something to do with the user name. Contents is currently formated like this:

shared/shared-boxes/user/{user1}/{user2}@{domain}

Probably has to be more like shared/shared-boxes/user/{user1}/{user2} or shared/shared-boxes/user/{user1}@{domain}/{user2}@{domain}, but not the mix of them I'm seeing. I'll have to read the Dovecot docs to be sure.

Diff results:

/usr/share/ebox/stubs/mail$ diff dovecot.conf.mas dovecot.conf.mas.orig
268c268
< namespace private {
---
> #namespace private {
272c272
<    separator = /
---
>    #separator =
276c276
<    prefix =
---
>    #prefix =
284c284
<    inbox = yes
---
>    #inbox = no
300,301c300,301
<    subscriptions = yes
< }
---
>    #subscriptions = yes
> #}
304,305c304,305
< namespace shared {
<    separator = /
---
> #namespace shared {
>    #separator = /
309c309
<    prefix = Shared/%%u/
---
>    #prefix = shared/%%u/
315d314
<    location = maildir:<% $mailboxesDir %>/%%d/%%n:INDEX=<% $mailboxesDir %>/%d/%n/Shared/%%u
318c317
<    subscriptions = no
---
>    #subscriptions = no
322,323c321
<    list = yes
< }
---
> #}
607c605
< % my @imapPlugins = qw(quota imap_quota autocreate acl imap_acl);
---
> % my @imapPlugins = qw(quota imap_quota autocreate);
1261d1258
<   acl = vfile
1266d1262
<   acl_shared_dict = file:<% $mailboxesDir %>/%d/shared-mailboxes.db

Title: Re: Quick Howto: SOGo
Post by: smithkevinc on October 08, 2010, 07:44:32 pm
For those interested. I have email folder sharing partially working. I was correct in that SOGo is writing the ACL information using {username}, but Dovecot wants to see {username@doman}. So far I don't have a fix. I tried changing IDFieldName = uid; UIDFieldName = uid; to IDFieldName = mail; UIDFieldName = mail;. I had an open session when I restarted SOGo and this worked until I tried to log in again. I'm assuming SOGo tried to authenticate with LDAP using {username@domain} and that fails. You would think the if SOGoForceIMAPLoginWithEmail YES is set then ACLs would do the same, but guess not. Any ideas??
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on October 08, 2010, 08:03:27 pm
For those interested. I have email folder sharing partially working. I was correct in that SOGo is writing the ACL information using {username}, but Dovecot wants to see {username@doman}. So far I don't have a fix. I tried changing IDFieldName = uid; UIDFieldName = uid; to IDFieldName = mail; UIDFieldName = mail;. I had an open session when I restarted SOGo and this worked until I tried to log in again. I'm assuming SOGo tried to authenticate with LDAP using {username@domain} and that fails. You would think the if SOGoForceIMAPLoginWithEmail YES is set then ACLs would do the same, but guess not. Any ideas??

This may have done the trick, but your SOGo users lose calendar info.
IDFieldName = mail; UIDFieldName = mail; bindFields = uid;

After some testing I'll post my conclusions.

Update: This works. I'll post my final configs in the near future.
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 11, 2010, 10:33:22 pm

This may have done the trick, but your SOGo users lose calendar info.
IDFieldName = mail; UIDFieldName = mail; bindFields = uid;

Update: This works. I'll post my final configs in the near future.


Hi smithkevinc, yes I just tried your set-up. Works fine! Thanks for the hints. I just had to delete some existing ACL files which have been still in the wrong format. Re: the calendar issue, it should be possible to edit the ids in the database (in sogo_folder_info: c_path, c_path2) so they match again the uid. So long, Björn
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on October 12, 2010, 02:39:02 am
Quote
Hi smithkevinc, yes I just tried your set-up. Works fine! Thanks for the hints. I just had to delete some existing ACL files which have been still in the wrong format. Re: the calendar issue, it should be possible to edit the ids in the database (in sogo_folder_info: c_path, c_path2) so they match again the uid. So long, Björn

Are you using Thunderbird also with your setup? I've got this (minor) issue:

I'm getting an annoying extra INBOX folder showing up under one shared folder in Thunderbird. It's only one folder and moves to the most recent folder shared and subscribed to. The default INBOX in the private namespace remains, but you can't subscribe to it and you can unsubscribe from the one appearing in the shared namespace. It's visible in Thunderbird, but not in the SOGo web interface.

It doesn't cause any mail errors, but it's annoying and the visible INBOX folder is not accessible so if you click on it you get an error. Plus the .INBOX actually gets created in the file system.

I'm guessing at this point it's a Thunderbird issue, but I'm not certain.

Are you seeing the same thing?
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 12, 2010, 09:29:31 am

I'm getting an annoying extra INBOX folder showing up under one shared folder in Thunderbird
Are you seeing the same thing?


Yep,  same for Evolution and Roundcube. Only SOGo seems to be hiding this properly. Therefore I think there might be a glitch in our dovecot set-up.  I could not figure out yet what exactly.

Björn
Title: Re: Quick Howto: SOGo
Post by: FutureTechSys on October 13, 2010, 02:49:06 am
Anybody got this running on 2.0+?

I've now broken Zarafa and anything relating to apache with this procedure :)
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 13, 2010, 03:47:20 pm
Anybody got this running on 2.0+?

Yes! That is what we are talking about. Should be no problem, actually.

I've now broken Zarafa and anything relating to apache with this procedure :)

Looking in my crystal ball I assume your apache does not start up.

Please be a bit more specific ;-). What is the output of /etc/init.d/apache2 restart? What do your apache logs say? Did you enable the modules needed (i.e., proxy)?

Björn
Title: Re: Quick Howto: SOGo
Post by: FutureTechSys on October 13, 2010, 04:33:04 pm
From apache error.log

[Tue Oct 12 21:56:52 2010] [warn] proxy: No protocol handler was valid for the URL /SOGo. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

apache restart:

* Restarting web server apache2                                                                                                                           (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                                                                                                                    [fail]

I also have no idea if email is being received since I have no way to login and look :)

I did in fact enable proxy and proxy http and one other one to do with proxy (forgot which)

I spent hours googling yesterday... Fixed some problems, others came up


PS, I can still access /webaccess from Zarafa, and send and receive email.  Also, I get a 500 HTTP error "Internal Error" when trying to access /SOGo
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 13, 2010, 05:53:18 pm
1.) protocol handler: sth. is wrong with your apache config, most likely the proxy module setup (really!). 

Please try 'a2enmod proxy_http' again.

2.) no listening sockets: another application or an old apache instance, maybe another apache vhost (but that could cause another error message, I am not sure) is listening on port 80

'fuser -uv 80/tcp' should show you more about what is happening on port 80.

If Zarafa still works, something is messed up with your vhosts, possibly.

3.) Internal Error: cf. 1.) apache does not proxy successfully to sogod, so apache raises this error.

Björn
Title: Re: Quick Howto: SOGo
Post by: FutureTechSys on October 14, 2010, 02:52:51 am
1.)
Considering dependency proxy for proxy_http:
Module proxy already enabled
Module proxy_http already enabled

2.)
 USER        PID ACCESS COMMAND
80/tcp:              root       3583 F.... (root)apache2
                     www-data   3676 F.... (www-data)apache2
                     www-data   3678 F.... (www-data)apache2
                     www-data   5309 F.... (www-data)apache2
                     www-data   5312 F.... (www-data)apache2
                     www-data   5313 F.... (www-data)apache2
                     www-data   5314 F.... (www-data)apache2
                     www-data   5315 F.... (www-data)apache2
                     www-data   5316 F.... (www-data)apache2
                     www-data   5317 F.... (www-data)apache2
                     www-data   5812 F.... (www-data)apache2
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 14, 2010, 11:13:05 am
2.)
 USER        PID ACCESS COMMAND
80/tcp: apache2

If an apache restart fails, and there is still an apache instance running on port 80, something is wrong with your apache configuration or you still have a zombie process, I think. Did you kill the old processes or did you restart your server since the changes? As this has nothing to do with SOGo itself, maybe start a new thread. Maybe the proxy issue is resolved once you tackled this.

Björn
Title: Re: Quick Howto: SOGo
Post by: satyris on October 21, 2010, 02:05:53 pm
When i use this command:

Code: [Select]
sogo@xxx:~/GNUstep/Defaults$ defaults write sogod
i only get:

Quote
defaults: no dictionary or key for write!

When i use this command:

Code: [Select]
defaults write sogod GNUstepDefaults.txt
i only get:

Quote
defaults write: domain is not a dictionary!


So how can i use my template???
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 21, 2010, 06:00:11 pm
Hi satyris,

# defaults write sogod KEY VALUE

This is why the error message is: no dictionary or KEY for write! :-P.

Please have a look at [1].

So long,

Björn

[1] http://www.sogo.nu/files/docs/SOGo%20Installation%20Guide.pdf
Title: Re: Quick Howto: SOGo
Post by: satyris on October 21, 2010, 06:57:44 pm
Hi Björn,

i understand the failure message, but not how you will use your posted template with "defaults write sogod" ?!

My changed template is in GNUstepDefaults.txt, but how to get it in a xml version?

Title: Re: Quick Howto: SOGo
Post by: binary-two on October 22, 2010, 07:58:33 pm
Hi, everything should be in

 /home/sogo/GNUstep/Defaults/.GNUstepDefaults

If you paste and adjust the bracket-style configuration file, and use the defaults command (e.g., su - sogo; defaults write sogod SOGoTimeZone "America/Montreal"), it gets converted automagically in the xml format. But it still works with the bracket-style configuration as well.

Björn
Title: Re: Quick Howto: SOGo
Post by: satyris on October 23, 2010, 09:14:01 am
Hello Björn

Quote
defaults write sogod SOGoTimeZone "America/Montreal"

results in:

Quote
2010-10-23 09:00:11.096 defaults[10620] File NSDictionary.m: 628. In -[NSDictionary initWithContentsOfFile:] Contents of file '/home/sogo/GNUstep/Defaults/.GNUstepDefaults' does not contain a dictionary
2010-10-23 09:00:11.180 defaults[10620] File NSDictionary.m: 628. In -[NSDictionary initWithContentsOfFile:] Contents of file '/home/sogo/GNUstep/Defaults/.GNUstepDefaults' does not contain a dictionary

Only the string SOGoTimeZone "America/Montreal" is included now.

When i try it with the bracket-style configuration file:

Code: [Select]
/etc/init.d/sogo restart
 * Restarting SOGo sogo  
2010-10-23 09:08:24.471 sogod[10866] File NSDictionary.m: 628. In -[NSDictionary initWithContentsOfFile:] Contents of file '/home/sogo/GNUstep/Defaults/.GNUstepDefaults' does not contain a dictionary
<0x0x27398b0[SOGoStartupLogger]> No configuration found. SOGo will not work properly.



Title: Re: Quick Howto: SOGo
Post by: binary-two on October 24, 2010, 10:43:10 am
Hello satyris,

Just to be sure that we are talking about the same things:

You copied and adjusted the bracket-style example configuration from this thread (or from the sogo manual; same same ...) into

/home/sogo/GNUstep/Defaults/.GNUstepDefaults

This is the file used by the SOGo daemon by default. It should be owned by the sogo user. The first time you use the defaults command on that file, the file should get automagically converted to the new xml format.

Alternatively you can build up the file using the defaults write command (very important: as user sogo), as described in the SOGo manual straight away. I just find it easier to adjust all the ldap and database details in a text file.

SOGo should be ready to go now. Could you please confirm that you followed these steps, please. And if so, and SOGo is still not running, could you please post (or attach) your .GNUstepDefaults-file, please.

Björn

Title: Re: Quick Howto: SOGo
Post by: chrischnian on October 25, 2010, 07:46:01 am
Hello

on my zentyal the sieve port is the port 4190.
Sogo will the Port 2000 for Sieve.

I take the Firewall port replication for port 2000 is look the port 4190.
The time for the save the Preferences is 3 min or longer and the the settings have no effect.

Here the log for an save:

Quote
-mailserver:~# tail -f /var/log/sogo/sogo.log
127.0.0.1 - - [25/Oct/2010:07:28:43 GMT] "GET /SOGo/christian.saeum HTTP/1.1" 30                                                                             2 0/0 0.004 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:43 GMT] "GET /SOGo/christian.saeum/view HTTP/1.                                                                             1" 302 0/0 0.013 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:43 GMT] "GET /SOGo/so/christian.saeum/Mail HTTP                                                                             /1.1" 302 0/0 0.005 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:43 GMT] "GET /SOGo/so/christian.saeum/Mail/view                                                                              HTTP/1.1" 200 8535/0 0.080 28915 70% 0
127.0.0.1 - - [25/Oct/2010:07:28:44 GMT] "POST /SOGo/so/christian.saeum/Calendar                                                                             /alarmslist?browserTime=1287984524 HTTP/1.1" 200 2/0 0.017 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:44 GMT] "POST /SOGo/so/christian.saeum/Mail/0/m                                                                             ailboxes HTTP/1.1" 200 339/0 0.061 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:44 GMT] "POST /SOGo/so/christian.saeum/Mail//0/                                                                             folderINBOX/uids HTTP/1.1" 200 155/28 0.028 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:44 GMT] "POST /SOGo/so/christian.saeum/Mail//0/                                                                             folderINBOX/unseenCount HTTP/1.1" 200 13/0 0.057 - - 0
127.0.0.1 - - [25/Oct/2010:07:28:45 GMT] "POST /SOGo/so/christian.saeum/Mail/fol                                                                             dersState HTTP/1.1" 200 24/0 0.015 - - 0
127.0.0.1 - - [25/Oct/2010:07:30:08 GMT] "GET /SOGo/so/christian.saeum/preferenc                                                                             es HTTP/1.1" 200 13872/0 0.043 55736 75% 28K
<0x02B7E360[SOGoMailAccount]:0> failure. Attempting with a renewed password.
<0x02B7E360[SOGoMailAccount]:0> Could not login 'christian.saeum@example.com' (PW) on Sieve server: <0x0x2c29ad0[NGSieveClient]: socket=<NGActiveSocket[0x0x2c25d30]: mode=<closed> address=<0x0x2b5b0d0[NGInternetSocketAddress]: host=localhost port=37538>>>: {RawResponse = "{}"; result = NO; }
127.0.0.1 - - [25/Oct/2010:07:34:39 GMT] "POST /SOGo/so/christian.saeum/preferences HTTP/1.1" 200 293/1817 264.043 - - 32K
127.0.0.1 - - [25/Oct/2010:07:34:40 GMT] "POST /SOGo/so/christian.saeum/Mail//0/folderINBOX/uids HTTP/1.1" 200 155/28 0.328 - - 0
127.0.0.1 - - [25/Oct/2010:07:34:40 GMT] "POST /SOGo/so/christian.saeum/Mail//0/folderINBOX/unseenCount HTTP/1.1" 200 13/0 0.059 - - 0
127.0.0.1 - - [25/Oct/2010:07:34:40 GMT] "POST /SOGo/so/christian.saeum/Mail//0/folderINBOX/unseenCount HTTP/1.1" 200 13/0 0.052 - - 0
<0x0x2583b80[WOWatchDog]> Terminating with signal 15
<0x0x25a40f0[WOWatchDogChild]> sending terminate signal to pid 26902
<0x0x25a40f0[WOWatchDogChild]> child 26902 exited
<0x0x2583b80[WOWatchDog]> all children exited. We now terminate.
Title: Re: Quick Howto: SOGo
Post by: satyris on October 25, 2010, 10:58:06 am
Hi Björn,
sorry for being a little "slow"

Here is what i did:

sogo@xxx:~/GNUstep/Defaults$ cat GNUstepDefaults.txt
Code: [Select]

{
    NSGlobalDomain = {
    };
    sogod = {
        WOApplicationRedirectURL = "https://xxx/SOGo/";
        #OCSFolderInfoURL = "mysql://{$sogouser}:{$sogopassword}@localhost:3306/{$sogodb}/sogo_folder_info";
        SOGoProfileURL = "postgresql://sogo:sogo@localhost:5432/sogo/sogo_user_profile"
        OCSFolderInfoURL = "postgresql://sogo:sogo@localhost:5432/sogo/sogo_folder_info"
        
      SOGoACLsSendEMailNotifications = YES;
        SOGoAppointmentSendEMailNotifications = YES;
        SOGoAuthenticationMethod = LDAP;
        SOGoDraftsFolderName = Drafts;
        SOGoFirstDayOfWeek = 1;
        SOGoFoldersSendEMailNotifications = YES;
        SOGoForceIMAPLoginWithEmail = YES;
        SOGoForwardEnabled = YES;
        SOGoIMAPServer = localhost;
        SOGoLanguage = German;
        SOGoMailDomain = mail.fritz.box;
        SOGoMailingMechanism = sendmail;
        SOGoOtherUsersFolderName = "Other Users";
        #SOGoProfileURL = "mysql://{$sogouser}:{$sogopassword}@localhost:3306/{$sogodb}/sogo_user_profile";
        SOGoSMTPServer = localhost;
        SOGoSentFolderName = Sent;
        SOGoSharedFolderName = "Shared Folders";
        SOGoSuperUsernames = (sogo      
        );
        SOGoTimeZone = Europe/Berlin;
        SOGoTrashFolderName = Trash;
        SOGoUserSources = (
            {
                CNFieldName = cn;
                IDFieldName = uid;
                UIDFieldName = uid;
                baseDN = "ou=Users,dc=ebox";
                bindDN = "cn=ebox,dc=ebox";
                bindPassword = xxxx;
                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";
    };
}

Thats my template. Now i use /etc/init.d/sogo restart
Quote
* Restarting SOGo sogo                                                                                                                                                            2010-10-25 10:53:15.359 sogod[9585] File NSDictionary.m: 628. In -[NSDictionary initWithContentsOfFile:] Contents of file '/home/sogo/GNUstep/Defaults/.GNUstepDefaults' does not contain a dictionary
<0x0x249e790[SOGoStartupLogger]> No configuration found. SOGo will not work properly.

After that, i get a .GNUstepDefaults file with the following content:

sogo@xxx:~/GNUstep/Defaults$ cat .GNUstepDefaults

Code: [Select]
<?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>
</dict>
</plist>
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 25, 2010, 01:04:41 pm
Hi satyris,

Looks all right. Paste your GNUstepDefaults.txt in your .GNUstepDefaults and it should run perfectly fine. I am still not sure why you have a GNUstepDefaults.txt. There should be only the  .GNUstepDefaults file, only the .GNUstepDefaults file is read by sogod by default! GNUstepDefaults.txt will never be used by default.

Hello chrischnian,

I do not understand your question. If you want to file a bug, please use the sogo mailing list. I am just a convinced SOGo user, I am not a developer.

So long,

Björn

Title: Re: Quick Howto: SOGo
Post by: satyris on October 25, 2010, 06:20:15 pm
Hi Björn,

my GNUstepDefaults.txt was just for testing.
First i copied your template in that file and then changed the values for my needings.

Last step was cp GNUstepDefaults.txt to .GNUstepDefaults.

As far as i understand it should work. Mhm, so thats not very nice.

Can you do me a big favour?
Can you convert my .GNUstepDefaults to xml format, please?
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 25, 2010, 11:31:56 pm
I added the xml example to the description, so it does not get lost in the depth of this thread. It is a bit more complex, though.

Note: the bracket style configuration gets automatically converted into xml after using defaults write, and both styles work anyway so you can use the bracket style as well.

Björn
Title: Re: Quick Howto: SOGo
Post by: satyris on October 27, 2010, 10:41:37 am
Hi Björn,
i have managed the problem with .GNUstepDefaults

After that, there were problems with apache2 (a2enmod proxy, a2enmod headers)

a few warnings:

/etc/init.d/apache2 restart

Quote
* Restarting web server apache2                                                                                                                                                   [Wed Oct 27 10:37:39 2010] [warn] The Alias directive in /etc/apache2/conf.d/SOGo.conf at line 3 will probably never match because it overlaps an earlier Alias.
[Wed Oct 27 10:37:39 2010] [warn] The Alias directive in /etc/apache2/conf.d/SOGo.conf at line 5 will probably never match because it overlaps an earlier Alias.
 ... waiting [Wed Oct 27 10:37:40 2010] [warn] The Alias directive in /etc/apache2/conf.d/SOGo.conf at line 3 will probably never match because it overlaps an earlier Alias.
[Wed Oct 27 10:37:40 2010] [warn] The Alias directive in /etc/apache2/conf.d/SOGo.conf at line 5 will probably never match because it overlaps an earlier Alias.

but, how to access sogo now?

http://server:20000/
http://server:20000/SOGo
http://server/SOGo

all not working ???

This is the important Proxypart of my SOGo.conf

Quote
ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0

<Proxy http://127.0.0.1:20000/SOGo>
## adjust the following to your configuration
  RequestHeader set "x-webobjects-server-port" "80"
  RequestHeader set "x-webobjects-server-name" "server"
  RequestHeader set "x-webobjects-server-url" "http://server"

Title: Re: Quick Howto: SOGo
Post by: binary-two on October 28, 2010, 11:41:11 pm
                                                                                                                                             
[Wed Oct 27 10:37:39 2010] [warn] The Alias directive in /etc/apache2/conf.d/SOGo.conf at line 3 will probably never match because it overlaps an earlier Alias.

You have a logical error in your apache configuration. Most likely two sogo-related entries.


but, how to access sogo now?


This is explicitly mentioned in the manual :-P. Hint: you set up an alias and a proxy in apache. So why should you access it directly? But without getting rid of the apache error, it might not work.

Björn



Title: Re: Quick Howto: SOGo
Post by: satyris on October 29, 2010, 09:21:45 am
Hi Björn,
thanks for your help, but this peace of sh... needs to much of my spare time.
I dont have the time to read a manual completely and i could not find the needed information as you mentioned before.
Title: Re: Quick Howto: SOGo
Post by: binary-two on October 29, 2010, 10:39:45 am
but this peace of sh...

Well, swearing usually does not help. If you don't like it, leave it :-P.

I am always happy to help, but if you waste other people's time time instead of yours, it could be considered inconsiderate if not rude ;-). The SOGo manual is not that big, straight forward and very well written; it helps to understand what is happening in the background (GnuStep, Apache, etc.).

Just my 2 cents.

Björn
Title: Re: Quick Howto: SOGo
Post by: satyris on October 29, 2010, 07:19:10 pm
Quote
The SOGo manual is not that big, straight forward and very well written

Mhm, then i got the wrong one, cause mine was not very helpful. So many sides about the explanation of Parameters and a half side about apache configuration ????

Beside that, there was NO example about SOGo.conf in it.
Very well written?
I know better ones.

I stumbled from one problem to the next one, not very funny and straight forward...

Last word: sorry, that you think i wasted your time. Thought that i could bring it to a good ending and to more knowledge for everyone reading that.

Title: Re: Quick Howto: SOGo
Post by: obimichael on November 17, 2010, 10:47:24 pm
Hi!
I was trying to get SOGo working with EBox on Ubuntu 10.04 for about 1 month, but now I got it working!

The problems I found and my solutions:
Apache wasn't starting after installation of SOGo,
* I had to add some symbolic links to /etc/apache2/mods-enabled
* goto directory: cd /etc/apache2/mods-enabled
* add symbolic link: ln -s /etc/apache2/mods-available/modulename modulename
The modulnames: proxy.load, proxy.conf, proxy_ajp.load, proxy_balancer.load, proxy_connect.load, proxy_ftp.load, proxy_http.load, proxy_scgi.load, headers.load
* restart apache: /etc/init.d/apache2 restart

/etc/apache2/conf.d/SOGo.conf
Code: [Select]
Alias /SOGo.woa/WebServerResources/ \
      /usr/lib/GNUstep/SOGo/WebServerResources/
Alias /SOGo/WebServerResources/ \
      /usr/lib/GNUstep/SOGo/WebServerResources/
AliasMatch /SOGo/so/ControlPanel/Products/(.*)/Resources/(.*) \
           /usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2

<Directory /usr/lib/GNUstep/SOGo/>
    AllowOverride None
    Order deny,allow
    Allow from all
</Directory>

<LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*\.(jpg|png|gif|css|js)">
  SetHandler default-handler
</LocationMatch>

## Uncomment the following to enable proxy-side authentication, you will then
## need to set the "SOGoTrustProxyAuthentication" SOGo user default to YES and
## adjust the "x-webobjects-remote-user" proxy header in the "Proxy" section
## below.
#<Location /SOGo>
#  AuthType XXX
#  Require valid-user
#  SetEnv proxy-nokeepalive 1
#  Allow from all
#</Location>

ProxyRequests Off
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On

# When using CAS, you should uncomment this and install cas-proxy-validate.py
# in /usr/lib/cgi-bin to reduce server overloading
#
# ProxyPass /SOGo/casProxy http://localhost/cgi-bin/cas-proxy-validate.py
# <Proxy http://localhost/app/cas-proxy-validate.py>
#   Order deny,allow
#   Allow from your-cas-host-addr
# </Proxy>

ProxyPass /SOGo http://127.0.0.1:20000/SOGo retry=0

<Proxy "http://127.0.0.1:20000/SOGo">
## adjust the following to your configuration
  RequestHeader set "x-webobjects-server-port" "443"
  RequestHeader set "x-webobjects-server-name" "192.168.0.119"
  RequestHeader set "x-webobjects-server-url" "https://192.168.0.119"

## When using proxy-side autentication, you need to uncomment and
## adjust the following line:
  RequestHeader set "x-webobjects-remote-user" "%{REMOTE_USER}e"

  RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0"
  RequestHeader set "x-webobjects-remote-host" "127.0.0.1"

  AddDefaultCharset UTF-8

  Order allow,deny
  Allow from all
</Proxy>

Configuration of SOGo
* stop sogo, before config: sudo /etc/init.d/sogo stop
* change user: sudo su sogo
* add config line by line: defaults write sogod VARIABLE VALUE (Return)

Code: [Select]
defaults write sogod SOGoProfileURL  "mysql://{username}:{password}@localhost:3306/{databasename}/sogo_user_profile"
defaults write sogod SOGoTimeZone "Europe/Berlin"
defaults write sogod SOGoMailDomain "{virtual maildomain of ebox}"
defaults write sogod SOGoLanguage German
defaults write sogod SOGoAppointmentSendEmailNotifications YES
defaults write sogod SOGoFoldersSenEmailNotifications YES
defaults write sogod SOGoFoldersSendEmailNotifications YES
defaults write sogod SOGoACLsSendEMailNotifications YES
defaults write sogod SOGoDraftsFolderName Drafts
defaults write sogod SOGoSharedFolderName "Shared Folders"
defaults write sogod SOGoTrashFolderName Trash
defaults write sogod SOGoSentFolderName Sent
defaults write sogod SOGoIMAPServer localhost
defaults write sogod SOGoForceIMAPLoginWithEmail YES
defaults write sogod SOGoSuperUsernames '("{superusername}")'
defaults write sogod SOGoCalendarDefaultRoles '("PublicViewer", "ConfidentialDAndTViewer")'
defaults write sogod OCSFolderInfoURL "mysql://{username}:{password}@localhost:3306/{databasename}/sogo_folder_info"

defaults write sogod SOGoUserSources '({CNFieldName = cn;
IDFieldName = uid; UIDFieldName = uid; IMAPHostFieldName = mailHost;
baseDN = "ou=Users,dc={computername}";
bindDN = "cn=ebox,dc={computername}";
bindPassword = "{password}"; canAuthenticate = YES; displayName =
"Shared Addresses"; hostname = "localhost"; id = public;
isAddressBook = YES; port=389})'


Some additional Informations
* About LDAP Settings, take a look at Ebox > Users and Groups > LDAP Settings
* 502 Proxy Error: Something wrong with your configuration
* Service Temporarily Unavailable: Start sogo! sudo /etc/init.d/sogo start
* Do not add WOApplicationRedirectURL
* You cannot add a calender, or addressbook: Variable OCSFolderInfoURL is missing or wrong configured
* No emails or folders visible: SOGoIMAPServer correct? SOGoForceIMAPLoginWithEmail set to YES?
* IPAddress of my server: 192.168.0.119

I'm not finished testing all aspects, so I a lot of work is still missing ...

Regards from Austria
Michael
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on February 16, 2011, 04:39:26 am
I seem to have a good working setup now, except the SOGo quota indicator is missing. Thunderbird sees the quota information just fine. Did I miss something or is this an issue with how Zentryal does quotas?

Would like to know if anyone else is getting the quota indicator I guess.
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on February 23, 2011, 03:46:02 am
I seem to have a good working setup now, except the SOGo quota indicator is missing. Thunderbird sees the quota information just fine. Did I miss something or is this an issue with how Zentryal does quotas?

Would like to know if anyone else is getting the quota indicator I guess.


In dovecot.conf changing
Code: [Select]
quota = maildir:User quotato
Code: [Select]
quota = maildir
Gets me my quota indicator in SOGo, but I'm wondering if making this change will cause some ill effects. Anyone know?
Title: Re: Quick Howto: SOGo
Post by: chymian on June 01, 2011, 05:24:46 pm
hi,
first of all, thx for everybody's contribution on this howto setting up sogo on zentyal.

I've sogo 1.3.7a up und running on ubuntu 10.04.2, lucid, with zentyal 2.0.20. looks good so far.

a solution I found to not being able to edit cal-entries on thundebird
(for everybody, who runs into the same pbl.):
if I use only the connector & lightning plugins from sogo (no integrator) and configure the path's by myself, I couldn't edit the calender-entries in TB, which where created from sogo-web.
SOLUTION-> after setting some ACL's on the Cal. & AB., via the SOGo-web, this behavior went away.


I do have pbls. with the TB3 and sogo-integrator-3.105 (on debian wheezy).
when using the integrator, the dav-urls within TB for Calendar & Addressbooks are setup with email adr., instead of the plain username:
i.e. /SOGo/dav/user@domain/Calendar instead of /SOGo/dav/user/Calendar
and TB uses email-adr. to authenticate, with the effect, that no authentication works, Cal. & AB. are not accessible, since on the host, they are with usernames only.

I started on a fresh-initialized database and (IDFieldName, UIDFieldName, bindFields) = uid
which uses i.e. the superusernames = uid.

on the current setup (-> config), I also started over with a clean database and I used (IDFieldName, UIDFieldName) = mail (due to dovecot acls), but it has no effect on neither the path of the dav-urls, nor the logins. but it does have an effect on the superusernames, they have to be email then.

does anybody has an idea, how to get either the TB integrator to use plain username only, or to convince sogo to use the email in the dav-url & login's?

TIA
günter


config (xml to txt-style, with defaults read sogod)
Code: [Select]
sogod SOGoDraftsFolderName Drafts
sogod SOGoTrashFolderName Trash
sogod SOGoSieveServer sieve://localhost:4190
sogod WOParsersUseUTF8 YES
sogod SOGoOtherUsersFolderName 'Other Users'
sogod WOWorkersCount 1
sogod SOGoIMAPAclConformsToIMAPExt YES
sogod SOGoVacationEnabled YES
sogod SOGoTimeZone Europe/Berlin
sogod WOMessageUseUTF8 YES
sogod SOGoSieveScriptsEnabled YES
sogod SOGoSentFolderName Sent
sogod SOGoMailingMechanism sendmail
sogod SOGoForceIMAPLoginWithEmail yes
sogod SOGoSMTPServer smtp://localhost:25
sogod OCSSessionsFolderURL postgresql://sogo:<password>@localhost:5432/sogo/public/sogo_sessions_folder
sogod SOGoSharedFolderName 'Shared Folders'
sogod SOGoIMAPServer imap://localhost:143
sogod SOGoMailAuxiliaryUserAccountsEnabled yes
sogod WOSendMail /usr/sbin/sendmail
sogod SOGoACLsSendEMailNotifications YES
sogod SOGoProfileURL postgresql://sogo:<password>@localhost:5432/sogo/public/sogo_user_profile
sogod OCSEMailAlarmsFolderURL postgresql://sogo:<password>@localhost:5432/sogo/public/sogo_alarm_folder
sogod SOGoEnableEMailAlarms YES
sogod SOGoFoldersSendEMailNotifications YES
sogod SOGoSuperUsernames '(
    user@example.org
)'
sogod SOGoMemcachedHost localhost
sogod WOPort 20000
sogod domains '{
    sogo.local = {
        SOGoMailDomain = example.org;
        SOGoUserSources = (
            {
                CNFieldName = cn;
                IDFieldName = mail;
                IMAPLoginFieldName = mail;
                MailFieldNames = (
                    mail
                );
                SOGoLDAPContactInfoAttribute = uid;
                UIDFieldName = mail;
                baseDN = "ou=Users,dc=<hostname>,dc=example,dc=org";
                bindDN = "cn=ebox,dc=<hostname>,dc=example,dc=org";
                bindFields = (
                    uid
                    mail
                );
                bindPassword = <password>;
                canAuthenticate = YES;
                displayName = "Users Addresses";
                filter = "(objectClass=inetOrgPerson)";
                hostname = 127.0.0.1;
                id = users;
                isAddressBook = YES;
                port = 389;
                type = ldap;
            }
        );
    };
}'
sogod SOGoCacheCleanupInterval 300
sogod SOGoLanguage German
sogod OCSFolderInfoURL postgresql://sogo:<password>@localhost:5432/sogo/public/sogo_folder_info
sogod SOGoForwardEnabled YES
sogod SOGoFirstDayOfWeek 1
sogod SOGoAppointmentSendEMailNotifications YES
   

CONFIG MODIFIED
according to smithkevinc next post
Title: Re: Quick Howto: SOGo
Post by: smithkevinc on June 15, 2011, 08:36:13 pm
bindFields = (uid, mail)

Setting above worked for me. Dav urls use email address. You can still log into the web interface with just username as
well as email address. I think, "untested", if you drop uid it will force email for web logins as well.
Title: Re: Quick Howto: SOGo
Post by: chymian on June 16, 2011, 01:41:24 pm
bindFields = (uid, mail)

Setting above worked for me. Dav urls use email address. You can still log into the web interface with just username as
well as email address. I think, "untested", if you drop uid it will force email for web logins as well.

thx a lot, worked for me too, after restarting with a fresh database.
I corrected the config above - for easy copy & paste

cheers
günter
Title: Re: Quick Howto: SOGo
Post by: nontrivial on July 05, 2012, 03:50:57 pm
With the help of this post I have this working as well, more or less. Since postgresql is already installed fro Zentyal, I am using that instead of MySQL. The only issue I have now is the ACL thing. How exactly does one start with a clean database?

James
Title: Re: Quick Howto: SOGo
Post by: chymian on July 06, 2012, 12:44:03 pm
a clean database is like a new created one. it does not have any tables & data in it - a prisitine one.
you can drop your sogo database with the command dropdb an create a new, fresh one.
these are the postgres-cmd's  which I use to create user & db:

Code: [Select]
su – postgres
dropdb sogo

createuser --no-superuser --no-createdb –-no-createrole –-encrypted --pwprompt sogo
(specify a password for sogo)
createdb -O sogo sogo

Title: Re: Quick Howto: SOGo
Post by: nontrivial on July 06, 2012, 08:22:57 pm
OK, thanks, I didn't realize that sogo would just recreate it's database if it needed to.

James
Title: Re: Quick Howto: SOGo
Post by: chymian on July 06, 2012, 09:39:46 pm
OK, thanks, I didn't realize that sogo would just recreate it's database if it needed to.


it doesn't. you have to create the database! see "createdb cmd" in my last post.
it create's it's tables within the database.
have a nice one
günter
Title: Re: Quick Howto: SOGo
Post by: Laurent Dinclaux on March 19, 2014, 07:32:24 am
[removed - wrong thread]
Title: Re: Quick Howto: SOGo
Post by: CPUdon on April 06, 2014, 06:52:57 am
Great  :)