Kurzüberblick
Getestete Basis ist die openSUSE-basierte grommunio Appliance 2026.06.1. Die Beispiele verwenden durchgehend die neutrale Appliance-Domain https://mail.example.test; Pfade wie /web/, /admin/, /auth/, /chat/, /meet/ und /files/ liegen auf derselben Appliance.Dieser Beitrag zeigt, wie du grommunio Archive auf einer bestehenden grommunio-2026-Appliance einrichtest und den Mailfluss bis Suche und Wiederherstellung prüfst.
Die Anleitung führt durch Komponenten, Dienste, Archivierung, Suchoberfläche, Treffer, Restore, Retention-Grundlagen, Berechtigungen, Logs und Abschlussprüfung.
Getestete Umgebung
grommunio 2026 auf der openSUSE-basierten grommunio Appliance.
Alle Appliance-Befehle werden direkt auf der grommunio Appliance ausgeführt.
Öffentliche Beispiele verwenden durchgehend die neutrale Appliance-Domain https://mail.example.test.
1. Ausgangslage & Voraussetzungen
Ausgangspunkt ist eine grommunio-Installation mit funktionierendem DNS, TLS, Admin-Zugriff und sauberer Basisprüfung. Jeder Beitrag behandelt genau den Baustein, den du für eine vollständige Collaboration-Plattform brauchst.
2. Schritt-für-Schritt-Anleitung
Dieser Beitrag zeigt den jeweiligen grommunio-Baustein auf der openSUSE-basierten Appliance so, dass du die Konfiguration nachvollziehen, testen und in den Betrieb übernehmen kannst.
Voraussetzungen
Eine bestehende oder geplante grommunio-Umgebung, passende DNS-Namen, TLS, administrative Zugänge und ein klares Ziel für Mail, Collaboration oder Betrieb.
4. Typische Fehler & Troubleshooting
Weboberfläche lädt nicht: FQDN, TLS, Reverse Proxy, Firewall und Dienststatus kontrollieren.
Login oder SSO schlägt fehl: Realm, Client, Redirect-URIs, Zertifikatskette, Uhrzeit und Benutzerzuordnung kontrollieren.
Feature bleibt leer: Paketstand, Plugins, Rechte, Logs und Hintergrunddienste kontrollieren.
5. Fazit & Ausblick
Der grommunio-Baustein ist damit nachvollziehbar eingerichtet und in die Plattform eingeordnet. Die nächsten Teile führen die Collaboration-Umgebung Schritt für Schritt weiter.
Diese Anleitung zeigt dir, wie du grommunio Archive auf einer grommunio-2026.06.1-Appliance einrichtest, technisch prüfst und einen vollständigen Archivierungs- und Restore-Workflow nachweist. Sie ist bewusst praxisnah: Paket installieren, Datenbank und Storage vorbereiten, Mailflow anbinden, Benutzer berechtigen, suchen, wiederherstellen, sichern und überwachen.
Wir sprechen hier über technische E-Mail-Archivierung und einen belastbaren Retention-Compliance-Baustein. Rechtliche Anforderungen wie Aufbewahrungsfristen, Exportpflichten oder Beweiswerterhaltung musst du immer mit der eigenen Organisation und Rechtsberatung abstimmen.
Was wir aufbauen
Archive hängt in diesem Setup nicht als dekorative Zusatzoberfläche neben der Groupware. Die Appliance nimmt eine Nachricht normal in die Mailbox an und erzeugt zusätzlich eine Archivkopie über die Postfix-BCC-Strecke. grommunio Archive speichert die Nachricht, legt Metadaten in der Datenbank ab, indexiert sie über Sphinx und stellt Suche sowie Restore über die Archive-Weboberfläche bereit.
- Paket: grommunio-archive
- Version im Test: 1.4.9 auf grommunio 2026.06.1
- Daemons: grommunio-archive, grommunio-archive-smtp und searchd
- Datenbank: groarchive in MariaDB
- Datenpfad: /var/lib/grommunio-archive
- Webpfad: https://mail.example.test/archive/
- Login: grommunio-Benutzer mit IMAP/POP und Archive-Recht
- Restore: aus Archive zurück in die Benutzer-Mailbox.
Architektur und Mailflow
Der getestete Ablauf ist einfach, aber wichtig: Eine eingehende oder lokal erzeugte Nachricht wird an die Mailbox zugestellt und parallel an eine interne Archive-Adresse kopiert. Diese Adresse routet Postfix lokal zum Archive-SMTP-Dienst auf 127.0.0.1:2693. Dadurch bleibt der Archive-Daemon intern gebunden; öffentlich sichtbar ist nur die HTTPS-Oberfläche unter /archive/.
- Mailflow
- Postfix / gromox
- Mailbox
- recipient_bcc_maps
- archive@archive.example.test
- smtp:[127.0.0.1]:2693
- grommunio Archive
- groarchive Datenbank
- Sphinx Suchindex
- Archive Web UI
- Restore in die Mailbox
Voraussetzungen prüfen
Starte auf einer funktionierenden grommunio-2026-Basis. DNS, TLS, Zeitsynchronisation, Admin-Zugang, funktionierende Benutzerpostfächer und IMAP müssen bereits sauber laufen. Wenn du aus der Artikelserie kommst, ist die Installation aus Teil 1 die Grundlage.
cat /etc/os-releasehostname -frpm -qa | grep -Ei 'grommunio|gromox|archive' | sortzypper search -s grommunio-archivesystemctl list-unit-files | grep -Ei 'archive|grommunio'ss -lntup
Archive installieren
Das Paket kommt aus den grommunio-Repositories. Vor der Installation prüfst du die angebotene Version, danach installierst du nur das reale Paket. In unserem Test war grommunio-archive 1.4.9-lp160.3.32 verfügbar.
zypper refreshzypper search -s grommunio-archivezypper --non-interactive install grommunio-archiverpm -q grommunio-archive
Datenbank und Storage vorbereiten
grommunio Archive verwendet eine eigene Datenbank. Im getesteten Setup heißt sie groarchive. Lege Benutzer und Datenbank mit einem starken, nicht im Shell-Verlauf sichtbaren Passwort an, importiere das mitgelieferte Schema und bewahre das Passwort in einer nur für Root und die Archive-Gruppe lesbaren Datei auf.
install -d -m 0750 -o root -g groarchive /etc/grommunio-archiveopenssl rand -base64 36 > /etc/grommunio-archive/db.secretchown root:groarchive /etc/grommunio-archive/db.secretchmod 0640 /etc/grommunio-archive/db.secretmariadb -uroot <<'SQL'CREATE DATABASE IF NOT EXISTS groarchive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER IF NOT EXISTS 'groarchive'@'localhost' IDENTIFIED BY '<strong-password>';GRANT ALL PRIVILEGES ON groarchive.* TO 'groarchive'@'localhost';FLUSH PRIVILEGES;SQLmariadb groarchive < /usr/share/grommunio-archive/db-mysql.sql
Die Daten, temporären Dateien, Indexdaten und Fehlerablagen liegen unter /var/lib/grommunio-archive. Für Produktion planst du diesen Pfad wie Maildaten: eigener Speicher, Monitoring, Backup, Kapazitätsplanung und klare Restore-Tests.
rpm -ql grommunio-archive | sortdu -sh /var/lib/grommunio-archivefind /var/lib/grommunio-archive -maxdepth 1 -type d -printf '%p\n' | sort
Archive konfigurieren
Kopiere nicht blind ganze Beispielkonfigurationen, sondern setze die Werte, die in deiner Umgebung wirklich gelten: Hostname, Datenbank, Storage, Sphinx, interner SMTP-Port, IMAP-Backend und öffentliche URL. Im Lab war die externe URL https://mail.example.test/archive/.
cp -n /etc/grommunio-archive/grommunio-archive.conf.dist /etc/grommunio-archive/grommunio-archive.confcp -n /etc/grommunio-archive/config-site.dist.php /etc/grommunio-archive/config-site.phpcp -n /etc/grommunio-archive/sphinx.conf.dist /etc/sphinx/sphinx.conf# Danach kontrolliert setzen:# hostid=mail.example.test# listen_addr=127.0.0.1# listen_port=2693# mysqldb=groarchive# mysqluser=groarchive# queuedir=/var/lib/grommunio-archive/store# workdir=/var/lib/grommunio-archive/tmp# sphxhost=127.0.0.1# sphxport=9306
Dienste und Ports aktivieren
Nach der Konfiguration startest du Archive, den Archive-SMTP-Dienst, Sphinx, PHP-FPM und nginx. Der entscheidende Sicherheitscheck: piler-smtp lauscht nur lokal auf 127.0.0.1:2693. Von außen sollen Benutzer nur HTTPS sehen.
systemctl enable --now searchd grommunio-archive grommunio-archive-smtpsystemctl restart php-fpm nginxsystemctl is-active searchd grommunio-archive grommunio-archive-smtp php-fpm nginxss -lntup | grep -Ei '2693|9306|:443|:80'
Reverse Proxy für /archive/
Die Weboberfläche läuft in diesem Setup unter /archive/. nginx übergibt PHP-Dateien an den grommunio-Archive-PHP-FPM-Pool. Zusätzlich müssen die Rewrite-Regeln der Anwendung für Such-, Login-, Message- und Restore-Routen greifen.
location ^~ /archive/ {alias /usr/share/grommunio-archive/archive/;index index.php;location ~ \.php$ {include fastcgi_params;fastcgi_param SCRIPT_FILENAME $request_filename;fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_pass unix:/run/php-fpm/php-grommunio-archive-fpm.sock;}}
nginx -tsystemctl reload nginxcurl -kI https://mail.example.test/archive/
Benutzer berechtigen
Ein Benutzer braucht IMAP/POP und das Archive-Recht. grommunio dokumentiert diesen Weg auch für Archive-Login und Restore über IMAP. Für einen Testbenutzer sieht das so aus:
grommunio-admin user modify alice@example.test --pop3-imap true --privArchive truegrommunio-admin user query username pop3_imap privArchive --filter username=alice@example.test
Archive-Login prüfen
Melde dich danach mit einem berechtigten Benutzer unter /archive/ an. Im Lab wurde der Pfad über https://mail.example.test/archive/ getestet. Verwende in der Anleitung und in Screenshots immer die echte Ziel-URL deiner Appliance, nicht lokale Portweiterleitungen.
Testmail senden und Archivierung nachweisen
Für den technischen Nachweis sendest du eine Testnachricht an den Benutzer. Postfix kopiert sie über recipient_bcc_maps an die interne Archive-Adresse. Danach prüfst du drei Ebenen: Zustellung an Archive-SMTP, Eintrag in groarchive und Suchbarkeit im Sphinx-Index.
/usr/sbin/sendmail -t <<'MAIL'From: Archive Sender <sender@example.test>To: alice@example.testSubject: ForgeOne Archive Search Validation 20260908140826MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Diese Nachricht prüft Suche und Restore im grommunio Archive.postmap -q alice@example.test mysql:/etc/postfix/grommunio-bcc-forwards.cfpostmap -q archive.example.test lmdb:/etc/postfix/transportmariadb groarchive -e "SELECT id, CAST(subject AS CHAR(255)) AS subject_text FROM metadata ORDER BY id DESC LIMIT 5;"
Der Delta-Indexer läuft im Regelbetrieb per Cron. Für einen unmittelbaren Lab-Nachweis kannst du den Delta-Index manuell rotieren und danach direkt gegen Sphinx suchen.
runuser -u groarchive -- indexer --rotate --config /etc/sphinx/sphinx.conf delta1mariadb -h127.0.0.1 -P9306 -e "SELECT id FROM main1,dailydelta1,delta1 WHERE MATCH('ForgeOne');"
Suchen und Nachricht öffnen
In Archive suchst du nach einem eindeutigen Marker aus dem Betreff. Der Treffer muss Datum, Absender, Empfänger, Betreff und Größe zeigen. Öffne die Nachricht und prüfe, dass Headerdaten, Inhalt und Restore-Aktion sichtbar sind.
Aus der Mailbox löschen und aus Archive wiederherstellen
Für den echten Restore-Test reicht es nicht, dass die Nachricht in Archive sichtbar ist. Lösche sie zuerst aus der Mailbox, prüfe, dass sie dort nicht mehr vorhanden ist, löse dann in Archive Restore to mailbox aus und prüfe die Mailbox erneut.
Im produktiven Browserpfad öffnest du danach grommunio Web, meldest dich als derselbe Benutzer an und suchst im Posteingang nach dem eindeutigen Betreff. Für automatisierte Abnahme ist die IMAP-Prüfung reproduzierbarer, weil sie dieselbe Mailbox ohne UI-Session-Effekte kontrolliert.
python3 archive_imap_check_20260908.py "ForgeOne Archive Search Validation 20260908140826"python3 archive_imap_check_20260908.py "ForgeOne Archive Search Validation 20260908140826" delete# Danach in der Archive-Weboberfläche: Restore to mailboxpython3 archive_imap_check_20260908.py "ForgeOne Archive Search Validation 20260908140826"
Export, Anhänge und Benutzerisolation prüfen
Prüfe nach dem Basis-Restore auch Export und Berechtigungsgrenzen. Ein normaler Benutzer soll eigene archivierte Nachrichten finden, öffnen, als EML herunterladen und wiederherstellen können. Er soll aber keine fremden Mailboxen sehen. Anhänge müssen in der geöffneten Nachricht nachvollziehbar erscheinen und dürfen beim Export nicht verloren gehen.
- Suche als Alice nach einer Alice-Nachricht.
- Suche als Bob nach derselben Alice-Nachricht und erwarte keinen Treffer.
- Öffne eine Nachricht mit Anhang und prüfe Anzeige sowie EML-Download.
- Dokumentiere Rollen für Helpdesk, Auditoren oder Administratoren getrennt von normalen Benutzern.
Backup und Restore der Archive-Plattform
Für Archive sicherst du nicht nur die Datenbank. Du brauchst mindestens Datenbankdump, /var/lib/grommunio-archive, Archive-Konfiguration, Sphinx-Konfiguration, nginx-Route und die zugehörigen Schlüssel- beziehungsweise Secret-Dateien. Die Dateien dürfen im Backup liegen, aber nicht im Artikel, in Screenshots oder in Tickets veröffentlicht werden.
mariadb-dump --single-transaction groarchive | gzip -c > /root/archive-backup-validation/groarchive.sql.gztar -C / -czf /root/archive-backup-validation/grommunio-archive-config-data.tar.gz \etc/grommunio-archive \etc/sphinx/sphinx.conf \etc/grommunio-common/nginx/locations.d/grommunio-archive.conf \var/lib/grommunio-archivegzip -t /root/archive-backup-validation/groarchive.sql.gztar -tzf /root/archive-backup-validation/grommunio-archive-config-data.tar.gz | head
Monitoring und Logs
Überwache nicht nur HTTP 200. Für Archive sind Servicezustand, lokaler SMTP-Port, Sphinx-Port, Datenbankzugriff, Indexalter, eingehende Archivnachrichten, Suchfunktion und ein synthetischer Restore-Test relevant.
systemctl status grommunio-archive grommunio-archive-smtp searchd --no-pagerjournalctl -u grommunio-archive -u grommunio-archive-smtp -u searchd --since "1 hour ago" --no-pagerdu -sh /var/lib/grommunio-archivemariadb groarchive -e "SELECT COUNT(*) AS archived_messages FROM metadata;"
Troubleshooting
- Login schlägt fehl: IMAP/POP und privArchive für den Benutzer prüfen.
- Kein Treffer in der Suche: Mailflow, metadata-Tabelle und Delta-Indexer prüfen.
- Restore kommt nicht an: IMAP-Backend, Benutzerrechte und Archive-Logs prüfen.
- 404 unter /archive/: nginx-Location, Rewrite-Regeln und PHP-FPM-Socket prüfen.
- Port 2693 öffentlich sichtbar: listen_addr korrigieren und Firewall prüfen.
Fazit
Ergebniskontrolle / Technische Abnahme
| Prüfbereich | Prüfung | Erwartetes Ergebnis | Status |
|---|---|---|---|
| Installation | Pakete und Komponenten prüfen | Der Baustein ist vollständig installiert | PASS |
| Dienste | systemd-Services prüfen | Die notwendigen Dienste sind aktiv | PASS |
| Netzwerk | Ports und URLs prüfen | Der Baustein ist über die vorgesehenen Pfade erreichbar | PASS |
| Grundfunktion | Standalone-Test ausführen | Die Kernfunktion funktioniert vor der tieferen Integration | PASS |
| Authentifizierung | SSO/Login testen | Der Login funktioniert über den vorgesehenen Weg oder ist bewusst nicht erforderlich | PASS oder N/A |
| grommunio Web | Integration aus Web prüfen | Der Baustein ist aus grommunio Web erreichbar oder nutzbar | PASS oder N/A |
| End-to-End | Realen Benutzerworkflow testen | Der vollständige Workflow ist nachvollziehbar erfolgreich | PASS |
| Neustart | Dienste neu starten | Die Funktion bleibt nach einem Neustart erhalten | PASS |
| Logs | Relevante Logs kontrollieren | Keine blockierenden Fehler im geprüften Ablauf | PASS |
Installation
- Prüfung
- Pakete und Komponenten prüfen
- Erwartetes Ergebnis
- Der Baustein ist vollständig installiert
- Status
- PASS
Dienste
- Prüfung
- systemd-Services prüfen
- Erwartetes Ergebnis
- Die notwendigen Dienste sind aktiv
- Status
- PASS
Netzwerk
- Prüfung
- Ports und URLs prüfen
- Erwartetes Ergebnis
- Der Baustein ist über die vorgesehenen Pfade erreichbar
- Status
- PASS
Grundfunktion
- Prüfung
- Standalone-Test ausführen
- Erwartetes Ergebnis
- Die Kernfunktion funktioniert vor der tieferen Integration
- Status
- PASS
Authentifizierung
- Prüfung
- SSO/Login testen
- Erwartetes Ergebnis
- Der Login funktioniert über den vorgesehenen Weg oder ist bewusst nicht erforderlich
- Status
- PASS oder N/A
grommunio Web
- Prüfung
- Integration aus Web prüfen
- Erwartetes Ergebnis
- Der Baustein ist aus grommunio Web erreichbar oder nutzbar
- Status
- PASS oder N/A
End-to-End
- Prüfung
- Realen Benutzerworkflow testen
- Erwartetes Ergebnis
- Der vollständige Workflow ist nachvollziehbar erfolgreich
- Status
- PASS
Neustart
- Prüfung
- Dienste neu starten
- Erwartetes Ergebnis
- Die Funktion bleibt nach einem Neustart erhalten
- Status
- PASS
Logs
- Prüfung
- Relevante Logs kontrollieren
- Erwartetes Ergebnis
- Keine blockierenden Fehler im geprüften Ablauf
- Status
- PASS







