Archiv/SOGo

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Aktuelle Versionen setzen zwingend ein 64-bit-System voraus.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

Inhaltsverzeichnis
  1. Voraussetzungen
  2. Installation
    1. Fremdquelle
  3. Konfiguration
    1. MySQL
    2. Apache
    3. Nginx
    4. SOGo
  4. Verwendung
  5. Administration
    1. Datensicherung
  6. Alternativen
  7. Links

SOGologo.png Scalable OpenGroupware.org 🇬🇧 (SOGo) ist eine Groupware-Lösung unter GPL-Lizenz. Sie ermöglicht Benutzern den komfortablen, gemeinsamen Umgang mit E-Mail, Adressbüchern und Kalendern. Die Groupware setzt ausschließlich auf gut dokumentierte und offene Schnittstellen. Von zentraler Bedeutung ist der CalDAV-Support (CalDAV, CardDAV und GroupDAV).

Die Weboberfläche mit AJAX-Unterstützung erlaubt eine Nutzung unabhängig von Betriebssystemen oder Programmen. Eine Online-Tour 🇬🇧 und eine Online-Demo 🇬🇧 vermitteln einen ersten Eindruck des System.

Thunderbird kann mit entsprechenden Erweiterungen 🇬🇧 als Frontend genutzt werden. Mobile Endgeräte (iPhone, iPad usw.) werden direkt per CalDAV angebunden.

Ab SOGo 2.0 ist die native Anbindung von Outlook via OpenChange 🇬🇧 enthalten. Für Outlook 2003, 2007 oder 2010 verhält sich SOGo damit wie ein echter Exchange-Server, ohne dass zusätzliche Outlook-Plugins installiert werden müssen (Demo-Video - SOGo and Outlook 🇬🇧).

Voraussetzungen

SOGo greift auf mehrere Komponenten zurück, deren Installation und Konfiguration (zumindest die Basis-Einstellungen) bereits vorab erledigt werden sollte:

Installation

Wiki/Icons/synaptic.png SOGo ist nicht in den offiziellen Paketquellen enthalten. Die Entwickler stellen aber eine Fremdquelle zur Verfügung. Alternativ steht mit ZEG 🇬🇧 eine vorkonfigurierte virtuelle Maschine basierend auf Ubuntu 14.04 zur Verfügung (siehe auch Virtualisierung).

Fremdquelle

Um aus der Fremdquelle zu installieren, muss man unabhängig von der Ubuntu-Version die folgende Paketquelle freischalten.

Achtung!

Zusätzliche Fremdquellen können das System gefährden.

Dazu die folgende Zeile manuell in die Datei /etc/apt/sources.list eintragen:

deb http://inverse.ca/ubuntu VERSION VERSION

Für VERSION verwendet man den Codenamen der jeweiligen Ubuntu-Version. Beispiel für Ubuntu 12.04:

deb http://inverse.ca/ubuntu precise precise

Um die Fremdquelle zu authentifizieren, kann man den Signierungsschlüssel mit folgendem Befehl importieren:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0x810273C4  

Nach dem Aktualisieren der Paketquellen kann SOGo über das folgende Paket installiert [1] werden:

Paketliste zum Kopieren:

sudo apt-get install sogo 

Oder mit apturl die Pakete installieren. Link: apt://sogo

Konfiguration

Wiki/Icons/settings.png Da die Konfiguration von SOGo sehr komplex sein kann, wird nachfolgend ein einfacher Weg beschrieben, um schnell zu ersten Ergebnissen zu gelangen. Als Datenbank wird MySQL (auf dem gleichen Rechner!) verwendet und auf die Einrichtung von Funambol verzichtet. Voraussetzung ist allerdings ein funktionierender Mailserver sowie ein vorhandenes LDAP-Verzeichnis!

MySQL

Über die folgenden Befehle werden sowohl eine Datenbank als auch ein Datenbankbenutzer sogo eingerichtet. Der Benutzer erhält vollen Zugriff auf die Datenbank:

mysql -u root -p

mysql> CREATE DATABASE `sogo`;
mysql> CREATE USER 'sogo'@'localhost' IDENTIFIED BY 'sogo_passwd';
mysql> GRANT ALL PRIVILEGES ON `sogo`.* TO 'sogo'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit 

Apache

Für den Webserver Apache wird die Datei /etc/apache2/conf.d/SOGo.conf mit folgendem Inhalt benötigt:

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>

ProxyRequests Off
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On

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

<Proxy http://127.0.0.1:20000/SOGo>
  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>

Anschließend werden die Module proxy, headers und rewrite aktiviert und der Webserver neu gestartet:

sudo a2enmod proxy proxy_http headers rewrite
sudo service apache2 restart 

Nginx

Für den Webserver Nginx wird die Datei /etc/nginx/sites-available/sogo mit folgendem Inhalt benötigt (der Hostname ist sinnvoll anzupassen):

server {

	listen 80 default;
	server_name HOSTNAME;
	## redirect http to https ##
	rewrite ^ https://$server_name$request_uri? permanent; 
}

server {

	listen 443;
	server_name HOSTNAME; 
	root /usr/lib/GNUstep/SOGo/WebServerResources/; 
	ssl on;
	ssl_certificate /etc/nginx/sslcerts/mycertificate.crt;
	ssl_certificate_key /etc/nginx/sslcerts/mykey.key;

location = /
	{
	rewrite ^ https://$server_name/SOGo; 
	allow all; 
	}

# For IOS 7
location = /principals/
	{
	rewrite ^ https://$server_name/SOGo/dav; 
	allow all; 
	}

location ^~/SOGo {
	proxy_pass http://127.0.0.1:20000; 
	proxy_redirect http://127.0.0.1:20000 default; 
	# forward user's IP address 
	proxy_set_header X-Real-IP $remote_addr; 
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
	proxy_set_header Host $host; 
	proxy_set_header x-webobjects-server-protocol HTTP/1.0; 
	proxy_set_header x-webobjects-remote-host 127.0.0.1; 
	proxy_set_header x-webobjects-server-name $server_name; 
	proxy_set_header x-webobjects-server-url $scheme://$host; 
	proxy_connect_timeout 90;
	proxy_send_timeout 90;
	proxy_read_timeout 90;
	proxy_buffer_size 4k;
	proxy_buffers 4 32k;
	proxy_busy_buffers_size 64k;
	proxy_temp_file_write_size 64k;
	client_max_body_size 50m;
	client_body_buffer_size 128k;
	break;
	}

location /SOGo.woa/WebServerResources/ {
	alias /usr/lib/GNUstep/SOGo/WebServerResources/;
	allow all;
	}

location /SOGo/WebServerResources/ {
	alias /usr/lib/GNUstep/SOGo/WebServerResources/; 
	allow all; 
	}

location ^/SOGo/so/ControlPanel/Products/([^/]*)/Resources/(.*)$ {
	alias /usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2; 
	}

location ^/SOGo/so/ControlPanel/Products/[^/]*UI/Resources/.*\.(jpg|png|gif|css|js)$ 
	{
	alias /usr/lib/GNUstep/SOGo/$1.SOGo/Resources/$2; 
	}
}

Anschließend wird die Datei verfügbar gemacht:

ln -s /etc/nginx/sites-available/sogo /etc/nginx/sites-enabled/sogo 

und nginx neu gestartet:

sudo /etc/init.d/nginx restart 

SOGo

Im folgenden Beispiel erfolgt die Konfiguration über das Skript sogo.script. Einige Voreinstellungen wie Zeitzone und Sprache sind bereits angepasst, eigene Angaben zu LDAP und Domain müssen noch ergänzt bzw. korrigiert werden. Zur Erstellung des Skripts wechselt man zuerst den Benutzer:

sudo su - -s /bin/bash sogo 

und bearbeitet die Einstellungen den eigenen Bedürfnissen entsprechend. Alle erforderlichen Parameter sind im SOGo - Installation and Configuration Guide 🇬🇧 ⮷ (PDF), Kapitel "General Preferences" erläutert.

defaults write sogod SOGoTimeZone "Europe/Berlin"
defaults write sogod SOGoMailDomain "example.com"
defaults write sogod SOGoLanguage German
defaults write sogod SOGoAppointmentSendEMailNotifications YES
defaults write sogod SOGoFoldersSendEMailNotifications YES
defaults write sogod SOGoACLsSendEMailNotifications YES
defaults write sogod SOGoCalendarDefaultRoles '("PublicViewer","ConfidentialDAndTViewer")'


defaults write sogod SOGoUserSources '({CNFieldName = cn;IDFieldName = uid;UIDFieldName = uid;baseDN = "ou=people,dc=example,dc=com";bindDN = "cn=mgr,dc=example,dc=com";bindPassword = secret;canAuthenticate = YES;displayName = "Shared Addresses"; hostname = "127.0.0.1";id = public; isAddressBook = YES;port=389;})'

defaults write sogod SOGoMailingMechanism smtp
defaults write sogod SOGoSMTPServer mail.example.com
defaults write sogod SOGoIMAPServer mail.example.com
defaults write sogod SOGoMemcachedHost 127.0.0.1
defaults write sogod SOGoEnableEMailAlarms YES
defaults write sogod OCSFolderInfoURL "mysql://sogo:sogopasswd@localhost:3306/sogo/sogo_folder_info"
defaults write sogod SOGoProfileURL "mysql://sogo:sogopasswd@localhost:3306/sogo/sogo_user_profile"
defaults write sogod OCSEMailAlarmsFolderURL "mysql://sogo:sogopasswd@localhost:3306/sogo/sogo_alarms_folder"
defaults write sogod OCSSessionsFolderURL "mysql://sogo:sogopasswd@localhost:3306/sogo/sogo_sessions_folder"

Dann werden die Rechte angepasst und das Skript ausgeführt:

chmod +x sogo.script
./sogo.script
exit 

Mit dem abschließenden exit kehrt man zum vorherigen Benutzer zurück. Last, not least sollte man noch einen systemweiten Cron-Job (mit Root-Rechten) einrichten, um E-Mail-basierte Erinnerungs- und Weckfunktionen zu aktivieren:

* *     * * *   sogo    /usr/sbin/sogo-ealarms-notify

Verwendung

./sogo_webaccess.jpg
SOGo Weboberfläche

Der Zugriff auf SOGo erfolgt wahlweise über

Administration

Der Dienst selbst wird über folgenden Befehl gesteuert:

sudo service sogo [start|stop] 

Datensicherung

Mit sogo-tool steht ein Werkzeug für die Kommandozeile zur Verfügung, das die Administration erleichtert. Nachfolgend nur einige Beispiele, der volle Funktionsumfang ist in der Dokumentation beschrieben.

Alle Postfächer sichern:

sudo -u sogo sogo-tool backup ausgabe-ordner ALL 

Der angegebene Ordner wird automatisch erzeugt. Soll nur das Postfach eines einzelnen Benutzers gesichert werden:

sudo -u sogo sogo-tool backup ausgabe-ordner benutzer 

Um ein Postfach wiederherzustellen, verwendet man zuerst:

sudo -u sogo sogo-tool restore -l ausgabe-ordner benutzer 

Damit erfährt man die folderid und weitere Informationen. Mit:

sudo -u sogo sogo-tool restore -f folderid ausgabe-ordner benutzer 

wird dann ein Benutzer-Postfach - nicht-destruktiv! - wiederhergestellt. Alle Postfächer werden mit:

sudo -u sogo sogo-tool restore -f ALL ausgabe-ordner 

wiederhergestellt. Mit der Option -F statt -f gehen alle vorhandenen Daten verloren! - es wird nur exakt die letzte Sicherung eingespielt. Nicht vergessen sollte man den Befehl:

sudo -u sogo sogo-tool restore -p ausgabe-ordner benutzer 

Dieser sichert die individuellen Benutzereinstellungen zurück.

Alternativen