Inhaltsverzeichnis

Benno MailArchiv als Docker Container einrichten

Benno MailArchiv steht auch als Docker-Image bennomailarchiv zur Verfügung.

Bitte beachten Sie auch unsere Hinweise zur rechtssicheren bzw. GoBD-konformen Mailarchivierung!

Manueller Start

docker run --name bma \
  --volume /srv/benno:/srv/benno \
  --volume /etc/benno:/etc/benno \
  --volume /etc/benno-web:/etc/benno-web \
  --volume /var/lib/benno-web:/var/lib/benno-web \
  --volume /var/cache/benno-web:/var/cache/benno-web \
  --volume /var/log/benno:/var/log/benno \
  -p 20022:22 -p 20080:80 -p 22500:22500 \
  bennomailarchiv/appliance:latest

docker-compose

Das Image kann mit Hilfe von docker-compose gestartet werden.

Hiefür wird das folgende Compose-File angelegt:

version: '3'
services:
    benno:
        image: bennomailarchiv/appliance
        ports:
            - "22080:80"
            - "22500:22500"
            - "21080:21080"
        restart: always
        volumes:
            - ${ARCHIVECONF_DIR:-/etc/benno}:/etc/benno/
            - ${ARCHIVE_DIR:-/srv/benno/archive}:/srv/benno/archive/
            - ${SYSTEM_DIR:-/srv/benno/system}:/srv/benno/system/
            - ${INBOX_DIR:-/srv/benno/inbox}:/srv/benno/inbox/
            - ${LOG_DIR:-/var/log/benno}:/var/log/benno
            - ${WEBCONF_DIR:-/etc/benno-web}:/etc/benno-web/
            - ${WEBLIB_DIR:-/var/lib/benno-web}:/var/lib/benno-web/

Benno MailArchiv kann mit Hilfe von Docker-Compose gestartet werden:

docker-compose up -d

Volume-Mapping

In der Voreinstellung bildet das Compose-File die Umgebung einer Benno MailArchiv Installation auf dem Hostsystem ab, so daß die Pfade außerhalb des Containers den Pfaden einer Standard-Installation entsprechen.

Die einzelnen Pfade können über die entsprechenden Umgebungsvariablen individuell konfiguriert werden. Die voreingstellten Pfade können mit Hilfe der Umgebungsvariablen an die lokale Umgebung angepasst werden.

Inbetriebnahme

Web-Interface

Auf dem Hostsystem sollte ein Webserver wie z.B. Apache installiert werden. Der URL-Pfad zum Web-Interface in den Container wird mit Hilfe einer Reverse-Proxy Konfiguration gemappt.

Hierfür wird die Datei /etc/apache2/conf-available/benno-docker.conf erstellt.

#
# Benno Webinterface Docker Mapping
#
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https"

ProxyPass        /benno http://127.0.0.1:22080/benno
ProxyPassReverse /benno http://127.0.0.1:22080/benno

Anschließend werden das proxy_http Modul die Konfiguration aktiviert.

a2enmod proxy_http
a2enconf benno-docker
systemctl restart apache2 

Admin-Login

Beim ersten Start des Containers wird automatsich ein Passwort für den Benutzer „admin“ generiert. Das Passwort ist in der Datei $WEBCONF_DIR/pw_admin.txt abgelegt. Diese Datei sollte anschließend gelöscht werden.

Konfigurationsdateien

Die Konfigurationsdateien

werden beim Start des Containers generiert. Hierbei werden die folgenden Einstellungen aus den entsprechenden Umgebungsvariablen gesetzt:

Konfiguration sichern

Falls eine Konfigurationsdatei manuell geändert wurde und beim Start nicht überschrieben werden soll, wird hierfür eine entsprechende .keep-Datei angelegt. Beim Start des Containers bleibt die angepasste Konfigurationsdatei dann unverändert. Die generierten Daten dann in die .keep-Datei geschrieben.

Beispiel

# touch /etc/benno-web/benno.conf.keep

Mail-Import

MILTER

Im Docker-Container ist ein MILTER Daemon gestartet. Auf dem Hostsystem ist hierfür der Port 22500 gebunden und kann direkt aus dem MTA per TCP Socket angesprochen werden.

benno-smtp

Im Container bennomailarchiv/applicance ist die SMTP Schnittstelle von benno-smtp installiert, aber nicht aktiv. Diese kann parallel in einem zusätzlichen Container per Composer gestartet werden. — Cred.: Tammo Schülke, REDLINK GmbH

services:
  benno-smtp:
    image: bennomailarchiv/appliance
    entrypoint:
      - /usr/bin/java
      - -Dlog4j.configuration=/etc/benno-smtp/bennosmtp-log4j.xml
      - -server
      - -jar
      - /opt/benno-smtp/bennosmtp.jar
      - -c
      - /etc/benno-smtp/benno-smtp.conf
    volumes:
      - ${INBOX_DIR:-/srv/benno/inbox}:/srv/benno/inbox/
    restart: always
    ports:
      - 2500:2500