diff --git a/ARCHITEKTUR_GCP_SETUP.md b/ARCHITEKTUR_GCP_SETUP.md
new file mode 100644
index 00000000..5fb3611b
--- /dev/null
+++ b/ARCHITEKTUR_GCP_SETUP.md
@@ -0,0 +1,79 @@
+# Technisches Zielbild: GTM-Engine & Google Cloud Integration
+
+Dieses Diagramm visualisiert den geplanten Datenfluss und die Architektur für den sicheren Betrieb der GTM-Engine (Growth-Marketing) in der Unternehmensumgebung.
+
+## Kern-Prinzipien
+1. **Trennung von Identität & Daten:** Nutzung von Unternehmens-Identitäten (Managed Google ID) statt privater Konten.
+2. **Datensparsamkeit:** KI-Verarbeitung erfolgt primär auf anonymen Firmendaten (B2B), nicht auf Personendaten.
+3. **Lokale Hoheit:** Die Business-Logik (Python/Docker) läuft kontrolliert lokal oder im Intranet, nicht "in der Cloud".
+
+## Architektur-Übersicht
+
+```mermaid
+graph TD
+ %% Subgraph: Corporate Environment (Wackler/RoboPlanet)
+ subgraph Corporate_IT ["🏢 Wackler / RoboPlanet Umgebung"]
+
+ subgraph User_Layer ["🧑💻 User & Identity"]
+ User[("Christian (User)")]
+ CorpID["Corporate Google ID
(@roboplanet.de / @wackler-group.de)"]
+ User --> CorpID
+ end
+
+ subgraph Local_Execution ["⚙️ Execution Layer (Local/Server)"]
+ Docker["🐳 Docker Container
(GTM-Engine / Python)"]
+
+ subgraph Data_Handling ["🛡️ Daten-Verarbeitung"]
+ RawData[("Rohdaten
(Websites, Listen)")]
+ Anonymizer["⚙️ Pre-Processing
(Filterung PII / Personendaten)"]
+ end
+
+ ResultStorage[("Ergebnisse
(Notion / CRM / Excel)")]
+ end
+ end
+
+ %% Subgraph: Google Cloud Platform (Managed)
+ subgraph Google_Cloud ["☁️ Google Cloud Platform (Enterprise Tenant)"]
+
+ subgraph IAM_Security ["🔐 Security & Billing"]
+ GCP_Project["GCP Projekt
(z.B. 'gtm-engine-prod')"]
+ ServiceAccount["🤖 Service Account
(Technischer User für API)"]
+ Billing["💳 Corporate Billing
(Zentrale Abrechnung)"]
+ end
+
+ subgraph AI_Services ["🧠 AI Services (Vertex AI / Gemini)"]
+ GeminiAPI["⚡ Gemini API
(Enterprise Mode: Zero Logging)"]
+ end
+ end
+
+ %% Data Flow Connections
+ CorpID -.->|"Verwaltet"| GCP_Project
+ Docker -->|"Nutzt API Key"| ServiceAccount
+ ServiceAccount -->|"Authentifiziert"| GeminiAPI
+
+ RawData --> Anonymizer
+ Anonymizer -->|"1. Anonymisierter Prompt
(Nur Firmendaten)"| Docker
+ Docker -->|"2. API Request (HTTPS/TLS)"| GeminiAPI
+ GeminiAPI -->|"3. JSON Response
(Strukturierte Daten)"| Docker
+ Docker -->|"4. Speicherung"| ResultStorage
+
+ %% Styling
+ style Corporate_IT fill:#f9f9f9,stroke:#333,stroke-width:2px
+ style Google_Cloud fill:#e8f0fe,stroke:#4285f4,stroke-width:2px
+ style Anonymizer fill:#fff3e0,stroke:#f57c00,stroke-dasharray: 5 5
+ style GeminiAPI fill:#e8f0fe,stroke:#4285f4,stroke-width:4px
+```
+
+## Erläuterung für die IT
+
+1. **Identity (IAM):**
+ * Es wird kein "Schatten-Account" genutzt. Christian authentifiziert sich mit seiner bestehenden Corporate Identity (`@roboplanet`).
+ * Für die automatisierte Ausführung (Skripte) wird später ein **Service Account** beantragt, dessen Schlüssel (JSON Key) sicher im lokalen Container verwaltet wird (Secrets Management).
+
+2. **Google Cloud Projekt:**
+ * Wir benötigen ein dediziertes GCP-Projekt (z.B. `rp-marketing-intel`), das im Rechnungskreis der Firma hängt.
+ * Vorteil: Volle Transparenz über Kosten und Nutzung im Admin-Dashboard der IT.
+
+3. **Datenschutz (DSGVO):**
+ * **Input:** Wir senden Webseiten-Texte und Firmennamen an die API. Wir senden *keine* Mitarbeiterlisten oder Kunden-Adressdaten zur Analyse.
+ * **Enterprise-Garantie:** Durch Nutzung der Enterprise-Verträge (via GCP) ist vertraglich geregelt, dass Google die Daten **nicht** zum Training eigener Modelle verwendet (anders als bei der kostenlosen ChatGPT/Gemini-Consumer-Version).
diff --git a/dashboard/index.html b/dashboard/index.html
index 8a581be6..f8be8b15 100644
--- a/dashboard/index.html
+++ b/dashboard/index.html
@@ -191,7 +191,7 @@
Zugriff auf die lokale Lead Engine.
- Starten → + Starten → diff --git a/nginx-proxy.conf b/nginx-proxy.conf index 792dddf5..572f4726 100644 --- a/nginx-proxy.conf +++ b/nginx-proxy.conf @@ -133,5 +133,21 @@ http { proxy_connect_timeout 1800s; proxy_send_timeout 1800s; } + + location /lead/ { + # Lead Engine (TradingTwins) + # Proxying external service on host + proxy_pass http://192.168.178.6:8501/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + # Websocket support for Streamlit + proxy_http_version 1.1; + + # Explicit timeouts + proxy_read_timeout 86400; # Long timeout for stream + } } }