69 lines
2.8 KiB
Markdown
69 lines
2.8 KiB
Markdown
# 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).
|