Mail-Archivierung auf Proxmox installieren: Mail-Archiver, IMAP und PostgreSQL

Ein Mail-Archiv ist nicht einfach ein zweites Postfach. Es muss Nachrichten dauerhaft und nachvollziehbar speichern, durchsuchen und wiederherstellen können. In meinem Homelab läuft dafür Mail-Archiver als eigener Proxmox-LXC mit PostgreSQL. Diese Anleitung zeigt eine neue Installation und die ersten sicheren Schritte – ohne in einen laufenden Mailserver oder dessen Zustellung einzugreifen.

Vorher entscheiden: Was soll archiviert werden?

Lege fest, ob du einzelne IMAP-Postfächer periodisch einliest oder eine zentrale Kopie eingehender und ausgehender Mails brauchst. IMAP-Synchronisierung ist einfacher, kann aber bereits gelöschte Nachrichten nicht nachträglich retten. Rechtlich belastbare Archivierung hat je nach Land und Zweck zusätzliche Anforderungen; diese Anleitung ist eine technische Einrichtung, keine Rechtsberatung.

Schritt 1: Separaten LXC vorbereiten

Für die Erstinstallation gibt es den Mail-Archiver-Installer der Proxmox-Community-Skripte. Die Script-Seite nennt einen Debian-13-LXC mit 1 CPU, 2 GB RAM und 8 GB Startspeicher. Für große Postfächer mehr Platz einplanen. Lies den Quelltext vor der Ausführung auf dem Proxmox-Host:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/mail-archiver.sh)"

Im Dialog freie Gast-ID, privaten Netzanschluss und Backup-Storage wählen. Nach Abschluss:

pct list
pct status <CTID>
pct exec <CTID> -- systemctl is-active mail-archiver
pct exec <CTID> -- systemctl is-active postgresql
pct exec <CTID> -- ss -lnt

Die Community-Script-Seite nennt Port 5000 für die Weboberfläche. Öffne http://ARCHIV_HOST:5000 ausschließlich im internen Netz oder über VPN. Bei Fehlern:

pct exec <CTID> -- journalctl -u mail-archiver -n 100 --no-pager
pct exec <CTID> -- journalctl -u postgresql -n 100 --no-pager

Schritt 2: Erstzugang sofort absichern

Die Script-Seite dokumentiert einen initialen Admin-Zugang. Ändere das Passwort vor dem Einrichten von Postfächern. Lege nach Möglichkeit einen separaten Administrator und für Mailabrufe eingeschränkte Zugangsdaten an. Den Standardzugang nicht in einem öffentlich erreichbaren Dienst belassen. Das Archiv selbst nicht direkt ins Internet freigeben; bei Bedarf VPN oder Reverse Proxy mit TLS und zusätzlicher Zugriffskontrolle verwenden.

Schritt 3: Ein Testpostfach einrichten

Beginne mit einem eigens angelegten IMAP-Testkonto. In der Mail-Archiver-Oberfläche ein Konto hinzufügen und folgende Werte aus deinem Mailserver übernehmen:

  • IMAP-Hostname und Port 993 mit TLS,
  • vollständiger Benutzername,
  • eigenes App-Passwort oder eingeschränktes Konto,
  • gewünschte Ordner und Synchronisierungsintervall,
  • Zeitzone für die Anzeige.

Danach eine harmlose Testmail senden und prüfen: erscheint sie im Quellpostfach, taucht sie nach einem Sync im Archiv auf, funktionieren Suche und Export einer einzelnen EML-Datei? Erst wenn dieser Ablauf sauber ist, weitere Postfächer hinzufügen. Bei IMAP-Anmeldefehlern im Mailserver-Protokoll prüfen, ob App-Passwörter oder besondere TLS-Vorgaben nötig sind.

Schritt 4: Konfiguration und Speicher verstehen

Beim Community-Script liegen die relevanten Pfade unter /opt/mail-archiver/, insbesondere .env und appsettings.json. Diese Dateien können Zugangsdaten enthalten: nicht ungeschützt ausgeben, verschicken oder ins Git stellen. Die eigentlichen Archivdaten liegen in PostgreSQL. Änderungen am Synchronisierungsintervall werden je nach Version über App-Einstellungen beziehungsweise appsettings.json vorgenommen; vor jeder Änderung Datei sichern und Syntax prüfen.

pct exec <CTID> -- df -h
pct exec <CTID> -- systemctl status mail-archiver --no-pager
pct exec <CTID> -- systemctl status postgresql --no-pager

Das Archiv kann deutlich größer werden als erwartet, besonders bei Anhängen. Plane freie Reserve, überwache Datenbankgröße und prüfe den Proxmox-Thin-Pool. Alte Daten nicht ohne definierte Aufbewahrungsregel löschen.

Backups und Wiederherstellung

Schütze den kompletten LXC mit PBS. Ergänzend einen PostgreSQL-Dump des Anwendungsdatenbestands erstellen. Die konkrete Datenbank heißt je nach Installationsvariante anders; deshalb zuerst den Namen in der lokalen Konfiguration ermitteln, ohne Kennwörter zu veröffentlichen. Als Schema:

sudo -u postgres pg_dump -Fc DATENBANKNAME \
  > mail-archiver-$(date +%F).dump
pg_restore --list mail-archiver-YYYY-MM-DD.dump | head

Ein Dump ist nur dann verlässlich, wenn er extern gespeichert und regelmäßig in einem isolierten Testgast wiederhergestellt wird. E-Mails und Anhänge sind hochsensibel: Backups verschlüsseln und Zugriffe eng begrenzen.

Fehlerdiagnose und Updates

  • Weboberfläche nicht erreichbar: Dienst, Port, Container-IP und Firewall prüfen.
  • Sync liefert keine Mails: IMAP-TLS, Login, Ordnerauswahl und Mailserver-Logs prüfen.
  • Mailzahl weicht ab: gelöschte oder nicht abonnierte Ordner sowie Synchronisierungsfenster beachten.
  • Speicher wächst schnell: Anhänge, Indizes und PostgreSQL-Datenbank getrennt betrachten.

Vor jedem Update: LXC-Backup und Datenbankdump erstellen, Release Notes lesen, danach Weboberfläche, Suche, neue Mails und Export testen. Ein Archiv ist erst nützlich, wenn auch die Rücksicherung funktioniert.

Quellen: Mail-Archiver-Projekt · Proxmox-Installer · Backup-Strategie fürs Homelab.

X

Basti

Entwickler und Smart-Home-Enthusiast aus Deutschland. Ich entwickle Open-Source-Integrationen für Home Assistant (IDM Wärmepumpe, Violet Pool Controller), Modbus-Tools (ModBridge) und betreibe verschiedene Server-Dienste (Matrix, Seafile, SOGo).

GitHub →

Schreibe einen Kommentar