3 Erster Start
julian edited this page 2026-11-04 21:41:54 +01:00

Erster Start

Beim ersten Start richtet sich die Anwendung selbst ein: fehlende Laufzeit wird nachinstalliert, eine .env erzeugt, die Datenbank migriert und ein lokaler Server gestartet. Ein Administratorpasswort ist noch nicht gesetzt.

Ablauf

  1. start.bat (Windows) bzw. ./start.sh (Linux) ausführen.
  2. Die Ausgabe nennt die tatsächliche URL, z. B. http://127.0.0.1:8000.
  3. Der Browser öffnet sich, sobald der Server lauscht.
  4. Die Oberfläche zeigt die Ersteinrichtung, solange kein Administratorpasswort gesetzt ist.
  5. Passwort festlegen (mindestens 12 Zeichen); danach erscheint die Anmeldung.

Ein Standardpasswort existiert nicht. Ohne gesetztes Passwort ist keine Anmeldung möglich; die Anwendung startet in diesem Zustand nur die Ersteinrichtung.

Administratorpasswort setzen

In der Oberfläche:

  • Benutzername (Vorgabe admin) und Passwort zweimal eingeben.
  • Mindestlänge 12 Zeichen, Bestätigung ist Pflicht.
  • Nach dem Speichern wird der Argon2id-Hash in die .env geschrieben (ADMIN_PASSWORD_HASH) und ist sofort aktiv.

Gespeichert wird nur der Hash, nie das Passwort. Neu setzen lässt es sich später über die Kommandozeile:

cd backend
..\runtime\python\python.exe -m app.cli set-password
cd backend
../runtime/python/bin/python3 -m app.cli set-password

Die Eingabe erfolgt verdeckt. Ein vergessenes Passwort ist damit wiederherstellbar, sofern Zugriff auf den Programmordner besteht.

Portauswahl

Der Start wählt den Port in dieser Reihenfolge:

  1. APP_PORT aus der .env, falls gesetzt.
  2. Port aus APP_BASE_URL.
  3. Port 8000.

Ist der Port belegt oder durch eine Windows-Richtlinie gesperrt, erscheint beim Binden WinError 10013. Der Start prüft dann die folgenden Ports (bis 8025):

[Hinweis] Port 8000 ist belegt oder gesperrt — verwende 8001.
  URL:               http://127.0.0.1:8001
  OAuth-Redirect:    http://127.0.0.1:8001/api/v1/oauth/callback

Für die Microsoft-Anmeldung muss die in Entra registrierte Redirect-URI zum tatsächlichen Port passen. Die Anwendung ändert die OAuth-Konfiguration nicht automatisch. Für einen festen Port:

APP_PORT=8001
APP_BASE_URL=http://127.0.0.1:8001
Exit-Code Bedeutung
0 beendet, kein Fehler
1 Start nicht möglich (fehlende Laufzeit, Setup nötig)
2 Konfigurationsfehler
3 kein freier Port gefunden
4 zweite Instanz auf demselben Datenverzeichnis

Eine zweite Instanz wird über data/queue.lock erkannt. Pro Datenverzeichnis ist genau eine Instanz zulässig.

Erste Schritte in der Oberfläche

1. Quelle vorbereiten

Für Microsoft 365: Tenant anlegen (Tenant-ID, Client-ID, Redirect-URI), Konto mit der Postfach-UPN anlegen, „Mit Microsoft anmelden“ ausführen und zustimmen — siehe Microsoft 365.

Für klassische IMAP-Postfächer: unter „IMAP-Quellserver“ einen Server anlegen (Host, Port, TLS, Passwort) und die Verbindung testen — siehe IMAP-Quellen.

2. Zielserver anlegen

Unter „Zielserver“ Host, Port (in der Regel 993), TLS-Modus und optional ein Standardpasswort hinterlegen. Das Passwort wird verschlüsselt gespeichert und nie wieder ausgelesen.

3. Ordner prüfen

Im Assistenten die Quelle verbinden und die Postfachvorschau öffnen. Sie zeigt den Ordnerbaum mit Nachrichtenzahlen, ausschließlich lesend — siehe Postfachvorschau.

4. Migration anlegen und starten

Der Assistent führt durch Quelle, Konto, Ordnerauswahl, Ziel und Zusammenfassung. Erst der letzte Schritt startet die Migration; sie wird in die Warteschlange eingereiht. Siehe Migration erstellen.

5. Verlauf prüfen

Unter „Migrationen“ und „Warteschlange“ stehen Status, Läufe, Protokolle und Abbruchmöglichkeiten. Siehe Migration überwachen.

Konfigurationsdatei

Einstellung Bedeutung Standard
APP_BASE_URL Basis-URL der Oberfläche http://127.0.0.1:8000
APP_PORT fester Port beim Start nicht gesetzt
DATA_DIR Datenverzeichnis, relativ data
MAX_PARALLEL_MIGRATIONS gleichzeitige Migrationen 2
QUEUE_POLL_SECONDS Abfrageintervall der Warteschlange 2
RUN_MAX_SECONDS maximale Laufzeit, 0 = unbegrenzt 0
RUN_LOG_MAX_BYTES Obergrenze je Protokolldatei 5000000
SESSION_TTL_SECONDS Gültigkeit der Sitzung 28800
IMAP_TIMEOUT_SECONDS Zeitlimit für Verbindungstests 15

Nach Änderungen an der .env die Anwendung neu starten.

Nächster Schritt