| |

Projekt Mailpiler mit Docker Compose ausrollen

Ich habe auf Github ein Projekt ins Leben gerufen, um den Mailpiler auf einfache und unkomplizierte Art und Weise in einem Docker-Compose-System zum Laufen zu bringen.

Mehr Informationen über das Piler-Projekt findet hier:

https://www.mailpiler.org/

DockerHub:

https://hub.docker.com/r/simatec/piler

Github:

https://github.com/simatec/piler-docker

Wie ihr den Mailpiler auf euren System schnell und einfach innerhalb von 2-3 Minuten zum laufen bekommt, erkläre ich hier in einem kurzen Tutorial.

Installationsanleitung:


Docker und Abhängigkeiten installieren:

apt install curl git -y
curl -sSL https://get.docker.com/ | CHANNEL=stable sh
systemctl enable --now docker

Docker-Compose installieren:

curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

System neustarten:

reboot now

Repository clonen:

cd /opt
git clone https://github.com/simatec/piler-docker.git
cd /opt/piler-docker

Installation und ausrollen von Mailpiler:

Während der Installation wird ein Assistent gestartet, in dem du alle deinen Daten wie Domain usw. eintragen musst.

bash install-piler.sh

Herzlichen Glückwunsch, dein Mailpiler ist installiert…

Wenn du Let’s Encrypt aktiviert hast, kannst du den Piler unter „https://your-piler-domain“ erreichen.

Wenn Let’s Encrypt deaktiviert ist, findest du den Piler unter „http://your-piler-domain“ oder unter „http://your-local-IP

Der Standard-Login ist admin@local und das Passwort ist pilerrocks

Nach der Installation können jederzeit Änderungen in der piler.conf vorgenommen werden und das Installationsskript erneut ausgeführt werden.

Updates installieren:

Du kannst die folgenden Befehle ausführen, um die Container zu aktualisieren. Dabei werden die aktuellen yml-Dateien von Github heruntergeladen und die Container bei Bedarf aktualisiert.

cd /opt/piler-docker
bash install-piler.sh

Du erhältst ein Auswahlmenü mit den folgenden Optionen:

1) Install-Piler
2) Update-Piler

Nach einer erfolgreichen Aktualisierung können unbenutzte Container-Images mit folgendem Befehl aus dem System entfernt werden:

docker system prune
Den Mailpiler auf der Kommandozeile verwenden:

Für die Verwendung in der Kommandozeile melden wir uns zunächst am Container an.

docker exec -it piler /bin/bash

Als nächstes wechseln wir zu dem Benutzer „piler“:

su piler

Um Schreibrechte zu erhalten, wechseln wir in den Ordner /var/tmp:

cd /var/tmp

Hier kannst du nun die Funktionen des Mailpiler auf der Kommandozeile ausführen. Anbei einige Beispiele:

pilerimport -h
crontab -l
Fazit:

Mailpiler ist ein geniales Tool, um Mails sicher zu archivieren.

Ich wünsche dir viel Spaß mit Mailpiler und meiner Docker Version.

Willst du mich bei diesem Projekt unterstützen, kannst du das gerne hier tun.

Ähnliche Beiträge

11 Kommentare

  1. Moin,

    auf der suche nach einer gescheiten Installations Möglichkeit für MailPiler bin ich auf deinen Blog gestoßen. Erstmal vielen Dank das du dir die Mühe machst für andere die Installation zu vereinfachen. Die Dokumentation von MailPiler direkt empfinde ich als Katastrophe 😀

    Nun habe ich versucht mit deinem Docker Image MailPiler zu installieren. Läuft auch alles Fehlerfrei durch, nur leider bekomme ich anschließend das Webinterface nicht aufgerufen…kannst du mir da eventuell behilflich sein? Falls ja was benötigst du um zu sehen was ich falsch mache 😀

    Mit freundlichen Grüßen

    Dennis

    1. Schön, dass dir mein Beitrag geholfen hat.
      Hast du eine Domain vergeben, die auch in den Records auf deine Piler Installation zeigt? Firewall Regeln für 443 / TCP freigegeben? Wo hast du den Piler installiert?

  2. Moin,
    Auch von meiner Seite herzlichen Dank für diese tolle Dockercompositon. Tatsächlich ist das bisher die Einzige, welche ich zum Laufen bekommen habe und die im Grunde keinerlei manuelle Eingriffe erfordert. Bei mir laufen die Container in einer separaten VM auf einer Synology NAS. Meine Überlegung war, den Container Manager (Dockerdienst) der Synology zu nutzen, um eine VM einzusparen, was letztendlich auch das Backup vereinfacht. Dazu habe ich die piler-default.yml (SSL mit Let’sEncrypt macht der Reverse Proxy der Synology) direkt mit den benötigten Attributen gefüttert, die dein Install Script abfragen würde. An einer Stelle komme ich aber nicht wirklich weiter. Konfiguriere ich die Volumes so, dass die veränderlichen Daten auf einer speziellen Freigabe der Synology landen, bekomme ich beim Starten des Piler-Containers folgende Fehlermeldungen: „cp: cannot stat ‚/etc/piler/piler-nginx.conf.dist‘: No such file or directory“
    und „DEBUG: Writing /etc/piler/piler-nginx.conf“. Hast du da eine Idee?

    Liebe Grüße
    René

    1. So wie sich das liest, passen irgendwelche Volumes oder Rechte nicht. Ist natürlich so schwierig zu sagen.
      Der Script hat einige verschachtelte Infos, von denen durch die manuelle Erstellung deine docker-compose.yml etwas verloren gegangen sein kann.

  3. Hallo,
    Ich musste beim SQL-Container mit einer Userdeklaration für den Container arbeiten, damit ein auf der NAS vorhandener User „angezapft“ wird und die DBs erstellt werden konnten. Hab das auch für den Pilercontainer gemacht, brachte aber nichts. Die Volumes sind für alle Container bis auf die Unterordner identisch, insofern schließe ich das auch aus. Solltest du noch eine Idee haben, freue ich mich. Falls nicht, bleibe ich erst mal bei der separaten VM.

    Liebe Grüße
    René

  4. Hallo,
    als aller erstes: vielen Dank für die deine super Anleitung! Die Anleitung ist einfach eine extreme Erleichterung Mailpiler per Docker zu installieren und so bereitzustellen! 🙂
    Die Installation von Mailpiler über die Mailpiler-Doku ist ja echt Horror 😐

    Ich habe eine Frage zu deinem Docker Container.
    In meinem Fall habe ich einen Ubuntu 22.04 VPS. Auf dem VPS läuft Mailcow per Docker. Mailcow ist angepasst mit einem apache als Reverse Proxy, also der HTTP Port ist auf 8080 und der HTTPS Port auf 8443 angepasst. Apache ist ohne Docker auf dem VPS installiert und stellt verschiedene Websites bereit. Funktioniert alles soweit super. Jetzt wollte ich auf dem gleichen VPS noch ein Mailpiler bereitstellen. Allerdings müssten hier die HTTP und HTTPS Ports des Nginx Webservers von deinem Mailpiler Docker Container ebenfalls angepasst werden.
    Ist das irgendwie möglich?

    Besten Dank vorab,
    Simon

    1. Ich denke das sollte schwierig werden. Soweit ich weiß benötigt Port 80 und 443 für die Erstellung und Erneuerung der Zertifikate. Port 80 wird dafür auf jeden Fall benötigt. Denke eine Apache und ein Nginx auf einem System ist nicht so optimal.

  5. Vielen Dank für das docker-image.

    Es ist erstaunlich, dass bei jeder neuen Installation immer wieder andere Probleme auftauchen mit mailpiler.

    Aber diese Lösung hier ist perfekt. Ich habe mailpiler auf dem gleichen Server wie meine Mailcow Instanz installiert. Jedoch habe ich alle exposed Ports 25, 80, 443 vor der Installation in allen Files abgeändert und somit gab es keinerlei Konflikte mit Mailcow.

    Ich war nie so schnell fertig mit der Mailpiler installation 🙂

    Noch einmal Danke 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert