SOGo
Nach den mässigen 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ällt ist Funambol (der soll noch recht speicherhungrig sein), aber vielleicht lässt sich das ganze ja auch per z-Push realisieren ?
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ür’s erste gerne machen würde). Um diese Tatsache herauszufinden, habe ich noch recht lange gebraucht… 🙂
Was definitv nach der SOGo-Installation zu machen ist:
MySQL-DB anlegen
CREATE DATABASE `sogo`; CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'passwd'; GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
Nun muss man noch die Usertabelle anlegen
CREATE TABLE sogo_auth ( c_uid varchar(255) NOT NULL, c_name varchar(255) default NULL, c_password varchar(255) default NULL, c_cn varchar(255) default NULL, mail varchar(255) default NULL, PRIMARY KEY (c_uid) );
Hier kann man auch gerade User eintragen…
INSERT INTO sogo_auth (c_uid,c_name,c_password,c_cn,mail) VALUES (‘peter’,'peter’,'passwd’,'Peter Beck’,'peter@maels.li’);
Apache installieren
Module proxy_http und headers aktivieren
und SOGo-Config auf eigene IP/URL anpassen
... ## adjust the following to your configuration RequestHeader set "x-webobjects-server-port" "443" RequestHeader set "x-webobjects-server-url" "https://yourhostname" ....
GNUStep
Nun wechselt man zum sogo-User und tätigt einige Einstellungen, unter anderem, dass man per MySQL-User arbeiten will:
su - sogo defaults write sogod SOGoAuthenticationMethod SQL; defaults write sogod SOGoUserSources '({canAuthenticate = YES;id = directory;isAddressBook = YES;type = sql;userPasswordAlgorithm = md5;viewURL = "mysql://sogo:passwd@localhost:3306/sogo/sogo_auth";})' defaults write sogod OCSFolderInfoURL "mysql://sogo:passwd@localhost:3306/sogo/sogo_folder_info" defaults write sogod SOGoProfileURL "mysql://sogo:passwd@localhost:3306/sogo/sogo_user_profile"
und die SMTP/IMAP Einstellungen
defaults write sogod SOGoMailingMechanism smtp defaults write sogod SOGoSMTPServer smtp-server-adresse defaults write sogod SOGoMemcachedHost 127.0.0.1 defaults write sogod SOGoDraftsFolderName Drafts defaults write sogod SOGoSentFolderName Sent defaults write sogod SOGoTrashFolderName Trash defaults write sogod SOGoIMAPServer localhost
Nun muss natürlich auch Dovecot darüber 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!
driver = mysql connect = host=/var/run/mysqld/mysqld.sock dbname=sogo user=sogo password=passwd # oder: connect = host=localhost dbname=sogo user=sogo password=passwd password_query = SELECT c_name, c_password FROM sogo_auth WHERE c_name = '%u' user_query = SELECT c_name FROM sogo_auth WHERE c_name = '%u'
Nachdem nun SOGo, Dovecot und Apache neugestartet wurden, kann man mal versuchen, sich im Browser anzumelden.
Fehler, die bei mir auftraten, waren unter anderem das Fehlen von memcached:
[SOGoCache]> an error occurred when caching value for key ‘peter+attributes’: "WRITE FAILURE"
Hier hatte memcached gefehlt. Nach dessen Installation war auch der Fehler weg.
Was es noch zu lösen gibt, wie das ganze hinter einem Reverse-Proxy sauber läuft, bisher wird die Seite ziemlich kaputt ins Internet geliefert, intern im LAN wird sie sauber dargestellt…
In den Postfixbuch-Users Mailinglisten sind aber auch Statements bezüglich Updates, die nicht so angenehm klingen…