Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
docker [2020/12/11 16:46] – [docker-compose] lwsystems | docker [2025/03/14 08:06] (aktuell) – [Benno MailArchiv als Docker Container einrichten] lwsystems | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Docker Image ====== | + | ====== |
+ | |||
+ | Benno MailArchiv steht auch als Docker-Image [[https:// | ||
+ | |||
+ | **Bitte beachten Sie auch unsere [[gesetzeskonforme_e-mail-archivierung|Hinweise zur rechtssicheren bzw. GoBD-konformen Mailarchivierung]]!** | ||
+ | |||
+ | ===== Manueller Start ===== | ||
+ | |||
+ | < | ||
+ | docker run --name bma \ | ||
+ | --volume / | ||
+ | --volume / | ||
+ | --volume / | ||
+ | --volume / | ||
+ | --volume / | ||
+ | --volume / | ||
+ | -p 20022:22 -p 20080:80 -p 22500:22500 \ | ||
+ | bennomailarchiv/ | ||
+ | </ | ||
- | Benno MailArchiv steht auch als Docker-Image [[https:// | ||
- | ====== Installation ====== | ||
===== docker-compose ===== | ===== docker-compose ===== | ||
- | Das Image kann mit Hilfe von // | + | Das Image kann mit Hilfe von // |
Hiefür wird das folgende Compose-File angelegt: | Hiefür wird das folgende Compose-File angelegt: | ||
Zeile 14: | Zeile 30: | ||
services: | services: | ||
benno: | benno: | ||
- | image: bennomailarchiv/ | + | image: bennomailarchiv/ |
ports: | ports: | ||
- | - "23080:80" | + | - "22080:80" |
- | - " | + | - " |
- | - " | + | - " |
restart: always | restart: always | ||
volumes: | volumes: | ||
- | - ${ARCHIVECONF_DIR: | + | - ${ARCHIVECONF_DIR: |
- ${ARCHIVE_DIR: | - ${ARCHIVE_DIR: | ||
- ${SYSTEM_DIR: | - ${SYSTEM_DIR: | ||
Zeile 33: | Zeile 49: | ||
docker-compose up -d | docker-compose up -d | ||
+ | |||
+ | ==== Installation mit Docker-Compose und Traefik ==== | ||
+ | |||
+ | Eine erweiterte Installation von Benno MailArchiv in Docker mit Hilfe von Docker-Compose und Traefik als Reverse-Proxy ist bei [[https:// | ||
===== Volume-Mapping ===== | ===== Volume-Mapping ===== | ||
Zeile 41: | Zeile 61: | ||
Die voreingstellten Pfade können mit Hilfe der Umgebungsvariablen an die lokale Umgebung angepasst werden. | Die voreingstellten Pfade können mit Hilfe der Umgebungsvariablen an die lokale Umgebung angepasst werden. | ||
- | * BENNOCONF_DIR: Benno Archiver Konfiguration (/ | + | * ARCHIVECONF_DIR: Benno Archiver Konfiguration (/ |
- | * REPO_DIR: [[begriffsbestimmungen# | + | * ARCHIVE_DIR: [[begriffsbestimmungen# |
* SYSTEM_DIR: Systemdaten (/ | * SYSTEM_DIR: Systemdaten (/ | ||
- | * INBOX_DIR: [[begriffsbestimmungen# | + | * INBOX_DIR: [[begriffsbestimmungen# |
* LOG_DIR: Log-Dateien (/ | * LOG_DIR: Log-Dateien (/ | ||
* WEBCONF_DIR: | * WEBCONF_DIR: | ||
* WEBLIB_DIR: Datenbank des Web-Interfaces (/ | * WEBLIB_DIR: Datenbank des Web-Interfaces (/ | ||
+ | |||
+ | ====== 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 ''/ | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # Benno Webinterface Docker Mapping | ||
+ | # | ||
+ | ProxyPreserveHost On | ||
+ | RequestHeader set X-Forwarded-Proto " | ||
+ | |||
+ | ProxyPass | ||
+ | ProxyPassReverse /benno http:// | ||
+ | </ | ||
+ | |||
+ | Anschließend werden das // | ||
+ | |||
+ | a2enmod proxy_http | ||
+ | a2enconf benno-docker | ||
+ | systemctl restart apache2 | ||
+ | |||
+ | === Admin-Login === | ||
+ | |||
+ | Beim ersten Start des Containers wird automatsich ein Passwort für den Benutzer "// | ||
+ | |||
+ | === Konfigurationsdateien === | ||
+ | |||
+ | Die Konfigurationsdateien | ||
+ | |||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | |||
+ | werden beim Start des Containers generiert. Hierbei werden die folgenden Einstellungen aus den entsprechenden Umgebungsvariablen gesetzt: | ||
+ | |||
+ | * ''/ | ||
+ | * host = ### | ||
+ | * basedn = ### | ||
+ | * tls = ### | ||
+ | * binddn = ### | ||
+ | * password = ### | ||
+ | * ''/ | ||
+ | * host ### | ||
+ | * port ### | ||
+ | * from bennomailarchiv.### | ||
+ | * user ### | ||
+ | * password ### | ||
+ | |||
+ | == 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 / | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== Mail-Import ====== | ||
+ | |||
+ | ===== MILTER ===== | ||
+ | |||
+ | Im Docker-Container ist ein [[mail-import_via_milter|MILTER]] Daemon gestartet. Auf dem Hostsystem ist hierfür der Port 22500 gebunden und kann direkt aus dem MTA per [[mail-import_via_milter# | ||
+ | |||
+ | |||
+ | ===== benno-smtp ===== | ||
+ | |||
+ | Im Container // | ||
+ | --- //Cred.: Tammo Schülke, REDLINK GmbH// | ||
+ | |||
+ | <file yml> | ||
+ | services: | ||
+ | benno-smtp: | ||
+ | image: bennomailarchiv/ | ||
+ | entrypoint: | ||
+ | - / | ||
+ | - -Dlog4j.configuration=/ | ||
+ | - -server | ||
+ | - -jar | ||
+ | - / | ||
+ | - -c | ||
+ | - / | ||
+ | volumes: | ||
+ | - ${INBOX_DIR: | ||
+ | restart: always | ||
+ | ports: | ||
+ | - 2500:2500 | ||
+ | </ |