1. Index
  2. Debian
  3. Desktop
  4. Heimserver
  5. Webserver

Kalender und Kontakte pflegen

SOGo ermöglicht Benutzern gemeinsamen Zugriff auf Kontakte, Kalender und Aufgaben über die Protokolle CardDAV und CalDAV. Mit dem Mailserver kommuniziert es per IMAP und SMTP. Als Nachfolger von OpenGroupware stellt es eine kostenlose und freie Alternative zu kommerziellen Produkten wie Kolab, Zarafa und Zimbra dar.

Pakete installieren

Die Groupware benötigt eine Datenbank und einen Speicher-Cache.

apt install sogo memcached

Datenbank anlegen

Kontakte und Kalender speichern wir in PostgreSQL und erzeugen dafür einen Benutzer und eine leere Datenbank.

su postgres -c "createuser --pwprompt sogo"
su postgres -c "createdb --owner sogo sogo"
exit

Daemon konfigurieren

Die zentralle Konfiguration enthält die Zugangsdaten zu allen externen Diensten, beginnt aber mit Einstellungen zur Lokalisierung.

/etc/sogo/sogo.conf
{ SOGoLanguage = Deutsch; SOGoTimeZone = Europe/Berlin; SOGoFirstDayOfWeek = 1;

SOGo braucht die Daten des Mailservers, um in der Webanwendung Nachrichten darstellen und verfassen zu können.

	SOGoMailingMechanism    = smtp;
	SOGoSMTPServer          = localhost;
	SOGoSentFolderName      = Sent;
	SOGoTrashFolderName     = Trash;
	SOGoDraftsFolderName    = Drafts;
	SOGoIMAPServer          = "imaps://localhost:143/?tls=YES";
	SOGoSieveServer         = "sieve://localhost:4190/?tls=YES";
	SOGoIMAPAclConformsToIMAPExt = YES;
	SOGoVacationEnabled     = NO;
	SOGoForwardEnabled      = NO;
	SOGoSieveScriptsEnabled = NO;
	SOGoMailMessageCheck    = manually;
	SOGoAppointmentSendEMailNotifications = YES;
	SOGoMailAuxiliaryUserAccountsEnabled = NO;

Die Zugangsdaten der Postgres-Datenbank werden in der Konfiguration hinterlegt.

	SOGoProfileURL          = "postgresql://sogo:Password@localhost:5432/sogo/sogo_user_profile";
	OCSFolderInfoURL        = "postgresql://sogo:Password@localhost:5432/sogo/sogo_folder_info";
	OCSSessionsFolderURL    = "postgresql://sogo:Password@localhost:5432/sogo/sogo_sessions_folder";
	OCSEMailAlarmsFolderURL = "postgresql://sogo:Password@localhost:5432/sogo/sogo_alarms_folder";

SOGo authentifiziert Benutzer via LDAP. Dazu benötigt es einen administrativen Zugang mit Lesezugriff für die Suche in der Benutzer-Datenbank.

	SOGoUserSources = ({
		type              = ldap;
		hostname          = localhost;
		port              = 389;
		encryption        = STARTTLS;
		baseDN            = ou=users,dc=illusioni,dc=de;
		bindDN            = cn=apache,ou=daemons,dc=illusioni,dc=de;
		bindPassword      = Password;
		CNFieldName       = cn;
		IDFieldName       = uid;
		UIDFieldName      = uid;
		canAuthenticate   = YES;
		isAddressBook     = YES;
		displayName       = "Shared Addresses";
		id                = public;
	});
}

Apache konfigurieren

SOGo enthält den Anwendungsserver SOPE, der lokal auf Port 20000 lauscht. Für einen sicheren Zugang muss man einen Webserver mit Verschlüsselung vorschalten. Statische Inhalte soll der Webserver einfach durchreichen.

/etc/sogo/apache.conf
RewriteEngine On RewriteRule ^/SOGo/(.*)$ /SOGo/$1 [E=SOGO_REMOTE_USER:%{REMOTE_USER},env=REMOTE_HOST:%{REMOTE_ADDR},PT] Alias /SOGo.woa/WebServerResources/ /usr/lib/GNUstep/SOGo/WebServerResources/ SetEnv proxy-nokeepalive 1 <Directory /usr/lib/GNUstep/SOGo/> Order deny,allow Allow from all AllowOverride None </Directory> <LocationMatch "^/SOGo/so/ControlPanel/Products/.*UI/Resources/.*\.(jpg|png|gif|css|js)"> SetHandler default-handler </LocationMatch> <Proxy http://localhost:20000/SOGo> RequestHeader set "x-webobjects-server-port" "80" RequestHeader set "x-webobjects-server-name" "mail.illusioni.de" RequestHeader set "x-webobjects-server-url" "https://mail.illusioni.de" RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0" RequestHeader set "x-webobjects-remote-user" "%{SOGO_REMOTE_USER}e" RequestHeader set "x-webobjects-remote-host" "%{REMOTE_HOST}e" env=REMOTE_HOST AddDefaultCharset UTF-8 Order allow,deny Allow from all </Proxy>

Nun muss man nur noch diese Konfiguration in den Apache Webserver laden.

Daemon neu starten

Zum Testen der Konfiguration:

plparse /etc/sogo/sogo.conf
Parsing '/etc/sogo/sogo.conf' - a dictionary
systemctl restart sogod

Literatur

  1. Debian Wiki: Groupware in Debian
  2. Inverse: Installation and Configuration Guide
  3. Integration Thunderbird as SOGo client
  4. Integrating Android devices with Sogo
  5. Integration of iOS devices (iPhone / iPad) with Sogo