6 Installation
Ralf Warmuth edited this page 2025-11-20 22:58:19 +01:00

Installation

Voraussetzungen

  • Python 3.8 oder höher
  • pip (Python Package Manager)

Setup

1. Repository klonen

git clone <repository-url>
cd mail-filter

2. (Optional) Python Virtual Environment erstellen

Empfohlen: Verwende ein Python Virtual Environment, um Abhängigkeiten isoliert zu installieren.

Linux/Mac:

# Virtual Environment erstellen
python3 -m venv venv

# Virtual Environment aktivieren
source venv/bin/activate

Windows:

# Virtual Environment erstellen
python -m venv venv

# Virtual Environment aktivieren
venv\Scripts\activate

Nach der Aktivierung erscheint (venv) in deiner Kommandozeile.

Hinweis: Um das Virtual Environment zu deaktivieren, führe deactivate aus.

3. Abhängigkeiten installieren

pip install -r requirements.txt

Hinweis: Wenn du ein Virtual Environment verwendest, stelle sicher, dass es aktiviert ist, bevor du die Abhängigkeiten installierst.

4. Konfiguration einrichten

Es gibt zwei Möglichkeiten, die Konfiguration einzurichten:

Option A: Konfiguration im Code-Repo (für Entwicklung/Test)

Kopiere die Beispiel-Konfiguration und passe sie an:

cp config/config.yaml.example config/config.yaml
cp filters/work_rules.yaml.example filters/work_rules.yaml

Option B: Getrenntes Config-Repo (für Produktion empfohlen)

Für Produktionsumgebungen wird empfohlen, die Konfiguration in einem separaten, privaten Repository zu verwalten:

# Separates privates Config-Repo klonen
sudo mkdir -p /opt
sudo git clone <config-repo-url> /opt/mail-filter-config

# Credentials-Verzeichnis erstellen
sudo mkdir -p /opt/mail-filter-config/config/credentials

# Credentials-Dateien manuell erstellen (siehe Schritt 5)

Vorteile:

  • Trennung von Code und Konfiguration
  • Private Verwaltung sensibler Daten
  • Einfache Aktualisierung der Konfiguration ohne Code-Änderungen

Siehe auch: Konfiguration - Getrenntes Config-Repo

5. Credentials erstellen

Erstelle Credentials-Dateien für deine E-Mail-Accounts:

# Beispiel für einen Account
cat > config/credentials/work.cred << EOF
username=work@example.com
password=dein-passwort
EOF

# Wichtig: Setze Dateiberechtigungen
chmod 600 config/credentials/*.cred

6. Konfiguration anpassen

Bearbeite config/config.yaml und passe die Einstellungen an:

7. Konfiguration validieren

Prüfe, ob die Konfiguration korrekt ist:

Standard-Konfiguration:

python main.py validate-config

Externe Konfiguration (getrenntes Config-Repo):

python main.py --config /opt/mail-filter-config/config/config.yaml validate-config

8. Verbindung testen

Teste die Verbindung zu deinem E-Mail-Account:

Standard-Konfiguration:

python main.py test-connection <account-name>

Externe Konfiguration:

python main.py --config /opt/mail-filter-config/config/config.yaml test-connection <account-name>

9. Ersten Check durchführen

Führe einen ersten Test-Check durch:

Standard-Konfiguration:

python main.py check --account <account-name> --dry-run

Externe Konfiguration:

python main.py --config /opt/mail-filter-config/config/config.yaml check --account <account-name> --dry-run

10. (Optional) Wrapper-Script installieren

Empfohlen: Installiere den Wrapper-Script, um das Tool ohne manuelle venv-Aktivierung zu verwenden und für systemd-Services vorzubereiten.

System-weite Installation:

sudo cp mail-filter /usr/local/bin/mail-filter
sudo chmod +x /usr/local/bin/mail-filter

Jetzt kannst du mail-filter von überall aus verwenden:

mail-filter check
mail-filter run
mail-filter test-connection work

systemd Service einrichten:

Für die Verwendung als systemd Service, siehe INSTALL_WRAPPER.md im Haupt-Repository.

Nächste Schritte