sphings-dev.de

Apps & Werkzeuge

AmberChest

App

IMAP-Postfächer als einfache .eml-Dateien sichern: nur lesend, inkrementell, mit dem Ordnerbaum des Postfachs. Desktop-App für macOS, Windows und Linux sowie Docker-Container mit derselben Oberfläche.

Repository (öffnet in neuem Tab)

Steckbrief

Sprache
TypeScript
Lizenz
AGPL-3.0
Aktuelle Version
2.1.0
Projektstart

AmberChest lädt IMAP-Postfächer herunter und legt jede Nachricht als eigene .eml-Datei im Ordnerbaum des Postfachs ab. Das Archiv ist damit mit Thunderbird, Apple Mail, Outlook und allem anderen lesbar, was RFC 5322 versteht, und bleibt ohne AmberChest nutzbar. Die Anwendung ist in TypeScript geschrieben, läuft als Desktop-App (Electron) auf macOS, Windows und Linux oder als Docker-Container mit derselben Weboberfläche und steht unter der AGPL-3.0. Bis Version 1.2.1 hieß sie Mail Archiver.

Sicherung ohne Eingriff am Server

Auf dem Server wird nichts gelöscht und nichts als gelesen markiert. Ordner werden schreibgeschützt geöffnet, Nachrichten mit BODY.PEEK abgeholt, dem IMAP-Befehl, der eine Mail liest, ohne ihr \Seen-Flag zu berühren. Gesichert wird inkrementell: Es werden nur neue Nachrichten geladen. Verschiebt man eine Mail auf dem Server in einen anderen Ordner, wird sie lokal ebenfalls verschoben, erkannt, bevor ein Byte des Inhalts abgerufen wird. Für serverseitig gelöschte Mails wählt man, ob sie behalten, nach _deleted/ verschoben oder lokal ebenfalls gelöscht werden, auf Wunsch mit endgültigem Entfernen nach N Tagen.

Funktionen

  • IMAP über SSL/TLS, STARTTLS oder unverschlüsselt, auf Wunsch mit selbstsignierten Zertifikaten. OAuth für Gmail und Microsoft 365, deren IMAP kein Passwort mehr annimmt.
  • Ordnerbaum mit Auswahl pro Konto; Sonderordner (Gesendet, Entwürfe, Papierkorb, Spam, Archiv) werden erkannt.
  • Volltextsuche über Betreff, Absender, Text und Anhangsinhalte (PDF, Word, Excel, PowerPoint, ZIP und TAR), dazu Postfach-Browser, Mail-Ansicht und Export als EML-ZIP, mbox oder PDF.
  • Anhang-Export, Rückspielen auf dasselbe Konto oder zu einem anderen Anbieter, Statistik und ein Register als index.html im Archiv.
  • Archivprüfung mit Prüfsummen, Umziehen eines Archivs auf eine andere Instanz, optionale Verschlüsselung des Archivs und Gmail-Duplikate, die nur einmal gespeichert werden.
  • Benachrichtigungen an jede Adresse, die einen POST annimmt (ntfy, Gotify, Discord, Apprise), und ein Wächter für den Speicherplatz.
  • KI-Zugriff über MCP mit Schaltern je Berechtigungsgruppe, standardmäßig aus.
  • Home Assistant über MQTT-Discovery; dazu zwei eigene Begleitprojekte, die Integration und das Add-on.

Desktop oder Container

Beide führen dieselbe Maschinerie aus. Der Container hat zusätzlich einen Zeitplaner (Cron), sichert also auch, wenn der Rechner aus ist, ist von anderen Geräten erreichbar und verlangt eine Anmeldung. Die Desktop-App fängt die OAuth-Rückleitung selbst ab und kann Nachrichten im Mailprogramm öffnen. Verbreitet ist beides zusammen: Der Container erledigt die Nacht, die Desktop-App verbindet sich damit, wenn man etwas nachsehen will.

services:
  amberchest:
    image: ghcr.io/sphings79/amberchest:latest
    ports:
      - "8484:8484"
    volumes:
      - ./config:/config
      - /mnt/backup/mail:/archive
    environment:
      AMBERCHEST_MASTER_PASSWORD: dein-master-passwort
      AMBERCHEST_UI_PASSWORD: passwort-für-die-weboberfläche
      AMBERCHEST_CRON: "0 3 * * *"
      TZ: Europe/Berlin
    restart: unless-stopped

Sicherheit der Zugangsdaten

Alle Zugangsdaten verschlüsselt ein Master-Passwort mit scrypt und AES-256-GCM. Die Desktop-Versionen für macOS sind ad-hoc signiert, aber nicht beglaubigt; das erste Öffnen muss unter „Systemeinstellungen → Datenschutz & Sicherheit“ mit „Dennoch öffnen“ erlaubt werden. Der Windows-Build ist unsigniert und löst eine SmartScreen-Warnung aus.

Zusammenspiel mit Home Assistant

Zu AmberChest gehören zwei weitere Repositories: die Home-Assistant-Integration (HACS, ein Gerät je Postfach, Lovelace-Karte, ohne MQTT-Broker) und das Add-on, das AmberChest unter Home Assistant OS betreibt und per Ingress in der Seitenleiste zeigt.