feat: initial ImapSync Manager setup
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
# 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/
|
||||
```
|
||||
Reference in New Issue
Block a user