# Infrastructure & Operations

## 🏗️ Konsolidierte Architektur & Web-Anwendungen

Um die Wartbarkeit zu erhöhen, wurden diverse Einzeltools (B2B Marketing Assistant, Market Intelligence, GTM Architect) in eine konsolidierte Docker-Architektur überführt.

### Architektur im Überblick

Die Lösung basiert auf einem zentralen **Nginx-Gateway** (`gateway_proxy`), das alle Anfragen auf Port **8090** entgegennimmt und an die entsprechenden Container weiterleitet.

*   **Zentraler & Sicherer Zugriff:** Nur ein Port muss extern freigegeben werden.
*   **Einheitliche Auth:** Basic Auth schützt alle internen Tools.
*   **Routing-Tabelle:**
    *   `/` -> Dashboard
    *   `/ce/` -> Company Explorer
    *   `/lead/` -> Lead Engine
    *   `/market/` -> Market Intelligence
    *   ... (siehe `readme.md` für vollständige Liste)

### Microservice-Pattern
Viele der neuen Apps (GTM Architect, Market Intel) nutzen ein "Self-Contained" Pattern:
*   **Frontend:** Vite/React (gebaut im Dockerfile).
*   **Backend:** Node.js Bridge (`server.cjs`), die Python-Skripte orchestriert.
*   **Vorteil:** Ein einziger Container pro Tool, der sowohl UI als auch Logik bereitstellt.

---

## 🌐 DNS & Connectivity (DuckDNS)

Um eine stabile Erreichbarkeit der Dienste auch bei wechselnden IPs (DynDNS) zu gewährleisten, wurde eine Docker-basierte Lösung implementiert.

*   **Service:** `duckdns` (LinuxServer.io Container).
*   **Funktion:** Aktualisiert die Domain `floke-ai.duckdns.org` alle 5 Minuten mit der aktuellen öffentlichen IP.
*   **Monitoring:** Ein Sidecar-Container `dns-monitor` prüft die Auflösung und warnt bei Fehlern.

---

## 📂 Daten-Persistenz (Volumes)

Um Datenverlust zu vermeiden und Dateisystem-Berechtigungskonflikte zu umgehen, nutzen alle Dienste **benannte Docker-Volumes**.

| Volume Name | Dienst / Inhalt |
| :--- | :--- |
| `explorer_db_data` | Company Explorer (SQLite Datenbank) |
| `connector_db_data` | Connector Queue (Eingehende CRM Events) |
| `lead_engine_data` | Lead Engine (State & Persistence) |
| `gtm_architect_data` | GTM Strategien (Projekte) |
| `b2b_marketing_data` | B2B Marketing Assistant Analysen |
| `content_engine_data` | Content Engine Projekt-Entwürfe |
| `market_intel_data` | Market Intelligence Projekte |
| `competitor_analysis_data` | Competitor Analysis Berichte |
| `transcription_uploads` | Meeting Assistant (Audio-Uploads) |

---

## 🛠️ Port-Mapping (Übersicht)

Die Dienste kommunizieren intern über den Standard-Port des jeweiligen Frameworks (meist 8000, 3000 oder 3005).

| Host-Port | Ziel-Dienst | Routing |
| :--- | :--- | :--- |
| **8090** | `gateway_proxy` | `/` |
| **8000** | `company-explorer` | `/ce/` |
| **8501** | `lead-engine` | `/lead/` |
| **3005** | `gtm-architect` | `/gtm/` |
| **...** | ... | ... |

Siehe auch: [DuckDNS Setup](./duckdns_setup.md) (falls vorhanden).
