95 lines
2.6 KiB
Markdown
95 lines
2.6 KiB
Markdown
# ImapSync Manager
|
||
|
||
Docker-basiertes System für IMAP-E-Mail-Migrationen mit Web-GUI.
|
||
|
||
## Features
|
||
|
||
- **Web-GUI** – Dashboard, Job-Verwaltung, Log-Viewer, Statistiken
|
||
- **Authentifizierung** – MD5-Passwörter in SQLite, JWT-Token
|
||
- **Rollensystem** – Admin / Operator / Viewer
|
||
- **Job-Scheduler** – Manuell oder per Cron-Zeitplan
|
||
- **Auftragsverwalter (Worker)** – Führt imapsync-Jobs sequenziell aus
|
||
- **Log-Archiv** – Vollständige imapsync-Logs pro Ausführung
|
||
|
||
## Schnellstart
|
||
|
||
```bash
|
||
# Starten
|
||
docker compose up -d
|
||
|
||
# Logs verfolgen
|
||
docker compose logs -f
|
||
|
||
# Zugriff
|
||
http://localhost:8080
|
||
```
|
||
|
||
**Standard-Login:** `admin` / `admin`
|
||
→ Passwort sofort nach dem ersten Login ändern!
|
||
|
||
## Verzeichnisstruktur
|
||
|
||
```
|
||
imapsync-docker/
|
||
├── docker-compose.yml
|
||
├── backend/ ← FastAPI + Web-GUI
|
||
│ ├── Dockerfile
|
||
│ ├── main.py
|
||
│ ├── requirements.txt
|
||
│ └── static/
|
||
│ └── index.html
|
||
├── worker/ ← imapsync-Ausführung
|
||
│ ├── Dockerfile
|
||
│ └── worker.py
|
||
└── data/ ← Persistente Daten (auto-erstellt)
|
||
├── imapsync.db ← SQLite-Datenbank
|
||
└── logs/ ← imapsync-Logdateien
|
||
```
|
||
|
||
## Sicherheit
|
||
|
||
- Passwörter werden als MD5-Hash in SQLite gespeichert
|
||
- JWT-Token läuft nach 12h ab
|
||
- SECRET_KEY in docker-compose.yml anpassen!
|
||
|
||
## Cron-Beispiele
|
||
|
||
| Ausdruck | Bedeutung |
|
||
|---------------|-------------------------|
|
||
| `0 2 * * *` | Täglich um 02:00 Uhr |
|
||
| `0 */6 * * *` | Alle 6 Stunden |
|
||
| `0 2 * * 0` | Wöchentlich, So 02:00 |
|
||
| `30 1 * * 1-5`| Mo-Fr um 01:30 Uhr |
|
||
|
||
## Rollen
|
||
|
||
| Rolle | Benutzer | Jobs | Start/Stop | Logs |
|
||
|----------|----------|------|-----------|------|
|
||
| admin | ✅ | ✅ | ✅ | ✅ |
|
||
| operator | ✗ | ✅ | ✅ | ✅ |
|
||
| viewer | ✗ | ✗ | ✗ | ✅ |
|
||
|
||
## Umgebungsvariablen
|
||
|
||
### Web-Container
|
||
| Variable | Standard | Beschreibung |
|
||
|--------------|--------------------|-----------------------|
|
||
| DB_PATH | /data/imapsync.db | Pfad zur SQLite-DB |
|
||
| LOG_DIR | /data/logs | Log-Verzeichnis |
|
||
| SECRET_KEY | (Pflicht ändern!) | JWT-Signaturschlüssel |
|
||
|
||
### Worker-Container
|
||
| Variable | Standard | Beschreibung |
|
||
|---------------|----------|------------------------------|
|
||
| POLL_INTERVAL | 15 | Sekunden zwischen DB-Abfragen |
|
||
|
||
## Datensicherung
|
||
|
||
```bash
|
||
# DB sichern
|
||
cp data/imapsync.db data/imapsync.db.bak
|
||
|
||
# Komplettes Backup
|
||
tar -czf imapsync-backup-$(date +%Y%m%d).tar.gz data/
|
||
```
|