Initial Email-Forwarder scaffold

This commit is contained in:
DonVoo 2026-07-05 17:58:25 +02:00
commit 91e52aecd0
22 changed files with 1007 additions and 0 deletions

59
INSTALL.md Normal file
View file

@ -0,0 +1,59 @@
# Email-Forwarder — bauen & benutzen
## 1. Bauen
```sh
./compile.sh
```
Holt htmx ins `frontend-js/dist`, macht `go mod tidy` und baut ein statisches
Binary für Linux **und** Windows (`emailforwarder` / `emailforwarder.exe`).
## 2. Konfig
```sh
cp config.json.example config.json
```
`config.json` (bleibt lokal, ist ge-`.gitignore`-t) setzt nur App-Sachen:
Bind/Port, Admin-Login, DB-Pfad, mbox-Wurzel und das **Forward-SMTP** (nur fürs
manuelle Weiterleiten aus dem Viewer). Die **Umzugs-Konten** legst du im Browser
an, nicht hier.
## 3. Starten (Web)
```sh
./emailforwarder # lauscht auf 127.0.0.1:8087
```
Browser auf `http://127.0.0.1:8087`, mit Admin-Login aus `config.json`.
Oberfläche im Outlook-2013-Look: Reiter **Postfächer** (Konten anlegen: Quelle
alt → Ziel neu, Sicherheits-Modus `tls`/`starttls`/`none`, „Test" prüft beide
Logins), Reiter **Umzug** (starten + Fortschritt), Reiter **Betrachten**
(lokale mbox durchsehen, einzeln weiterleiten).
## 4. Starten (CLI — Cutover)
Ohne Web, z. B. als Cronjob oder Dauerlauf im Umzugsfenster:
```sh
./emailforwarder --run all # einmalig alle Konten (Delta)
./emailforwarder --run dr-gold --watch # ein Konto, Delta-Schleife bis Stop
```
Dank Message-ID-Cache kopiert jeder Lauf nur Neues — beliebig oft wiederholbar
ohne Dubletten. Für den Dauerlauf reicht `nohup`/systemd/Aufgabenplanung.
## 5. Sicherheit
Tool hält fremde IMAP-Passwörter und kann Mails senden → Default bind
`127.0.0.1`. Falls remote nötig: hinter Caddy + `/vadmin`-Mail-2FA. `config.json`
und `*.db` nie committen.
## 6. Reihenfolge bei einem echten Umzug
1. Ziel-Postfächer beim neuen Hoster anlegen (`archiv-…`, `temp-…`).
2. Konten im Browser eintragen, „Test" grün.
3. `--run` laufen lassen, im **Betrachten**-Reiter / mbox stichprobenartig prüfen.
4. Während der Umstellung `--watch` für das Delta laufen lassen.
5. Domain portieren; danach zeigt der neue Hoster auf die Zielpostfächer.