{"id":407,"date":"2011-01-17T11:26:50","date_gmt":"2011-01-17T11:26:50","guid":{"rendered":"http:\/\/blog.datentraeger.li\/?p=407"},"modified":"2018-05-20T23:35:07","modified_gmt":"2018-05-20T23:35:07","slug":"sogo","status":"publish","type":"post","link":"https:\/\/blog.datentraeger.li\/?p=407","title":{"rendered":"SOGo"},"content":{"rendered":"<p>Nach den m\u00e4ssigen Erfolgen mit Scalix (es mag ja lustig sein mit Redhat oder SUSe, mit Squeeze und Fedora 14 hats mir keinen Spass gemacht) habe ich mich an SOGo gewagt. Was mir an SOGo nicht so gut gef\u00e4llt ist Funambol (der soll noch recht speicherhungrig sein), aber vielleicht l\u00e4sst sich das ganze ja auch per z-Push realisieren ?<\/p>\n<p>Eigentlich klingt es ganz gut, man kann deren Quellen in die Sources montieren und das Zeug ganz einfach installieren. Nachher wirds ein bisschen kritischer, wenns an die Konfig geht. Es gibt ja zwar Dokus, aber auf den ersten Blick ein bisschen komplex.. Die Daten werden entweder in MySQL oder PostgreSQL gespeichert. Die Benutzer verwaltet man per LDAP. Wahlweise kann man die User aber auch in die SQL Datenbank speichern (was ich aufgrund mangelnden LDAP-Knowledges f\u00fcr\u2019s erste gerne machen w\u00fcrde). Um diese Tatsache herauszufinden, habe ich noch recht lange gebraucht\u2026 \ud83d\ude42<\/p>\n<p>Was definitv nach der SOGo-Installation zu machen ist:<\/p>\n<h2>MySQL-DB anlegen<\/h2>\n<pre class=\"lang:mysql decode:true \">CREATE DATABASE `sogo`;\r\nCREATE USER 'sogo'@'localhost' IDENTIFIED BY 'passwd';\r\nGRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' WITH GRANT OPTION;\r\nFLUSH PRIVILEGES;<\/pre>\n<p>Nun muss man noch die Usertabelle anlegen<\/p>\n<pre class=\"lang:mysql decode:true \">CREATE TABLE sogo_auth (\r\nc_uid varchar(255) NOT NULL,\r\nc_name varchar(255) default NULL,\r\nc_password varchar(255) default NULL,\r\nc_cn varchar(255) default NULL,\r\nmail varchar(255) default NULL,\r\nPRIMARY KEY (c_uid)\r\n);<\/pre>\n<p>Hier kann man auch gerade User eintragen\u2026<\/p>\n<pre class=\"wrap:true lang:mysql decode:true\">INSERT INTO sogo_auth (c_uid,c_name,c_password,c_cn,mail) VALUES (\u2018peter\u2019,'peter\u2019,'passwd\u2019,'Peter Beck\u2019,'peter@maels.li\u2019);<\/pre>\n<p>Apache installieren<\/p>\n<pre class=\"lang:default decode:true \">Module proxy_http und headers aktivieren<\/pre>\n<p>und SOGo-Config auf eigene IP\/URL anpassen<\/p>\n<pre class=\"lang:apache decode:true \">...\r\n## adjust the following to your configuration\r\nRequestHeader set \"x-webobjects-server-port\" \"443\"\r\nRequestHeader set \"x-webobjects-server-url\" \"https:\/\/yourhostname\"\r\n....<\/pre>\n<h2>GNUStep<\/h2>\n<p>Nun wechselt man zum sogo-User und t\u00e4tigt einige Einstellungen, unter anderem, dass man per MySQL-User arbeiten will:<\/p>\n<pre class=\"lang:sh decode:true \">su - sogo\r\ndefaults write sogod SOGoAuthenticationMethod SQL;\r\ndefaults write sogod SOGoUserSources '({canAuthenticate = YES;id =\r\ndirectory;isAddressBook = YES;type = sql;userPasswordAlgorithm =\r\nmd5;viewURL = \"mysql:\/\/sogo:passwd@localhost:3306\/sogo\/sogo_auth\";})'\r\ndefaults write sogod OCSFolderInfoURL \"mysql:\/\/sogo:passwd@localhost:3306\/sogo\/sogo_folder_info\"\r\ndefaults write sogod SOGoProfileURL \"mysql:\/\/sogo:passwd@localhost:3306\/sogo\/sogo_user_profile\"<\/pre>\n<p>und die SMTP\/IMAP Einstellungen<\/p>\n<pre class=\"lang:sh decode:true\">defaults write sogod SOGoMailingMechanism smtp\r\ndefaults write sogod SOGoSMTPServer smtp-server-adresse\r\ndefaults write sogod SOGoMemcachedHost 127.0.0.1\r\ndefaults write sogod SOGoDraftsFolderName Drafts\r\ndefaults write sogod SOGoSentFolderName Sent\r\ndefaults write sogod SOGoTrashFolderName Trash\r\ndefaults write sogod SOGoIMAPServer localhost<\/pre>\n<p>Nun muss nat\u00fcrlich auch Dovecot dar\u00fcber informiert werden, woher er die Authentifizierung nehmen soll. Dazu passt man das Config dovecot-sql.conf an. Diese Config ist jetzt einfach mal auf die schnelle so zurecht gebogen und soll keinerlei Anleitung oder dergleichen darstellen!<\/p>\n<pre class=\"lang:sh decode:true \">driver = mysql\r\nconnect = host=\/var\/run\/mysqld\/mysqld.sock dbname=sogo user=sogo password=passwd\r\n# oder: connect = host=localhost dbname=sogo user=sogo password=passwd\r\npassword_query = SELECT c_name, c_password FROM sogo_auth WHERE c_name = '%u'\r\nuser_query = SELECT c_name FROM sogo_auth WHERE c_name = '%u'<\/pre>\n<p>Nachdem nun SOGo, Dovecot und Apache neugestartet wurden, kann man mal versuchen, sich im Browser anzumelden.<\/p>\n<p>Fehler, die bei mir auftraten, waren unter anderem das Fehlen von memcached:<\/p>\n<pre class=\"lang:sh decode:true \">[SOGoCache]&gt; an error occurred when caching value for key \u2018peter+attributes\u2019: \"WRITE FAILURE\"<\/pre>\n<p>Hier hatte memcached gefehlt. Nach dessen Installation war auch der Fehler weg.<\/p>\n<p>Was es noch zu l\u00f6sen gibt, wie das ganze hinter einem Reverse-Proxy sauber l\u00e4uft, bisher wird die Seite ziemlich kaputt ins Internet geliefert, intern im LAN wird sie sauber dargestellt\u2026<\/p>\n<p>In den Postfixbuch-Users Mailinglisten sind aber auch <a href=\"https:\/\/listi.jpberlin.de\/pipermail\/postfixbuch-users\/2011-January\/055532.html\" target=\"_blank\" rel=\"noopener\">Statements<\/a> bez\u00fcglich Updates, die nicht so angenehm klingen\u2026<\/p>\n","protected":false},"excerpt":{"rendered":"Nach den m\u00e4ssigen Erfolgen mit Scalix (es mag ja lustig sein mit Redhat oder SUSe, mit Squeeze und Fedora 14 hats mir keinen Spass gemacht) habe ich mich an SOGo gewagt. Was mir an SOGo nicht so gut gef\u00e4llt ist Funambol (der soll noch recht speicherhungrig sein), aber vielleicht l\u00e4sst&hellip;\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-407","post","type-post","status-publish","format-standard","hentry","category-groupware"],"_links":{"self":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=407"}],"version-history":[{"count":5,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/407\/revisions"}],"predecessor-version":[{"id":1667,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/407\/revisions\/1667"}],"wp:attachment":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}