No description
  • Jinja 71.6%
  • Shell 28.4%
Find a file
root 0c1e019e5b
Some checks failed
/ image (push) Failing after 28m0s
/ lint (push) Successful in 5m23s
/ publish (push) Has been skipped
Add Mail Archiver app
Mail Archiver (ASP.NET Core) built from the source of the GitHub release:
upstream ships no binaries, so the tag is cloned and checked against the
commit GitHub reports for it, then published self-contained with the .NET
SDK (SHA-512 from Microsoft's release metadata) in /var/tmp – /tmp is a
tmpfs too small for the SDK on trixie. PostgreSQL from the module, one
sandboxed unit on port 5000, admin user created by the app from a
generated secret, mail account credentials encrypted with a per-instance
key. ~@resources stays allowed in the unit: CoreCLR fails to start without it.

Tested: check-app.sh green (lint, template files, dev container twice,
second run changed=1); login as admin with the password from
settings.env (302 to the forced first password change); update path
2609.1 -> 2610.1 in the dev container, smoke test green afterwards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtgjuBCL7QGuUvdpXm41EC
2026-10-17 01:52:43 +02:00
.forgejo/workflows Add Mail Archiver app 2026-10-17 01:52:43 +02:00
.vibe Add Mail Archiver app 2026-10-17 01:52:43 +02:00
files Add Mail Archiver app 2026-10-17 01:52:43 +02:00
handlers Add Mail Archiver app 2026-10-17 01:52:43 +02:00
tasks Add Mail Archiver app 2026-10-17 01:52:43 +02:00
templates Add Mail Archiver app 2026-10-17 01:52:43 +02:00
tests Add Mail Archiver app 2026-10-17 01:52:43 +02:00
.clinerules Add Mail Archiver app 2026-10-17 01:52:43 +02:00
.cursorrules Add Mail Archiver app 2026-10-17 01:52:43 +02:00
.windsurfrules Add Mail Archiver app 2026-10-17 01:52:43 +02:00
AGENTS.md Add Mail Archiver app 2026-10-17 01:52:43 +02:00
CHANGELOG.md Add Mail Archiver app 2026-10-17 01:52:43 +02:00
CLAUDE.md Add Mail Archiver app 2026-10-17 01:52:43 +02:00
GEMINI.md Add Mail Archiver app 2026-10-17 01:52:43 +02:00
iac.json Add Mail Archiver app 2026-10-17 01:52:43 +02:00
README.md Add Mail Archiver app 2026-10-17 01:52:43 +02:00

iac-mail-archiver

Mail Archiver archiviert E-Mails aus IMAP-, Microsoft-365- und Gmail-Konten, macht sie durchsuchbar und exportiert sie wieder (EML, MBox, Wiederherstellung in ein Postfach). Nativ auf Debian 13 als LXC oder VM auf Proxmox VE. Teil von iac.

Installation (auf der Proxmox-Node)

bash -c "$(curl -fsSL https://iac.heyer.systems/mail-archiver/ct.sh)"   # LXC
bash -c "$(curl -fsSL https://iac.heyer.systems/mail-archiver/vm.sh)"   # VM

Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf https://iac.heyer.systems/apps/mail-archiver/.

Anmeldung und Zugriff

  • Weboberfläche: http://<ip>:5000/, von überall erreichbar (Port 5000/tcp in der Firewall offen). Kein TLS – für den Zugriff von außen gehört ein Reverse Proxy davor.
  • Benutzer admin, Passwort im Gast: grep mail_archiver_admin_password /etc/iac/settings.env. Mail Archiver legt den Benutzer beim ersten Start an und verlangt bei der ersten Anmeldung ein neues Passwort; danach gilt nur noch das neue, update ändert es nicht.

Aufbau

  • Upstream veröffentlicht keine Binärdateien. Die Installation holt den Quellcode des GitHub-Release-Tags, prüft ihn gegen den Commit, den GitHub für den Tag meldet, und baut ihn mit dem .NET-SDK (SHA-512-geprüft von Microsoft) als eigenständige Anwendung inklusive Laufzeit. Das SDK liegt nur während des Builds in /var/tmp; die NuGet-Pakete kommen beim Build von nuget.org.
  • Jede Version liegt in /opt/mail-archiver/releases/mail-archiver-<version>, /opt/mail-archiver/current zeigt auf die aktive. Alte Versionen bleiben für ein Zurückwechseln liegen und können gelöscht werden.
  • Datenbank: PostgreSQL aus Debian (Modul postgresql), Datenbank und Benutzer mailarchiver. Die archivierten Mails samt Anhängen liegen dort – die Datenbank ist das, was gesichert werden muss.
  • Konfiguration: /etc/mail-archiver/mail-archiver.env (von iac verwaltet). Eigene Einstellungen in /etc/mail-archiver/local.env im selben Format, z. B. MailSync__IntervalMinutes=30 (alle Schlüssel: Setup.md), danach systemctl restart mail-archiver.
  • Die Zugangsdaten der Mailkonten werden mit einem pro Instanz erzeugten Schlüssel (mail_archiver_credential_key in /etc/iac/settings.env) verschlüsselt gespeichert. Ohne diesen Schlüssel sind sie nach einer Wiederherstellung der Datenbank nicht mehr lesbar – mit sichern.
  • Daten: /var/lib/mail-archiver (Uploads, Exporte, Data-Protection-Schlüssel); Dateien für den lokalen Import nach /var/lib/mail-archiver/imports.

Update (im Gast)

update

Eine neue Version wird aus dem Quellcode gebaut (einige Minuten, rund 2 GB RAM und 2 GB freier Platz in /var/tmp). Das Datenbankschema migriert Mail Archiver beim Start selbst. Die .NET-Laufzeit steckt in der jeweiligen Version und wird mit der nächsten Mail-Archiver-Version aktualisiert.

Selbsttest (im Gast)

bash /var/lib/iac/src/core/bin/iac-smoke