===== Allgemein =====
Roundcube ist ein fortschrittlicher Webmailer. Er ist im Prinzip ein IMAP-Mailclient der im Browser läuft.
**Wichtig:** Diese Anleitung ist ein Teil von [[Mailserver einrichten]] und setzt voraus, dass bereits ein [[Mailserver auf OpenSMTPd]] und [[Dovecot2]] installiert und konfiguriert wurden! Soll **roundcube** zur Verwaltung von //Sieve-Regeln// verwendet werden muss ebenfalls [[Sieve in Dovecot aktivieren]] durchgeführt worden sein.
Die Folgende Anleitung setzt auf //SQLite3// als Datenbankbackend um kein extra Datenbankmanager laufen zu lassen. In der Standardkonfiguration setzt //roundcube// auf //MySQL// als Datenbankbackend.
===== Webserver installieren =====
Da //Roundcube// ein Webclient ist benötigt man um ihn zu betreiben natürlich zunächst einen Webserver. Im Weiteren wird die Installation zusammen mit dem Webserver //nginx// angenommen.
Die Installation des //nginx// Webservers wird im Artikel [[Webserver nginx installieren]] beschrieben. Des weiteren muss [[php mit fastcgi installieren | php mit FastCGI]] installiert und [[nginx um FastCGI erweitern | nginx um FastCGI erweitert]] werden.
===== Installation =====
Zur Installation wird der Port //mail/roundcube// installiert und als Option **SQLite** für das Datenbankbackend gewählt.
+(*) SQLITE Use SQLite backend
Alle anderen Ports können mit Standardeinstellungen installiert werden.
==== Weitere Pakete installieren ====
Zusätzlich werden noch die folgenden optionalen Pakete installiert.
* sysutils/php5-fileinfo
* security/php5-openssl
* security/php5-mcrypt
* graphics/php5-exif
Roundcube wurde nun unter ///usr/local/www/roundcube// installiert. Nun werden noch die Dateirechte angepasst:
# chown -R www:www /usr/local/www/roundcube/*
===== nginx konfigurieren =====
Da der E-Mailzugang etwas recht persönliches ist sollte auch der Zugang zu //Roundcube// ausschliesslich verschlüsselt erfolgen. Demnach wird zunächst ein OpenSSL-Zertifikat angelegt wie in [[OpenSSL Zertifikat erstellen]] beschrieben. Anschliessend wird der bereits installierte //nginx// so konfiguriert, dass unverschlüsselte Anfragen auf Port 80 automatisch auf HTTPS umgeleitet werden. Hierzu wird die ///usr/local/etc/nginx/nginx.conf// wie folgt angepasst.
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { # Server auf Port 80 (HTTP) leitet an https: weiter. SSL erzwingen.
listen 80;
server_name example.com; # Hier richtigen Servernamen eintragen
return 301 https://$server_name$request_uri; # enforce
}
server { # Server an Port 443 ruer SSL-verschluesselte Verbindungen
listen 443 ssl;
server_name example.com; # Hier richtigen Servernamen eintragen
# Zertifikat und Schluessel fuer die verschluesselte Verbindung
ssl_certificate /etc/opensslcerts/official-mail.crt;
ssl_certificate_key /etc/opensslcerts/official-mail.key;
root /usr/local/www/roundcube;
index index.php index.html;
# Fehlercodes umleiten
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx;
}
# kein Zugriff auf die Verzeichnisse
location ~ ^/(bin|SQL|config)/ {
deny all;
}
# keine versteckten Dateien
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# PHP-Scripte per FastCGI aufrufen
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}
}
===== Verzeichnis für die SQLite-Datenbank anlegen =====
Soll die Datenbank für //Roundcube// z.B. im Verzeichnis ///var/db/roundcube// angelegt werden muss dieses zunächst erzeugt und mit den entsprechenden Rechten versehen werden.
# mkdir -p /var/db/roundcube
# chown www:www /var/db/roundcube
===== Basiskonfiguration von Roundcube =====
Nun sollte //Roundcube// grundsätzlich von aussen erreichbar sein. Somit kann nun die grundlegende Konfiguration per Browser erfolgen. Um den Installer zu starten wird die folgende URL aufgerufen **https://example.com/installer**. Im Browser erfolgt nun die Konfiguration von //Roundcube//.
Um die Installation mittels einer SQLite-Datenbank durchzuführen müssen im Bereich //Database setup// die folgenden Felder geleert werden:
* Database server (omit for sqlite)
* Database user name (needs write permissions)(omit for sqlite)
* Database password (omit for sqlite)
In das Feld //Database name (use absolute path and filename for sqlite)// wird nun noch ein absoluter Pfad zur Datenbank eingetragen. Der Pfad sollte nicht im Roundcube-Verzeichnis liegen, Eine Empfehlung wäre ///var/db/roundcube/roundcube.db//.
Unter //IMAP settings// wird als //default_host// der IMAP-Server hinterlegt (z.B. ssl://mail.example.com). Ebenso wird der //smtp_server// unter //SMTP Settings// eingetragen (z.B. ssl://mail.example.com) und der Port unter //smtp_port// auf //465// gesetzt um ausschliesslich den verschlüsselten Zugang zu verwenden. Zusätzlich sollte //Use the current IMAP username and password for SMTP authentication// angehakt werden um nicht extra das SMTP-Kennwort speichern zu müssen.
==== Konfiguration setzen ====
Nach Abschluss des Installationsdialogs wird die fertige Konfiguration angezeigt. Diese wird komplett kopiert und in der Datei ///usr/local/www/roundcube/config/config.inc.php// gespeichert.
==== Konfiguration schützen ====
Um die Konfiguration zu schützen sollte der //installer// Ordner im Roundcube-Verzeichnis gelöscht werden.
Um die SQLite-Datenbank sollte noch mit den richtigen Zugriffsrechten versehen werden:
# chmod 640 /var/db/roundcube/roundcube.db
===== Weitere Schritte =====
Um mittels //Roundcube// in der Lage zu sein //Sieve//-Regeln zur Mailfilterung sehr einfach zu definieren kann man zum Abschluss noch [[Roundcube um managesieve-Plugin erweitern]].