diff --git a/Generating b/ARCHIVE_vor_migration/Generating
similarity index 100%
rename from Generating
rename to ARCHIVE_vor_migration/Generating
diff --git a/google_sheet_handler.txt b/ARCHIVE_vor_migration/google_sheet_handler.txt
similarity index 100%
rename from google_sheet_handler.txt
rename to ARCHIVE_vor_migration/google_sheet_handler.txt
diff --git a/alt_roboplanet-gtm-strategy-2026-01-14.md b/b2b-marketing-assistant/docs/alt_roboplanet-gtm-strategy-2026-01-14.md
similarity index 100%
rename from alt_roboplanet-gtm-strategy-2026-01-14.md
rename to b2b-marketing-assistant/docs/alt_roboplanet-gtm-strategy-2026-01-14.md
diff --git a/b2b-marketing-analysis_Roboplanet-2.md b/b2b-marketing-assistant/docs/b2b-marketing-analysis_Roboplanet-2.md
similarity index 100%
rename from b2b-marketing-analysis_Roboplanet-2.md
rename to b2b-marketing-assistant/docs/b2b-marketing-analysis_Roboplanet-2.md
diff --git a/b2b-marketing-analysis_Roboplanet.md b/b2b-marketing-assistant/docs/b2b-marketing-analysis_Roboplanet.md
similarity index 100%
rename from b2b-marketing-analysis_Roboplanet.md
rename to b2b-marketing-assistant/docs/b2b-marketing-analysis_Roboplanet.md
diff --git a/neu_roboplanet-gtm-strategy-2026-01-14.md b/b2b-marketing-assistant/docs/neu_roboplanet-gtm-strategy-2026-01-14.md
similarity index 100%
rename from neu_roboplanet-gtm-strategy-2026-01-14.md
rename to b2b-marketing-assistant/docs/neu_roboplanet-gtm-strategy-2026-01-14.md
diff --git a/roboplanet-gtm-strategy-2026-01-03 (1).md b/b2b-marketing-assistant/docs/roboplanet-gtm-strategy-2026-01-03 (1).md
similarity index 100%
rename from roboplanet-gtm-strategy-2026-01-03 (1).md
rename to b2b-marketing-assistant/docs/roboplanet-gtm-strategy-2026-01-03 (1).md
diff --git a/roboplanet-gtm-strategy-2026-01-03 (2).md b/b2b-marketing-assistant/docs/roboplanet-gtm-strategy-2026-01-03 (2).md
similarity index 100%
rename from roboplanet-gtm-strategy-2026-01-03 (2).md
rename to b2b-marketing-assistant/docs/roboplanet-gtm-strategy-2026-01-03 (2).md
diff --git a/roboplanet-gtm-strategy-2026-01-03.md b/b2b-marketing-assistant/docs/roboplanet-gtm-strategy-2026-01-03.md
similarity index 100%
rename from roboplanet-gtm-strategy-2026-01-03.md
rename to b2b-marketing-assistant/docs/roboplanet-gtm-strategy-2026-01-03.md
diff --git a/roboplanet-gtm-strategy-v3.md b/b2b-marketing-assistant/docs/roboplanet-gtm-strategy-v3.md
similarity index 100%
rename from roboplanet-gtm-strategy-v3.md
rename to b2b-marketing-assistant/docs/roboplanet-gtm-strategy-v3.md
diff --git a/roboplanet_b2b_analyse.md b/b2b-marketing-assistant/docs/roboplanet_b2b_analyse.md
similarity index 100%
rename from roboplanet_b2b_analyse.md
rename to b2b-marketing-assistant/docs/roboplanet_b2b_analyse.md
diff --git a/v3_roboplanet-gtm-strategy-2026-01-20.md b/b2b-marketing-assistant/docs/v3_roboplanet-gtm-strategy-2026-01-20.md
similarity index 100%
rename from v3_roboplanet-gtm-strategy-2026-01-20.md
rename to b2b-marketing-assistant/docs/v3_roboplanet-gtm-strategy-2026-01-20.md
diff --git a/v4_roboplanet-gtm-strategy-2026-01-20.md b/b2b-marketing-assistant/docs/v4_roboplanet-gtm-strategy-2026-01-20.md
similarity index 100%
rename from v4_roboplanet-gtm-strategy-2026-01-20.md
rename to b2b-marketing-assistant/docs/v4_roboplanet-gtm-strategy-2026-01-20.md
diff --git a/company-explorer/MIGRATION_PLAN.md b/company-explorer/MIGRATION_PLAN.md
deleted file mode 100644
index 69f554c9..00000000
--- a/company-explorer/MIGRATION_PLAN.md
+++ /dev/null
@@ -1,178 +0,0 @@
-# Migrations-Plan: Legacy GSheets -> Company Explorer (Robotics Edition v0.8.5)
-
-**Kontext:** Neuanfang für die Branche **Robotik & Facility Management**.
-**Ziel:** Ablösung von Google Sheets/CLI durch eine Web-App ("Company Explorer") mit SQLite-Backend.
-
-## 1. Strategische Neuausrichtung
-
-| Bereich | Alt (Legacy) | Neu (Robotics Edition) |
-| :--- | :--- | :--- |
-| **Daten-Basis** | Google Sheets | **SQLite** (Lokal, performant, filterbar). |
-| **Ziel-Daten** | Allgemein / Kundenservice | **Quantifizierbares Potenzial** (z.B. 4500m² Fläche, 120 Betten). |
-| **Branchen** | KI-Vorschlag (Freitext) | **Strict Mode:** Mapping auf definierte Notion-Liste (z.B. "Hotellerie", "Automotive"). |
-| **Bewertung** | 0-100 Score (Vage) | **Data-Driven:** Rohwert (Scraper/Search) -> Standardisierung (Formel) -> Potenzial. |
-| **Analytics** | Techniker-ML-Modell | **Deaktiviert**. Fokus auf harte Fakten. |
-| **Operations** | D365 Sync (Broken) | **Excel-Import & Deduplizierung**. Fokus auf Matching externer Listen gegen Bestand. |
-
-## 2. Architektur & Komponenten-Mapping
-
-Das System wird in `company-explorer/` neu aufgebaut. Wir lösen Abhängigkeiten zur Root `helpers.py` auf.
-
-### A. Core Backend (`backend/`)
-
-| Komponente | Aufgabe & Neue Logik | Prio |
-| :--- | :--- | :--- |
-| **Database** | Ersetzt `GoogleSheetHandler`. Speichert Firmen & "Enrichment Blobs". | 1 |
-| **Importer** | Ersetzt `SyncManager`. Importiert Excel-Dumps (CRM) und Event-Listen. | 1 |
-| **Deduplicator** | Ersetzt `company_deduplicator.py`. **Kern-Feature:** Checkt Event-Listen gegen DB. Muss "intelligent" matchen (Name + Ort + Web). | 1 |
-| **Scraper (Base)** | Extrahiert Text von Websites. Basis für alle Analysen. | 1 |
-| **Classification Service** | **NEU (v0.7.0).** Zweistufige Logik:
1. Strict Industry Classification.
2. Metric Extraction Cascade (Web -> Wiki -> SerpAPI). | 1 |
-| **Marketing Engine** | Ersetzt `generate_marketing_text.py`. Nutzt neue `marketing_wissen_robotics.yaml`. | 3 |
-
-**Identifizierte Hauptdatei:** `company-explorer/backend/app.py`
-
-### B. Frontend (`frontend/`) - React
-
-* **View 1: Der "Explorer":** DataGrid aller Firmen. Filterbar nach "Roboter-Potential" und Status.
-* **View 2: Der "Inspector":** Detailansicht einer Firma. Zeigt gefundene Signale ("Hat SPA Bereich"). Manuelle Korrektur-Möglichkeit.
- * **Identifizierte Komponente:** `company-explorer/frontend/src/components/Inspector.tsx`
-* **View 3: "List Matcher":** Upload einer Excel-Liste -> Anzeige von Duplikaten -> Button "Neue importieren".
-* **View 4: "Settings":** Konfiguration von Branchen, Rollen und Robotik-Logik.
- * **Frontend "Settings" Komponente:** `company-explorer/frontend/src/components/RoboticsSettings.tsx`
-
-### C. Architekturmuster für die Client-Integration
-
-Um externen Diensten (wie der `lead-engine`) eine einfache und robuste Anbindung an den `company-explorer` zu ermöglichen, wurde ein standardisiertes Client-Connector-Muster implementiert.
-
-| Komponente | Aufgabe & Neue Logik |
-| :--- | :--- |
-| **`company_explorer_connector.py`** | **NEU:** Ein zentrales Python-Skript, das als "offizieller" Client-Wrapper für die API des Company Explorers dient. Es kapselt die Komplexität der asynchronen Enrichment-Prozesse. |
-| **`handle_company_workflow()`** | Die Kernfunktion des Connectors. Sie implementiert den vollständigen "Find-or-Create-and-Enrich"-Workflow:
1. **Prüfen:** Stellt fest, ob ein Unternehmen bereits existiert.
2. **Erstellen:** Legt das Unternehmen an, falls es neu ist.
3. **Anstoßen:** Startet den asynchronen `discover`-Prozess.
4. **Warten (Polling):** Überwacht den Status des Unternehmens, bis eine Website gefunden wurde.
5. **Analysieren:** Startet den asynchronen `analyze`-Prozess.
**Vorteil:** Bietet dem aufrufenden Dienst eine einfache, quasi-synchrone Schnittstelle und stellt sicher, dass die Prozessschritte in der korrekten Reihenfolge ausgeführt werden. |
-
-### D. Provisioning API (Internal)
-
-Für die nahtlose Integration mit dem SuperOffice Connector wurde ein dedizierter Endpunkt geschaffen:
-
-| Endpunkt | Methode | Zweck |
-| :--- | :--- | :--- |
-| `/api/provision/superoffice-contact` | POST | Liefert "Enrichment-Pakete" (Texte, Status) für einen gegebenen CRM-Kontakt. Greift auf `MarketingMatrix` zu. |
-
-## 3. Umgang mit Shared Code (`helpers.py` & Co.)
-
-Wir kapseln das neue Projekt vollständig ab ("Fork & Clean").
-
-* **Quelle:** `helpers.py` (Root)
-* **Ziel:** `company-explorer/backend/lib/core_utils.py`
-* **Aktion:** Wir kopieren nur relevante Teile und ergänzen sie (z.B. `safe_eval_math`, `run_serp_search`).
-
-## 4. Datenstruktur (SQLite Schema)
-
-### Tabelle `companies` (Stammdaten & Analyse)
-* `id` (PK)
-* `name` (String)
-* `website` (String)
-* `crm_id` (String, nullable - Link zum D365)
-* `industry_crm` (String - Die "erlaubte" Branche aus Notion)
-* `city` (String)
-* `country` (String - Standard: "DE" oder aus Impressum)
-* `status` (Enum: NEW, IMPORTED, ENRICHED, QUALIFIED)
-* **NEU (v0.7.0):**
- * `calculated_metric_name` (String - z.B. "Anzahl Betten")
- * `calculated_metric_value` (Float - z.B. 180)
- * `calculated_metric_unit` (String - z.B. "Betten")
- * `standardized_metric_value` (Float - z.B. 4500)
- * `standardized_metric_unit` (String - z.B. "m²")
- * `metric_source` (String - "website", "wikipedia", "serpapi")
-
-### Tabelle `signals` (Deprecated)
-* *Veraltet ab v0.7.0. Wird durch quantitative Metriken in `companies` ersetzt.*
-
-### Tabelle `contacts` (Ansprechpartner)
-* `id` (PK)
-* `account_id` (FK -> companies.id)
-* `gender`, `title`, `first_name`, `last_name`, `email`
-* `job_title` (Visitenkarte)
-* `role` (Standardisierte Rolle: "Operativer Entscheider", etc.)
-* `status` (Marketing Status)
-
-### Tabelle `industries` (Branchen-Fokus - Synced from Notion)
-* `id` (PK)
-* `notion_id` (String, Unique)
-* `name` (String - "Vertical" in Notion)
-* `description` (Text - "Definition" in Notion)
-* `metric_type` (String - "Metric Type")
-* `min_requirement` (Float - "Min. Requirement")
-* `whale_threshold` (Float - "Whale Threshold")
-* `proxy_factor` (Float - "Proxy Factor")
-* `scraper_search_term` (String - "Scraper Search Term")
-* `scraper_keywords` (Text - "Scraper Keywords")
-* `standardization_logic` (String - "Standardization Logic")
-
-### Tabelle `job_role_mappings` (Rollen-Logik)
-* `id` (PK)
-* `pattern` (String - Regex für Jobtitles)
-* `role` (String - Zielrolle)
-
-### Tabelle `marketing_matrix` (NEU v2.1)
-* **Zweck:** Speichert statische, genehmigte Marketing-Texte (Notion Sync).
-* `id` (PK)
-* `industry_id` (FK -> industries.id)
-* `role_id` (FK -> job_role_mappings.id)
-* `subject` (Text)
-* `intro` (Text)
-* `social_proof` (Text)
-
-## 7. Historie & Fixes (Jan 2026)
-
- * **[CRITICAL] v0.7.4: Service Restoration & Logic Fix (Jan 24, 2026)**
- * **[STABILITY] v0.7.3: Hardening Metric Parser & Regression Testing (Jan 23, 2026)**
- * **[STABILITY] v0.7.2: Robust Metric Parsing (Jan 23, 2026)**
- * **[STABILITY] v0.7.1: AI Robustness & UI Fixes (Jan 21, 2026)**
- * **[MAJOR] v0.7.0: Quantitative Potential Analysis (Jan 20, 2026)**
- * **[UPGRADE] v0.6.x: Notion Integration & UI Improvements**
-
-## 14. Upgrade v2.0 (Feb 18, 2026): "Lead-Fabrik" Erweiterung
-
-Dieses Upgrade transformiert den Company Explorer in das zentrale Gehirn der Lead-Generierung (Vorratskammer).
-
-### 14.1 Detaillierte Logik der neuen Datenfelder
-
-Um Gemini CLI (dem Bautrupp) die Umsetzung zu ermöglichen, hier die semantische Bedeutung der neuen Spalten:
-
-#### Tabelle `companies` (Qualitäts- & Abgleich-Metriken)
-
-* **`confidence_score` (FLOAT, 0.0 - 1.0):** Indikator für die Sicherheit der KI-Klassifizierung. `> 0.8` = Grün.
-* **`data_mismatch_score` (FLOAT, 0.0 - 1.0):** Abweichung zwischen CRM-Bestand und Web-Recherche (z.B. Umzug).
-* **`crm_name`, `crm_address`, `crm_website`, `crm_vat`:** Read-Only Snapshot aus SuperOffice zum Vergleich.
-* **Status-Flags:** `website_scrape_status` und `wiki_search_status`.
-
-#### Tabelle `industries` (Strategie-Parameter)
-
-* **`pains` / `gains`:** Strukturierte Textblöcke (getrennt durch `[Primary Product]` und `[Secondary Product]`).
-* **`ops_focus_secondary` (BOOLEAN):** Steuerung für rollenspezifische Produkt-Priorisierung.
-
----
-
-## 15. Offene Arbeitspakete (Bauleitung)
-
-Anweisungen für den "Bautrupp" (Gemini CLI).
-
-### Task 1: UI-Anpassung - Side-by-Side CRM View & Settings
-(In Arbeit / Teilweise erledigt durch Gemini CLI)
-
-### Task 2: Intelligenter CRM-Importer (Bestandsdaten)
-
-**Ziel:** Importieren der `demo_100.xlsx` in die SQLite-Datenbank.
-
-**Anforderungen:**
-1. **PLZ-Handling:** Zwingend als **String** einlesen (führende Nullen erhalten).
-2. **Normalisierung:** Website bereinigen (kein `www.`, `https://`).
-3. **Matching:** Kaskade über CRM-ID, VAT, Domain, Fuzzy Name.
-4. **Isolierung:** Nur `crm_` Spalten updaten, Golden Records unberührt lassen.
-
----
-
-## 16. Deployment-Referenz (NAS)
-* **Pfad:** `/volume1/homes/Floke/python/brancheneinstufung/company-explorer`
-* **DB:** `/app/companies_v3_fixed_2.db`
-* **Sync:** `docker exec -it company-explorer python backend/scripts/sync_notion_to_ce_enhanced.py`
diff --git a/Puma_m20_2026-01-08.md b/company-explorer/docs/Puma_m20_2026-01-08.md
similarity index 100%
rename from Puma_m20_2026-01-08.md
rename to company-explorer/docs/Puma_m20_2026-01-08.md
diff --git a/Supplyon.md b/company-explorer/docs/Supplyon.md
similarity index 100%
rename from Supplyon.md
rename to company-explorer/docs/Supplyon.md
diff --git a/case_study_djh_waldbröl.md b/company-explorer/docs/case_study_djh_waldbröl.md
similarity index 100%
rename from case_study_djh_waldbröl.md
rename to company-explorer/docs/case_study_djh_waldbröl.md
diff --git a/yamaichi_lokal.md b/company-explorer/docs/yamaichi_lokal.md
similarity index 100%
rename from yamaichi_lokal.md
rename to company-explorer/docs/yamaichi_lokal.md
diff --git a/yamaichi_neu.md b/company-explorer/docs/yamaichi_neu.md
similarity index 100%
rename from yamaichi_neu.md
rename to company-explorer/docs/yamaichi_neu.md
diff --git a/docker-compose.yml b/docker-compose.yml
index d15588e3..25ea5172 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -22,44 +22,7 @@ services:
depends_on:
- company-explorer
- dashboard
- - b2b-app
- - market-frontend
- - gtm-app
- - transcription-app
- - content-app
- - competitor-analysis
- - heatmap-frontend
-
- # --- HEATMAP ---
- heatmap-backend:
- build: ./heatmap-tool/backend
- container_name: heatmap-backend
- restart: unless-stopped
- volumes:
- - ./heatmap-tool/backend:/app
-
- heatmap-frontend:
- build: ./heatmap-tool/frontend
- container_name: heatmap-frontend
- restart: unless-stopped
- volumes:
- - ./heatmap-tool/frontend:/app
- depends_on:
- - heatmap-backend
-
-
- # --- AGENT (moltbot) ---
- # moltbot: # Moltbot ist oft auskommentiert, um Port-Konflikte zu vermeiden, da der Agent oft separat läuft.
- # build:
- # context: .
- # dockerfile: Dockerfile.moltbot
- # container_name: moltbot
- # restart: unless-stopped
- # ports:
- # - "18789:18789"
- # command: /app/packages/clawdbot/node_modules/.bin/clawdbot gateway --port 18789 --allow-unconfigured
- # volumes:
- # - moltbot_data:/home/node/.clawd
+ - connector-superoffice
# --- DASHBOARD ---
dashboard:
@@ -69,7 +32,7 @@ services:
volumes:
- ./dashboard:/usr/share/nginx/html:ro
- # --- APPS ---
+ # --- APPS (Core) ---
company-explorer:
build:
context: ./company-explorer
@@ -85,143 +48,9 @@ services:
API_PASSWORD: "gemini"
PYTHONUNBUFFERED: "1"
volumes:
-
- ./company-explorer:/app
- ./companies_v3_fixed_2.db:/app/companies_v3_fixed_2.db
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- - ./serpapikey.txt:/app/serpapikey.txt
- - ./notion_token.txt:/app/notion_token.txt
- - ./Log_from_docker:/app/logs_debug
-
- transcription-app:
- build:
- context: ./transcription-tool
- dockerfile: Dockerfile
- container_name: transcription-app
- restart: unless-stopped
- volumes:
- - ./transcription-tool/backend:/app/backend
- - ./transcription-tool/frontend/dist:/app/frontend/dist # Mount Frontend Build for Live Updates
- - ./transcripts.db:/app/transcripts.db
- - ./uploads_audio:/app/uploads_audio
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- environment:
- PYTHONUNBUFFERED: "1"
- DATABASE_URL: "sqlite:////app/transcripts.db"
- ports:
- - "8001:8001"
-
- b2b-app:
- build:
- context: .
- dockerfile: Dockerfile.b2b
- container_name: b2b-assistant
- restart: unless-stopped
- volumes:
- - ./b2b_marketing_orchestrator.py:/app/b2b_marketing_orchestrator.py
- - ./market_db_manager.py:/app/market_db_manager.py
- - ./b2b-marketing-assistant/server.cjs:/app/server.cjs
- - ./b2b_projects.db:/app/b2b_projects.db
- - ./Log_from_docker:/app/Log_from_docker
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- environment:
- PYTHONUNBUFFERED: "1"
- DB_PATH: "/app/b2b_projects.db"
- # Port 3002 is internal only
-
- market-backend:
- build:
- context: .
- dockerfile: Dockerfile.market
- container_name: market-backend
- restart: unless-stopped
- volumes:
- - ./market_intel_orchestrator.py:/app/market_intel_orchestrator.py
- - ./market_db_manager.py:/app/market_db_manager.py
- - ./config.py:/app/config.py
- - ./helpers.py:/app/helpers.py
- - ./general-market-intelligence/server.cjs:/app/general-market-intelligence/server.cjs
- - ./market_intelligence.db:/app/market_intelligence.db
- - ./Log:/app/Log
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- - ./serpapikey.txt:/app/serpapikey.txt
- environment:
- PYTHONUNBUFFERED: "1"
- DB_PATH: "/app/market_intelligence.db"
- # Port 3001 is internal only
-
- market-frontend:
- build:
- context: ./general-market-intelligence
- dockerfile: Dockerfile
- container_name: market-frontend
- restart: unless-stopped
- depends_on:
- - market-backend
- # Port 80 is internal only
-
- gtm-app:
- build:
- context: .
- dockerfile: gtm-architect/Dockerfile
- container_name: gtm-app
- restart: unless-stopped
- volumes:
- - ./gtm-architect:/app/gtm-architect
- - ./gtm-architect/server.cjs:/app/server.cjs
- - ./gtm_architect_orchestrator.py:/app/gtm_architect_orchestrator.py
- - ./helpers.py:/app/helpers.py
- - ./config.py:/app/config.py
- - ./gtm_db_manager.py:/app/gtm_db_manager.py
- - ./gtm_projects.db:/app/gtm_projects.db
- - ./Log_from_docker:/app/Log_from_docker
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- - ./serpapikey.txt:/app/serpapikey.txt
- environment:
- PYTHONUNBUFFERED: "1"
- DB_PATH: "/app/gtm_projects.db"
- # Port 3005 is internal only
-
- content-app:
- build:
- context: .
- dockerfile: content-engine/Dockerfile
- container_name: content-app
- restart: unless-stopped
- volumes:
- - ./content-engine:/app/content-engine
- - ./content-engine/server.cjs:/app/server.cjs
- - ./content-engine/content_orchestrator.py:/app/content_orchestrator.py
- - ./content-engine/content_db_manager.py:/app/content_db_manager.py
- - ./content_engine.db:/app/content_engine.db
- - ./helpers.py:/app/helpers.py
- - ./config.py:/app/config.py
- - ./gtm_projects.db:/app/gtm_projects.db
- - ./Log_from_docker:/app/Log_from_docker
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- - ./serpapikey.txt:/app/serpapikey.txt
- environment:
- PYTHONUNBUFFERED: "1"
- DB_PATH: "/app/content_engine.db"
- GTM_DB_PATH: "/app/gtm_projects.db"
-
- competitor-analysis:
- build:
- context: ./competitor-analysis-app
- dockerfile: Dockerfile
- container_name: competitor-analysis
- restart: unless-stopped
- dns:
- - 8.8.8.8
- - 8.8.4.4
- volumes:
- - ./competitor-analysis-app/competitor_analysis_orchestrator.py:/app/competitor_analysis_orchestrator.py
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- - ./Log_from_docker:/app/Log_from_docker
- environment:
- PYTHONUNBUFFERED: "1"
- GEMINI_API_KEY_FILE: "/app/gemini_api_key.txt"
- # Port 8000 is internal only
+ - ./Log_from_docker:/app/logs_debug # Ensure logging path is correct
connector-superoffice:
build:
@@ -235,7 +64,6 @@ services:
- .env
volumes:
- ./connector-superoffice:/app
- - ./gemini_api_key.txt:/app/gemini_api_key.txt
- ./connector_queue.db:/app/connector_queue.db
environment:
PYTHONUNBUFFERED: "1"
@@ -244,57 +72,5 @@ services:
DB_PATH: "/app/connector_queue.db"
COMPANY_EXPLORER_URL: "http://company-explorer:8000"
- lead-engine:
- build:
- context: ./lead-engine
- dockerfile: Dockerfile
- container_name: lead-engine
- restart: unless-stopped
- ports:
- - "8501:8501"
- - "8004:8004"
- env_file:
- - .env
- environment:
- PYTHONUNBUFFERED: "1"
- COMPANY_EXPLORER_URL: "http://company-explorer:8000"
- # Explicitly pass keys to ensure availability
- SERP_API: "${SERP_API}"
- GEMINI_API_KEY: "${GEMINI_API_KEY}"
- # Calendar App Credentials
- CAL_APPID: "${CAL_APPID}"
- CAL_SECRET: "${CAL_SECRET}"
- CAL_TENNANT_ID: "${CAL_TENNANT_ID}"
- volumes:
- - ./lead-engine:/app
- # We need to mount the root connector module so it can be imported inside the container
- - ./company_explorer_connector.py:/app/company_explorer_connector.py
-
- # --- INFRASTRUCTURE SERVICES ---
- duckdns:
- image: lscr.io/linuxserver/duckdns:latest
- container_name: duckdns
- environment:
- PUID: "1000" # User ID (anpassen falls nötig)
- PGID: "1000" # Group ID (anpassen falls nötig)
- TZ: "Europe/Berlin"
- SUBDOMAINS: "floke,floke-ai,floke-gitea,floke-ha,floke-n8n"
- TOKEN: "2e073b27-971e-4847-988c-73ad23e648d4" # Actual token is in .env or config
- restart: unless-stopped
-
- dns-monitor:
- image: alpine
- container_name: dns-monitor
- dns:
- - 8.8.8.8
- - 1.1.1.1
- environment:
- SUBDOMAINS: "floke,floke-ai,floke-gitea,floke-ha,floke-n8n"
- TZ: "Europe/Berlin"
- volumes:
- - ./dns-monitor:/app
- command: "/app/monitor.sh"
- restart: unless-stopped
-
volumes:
- moltbot_data: {} # Volume for moltbot data, even if service is commented out.
\ No newline at end of file
+ # No custom volumes needed for the streamlined setup
\ No newline at end of file
diff --git a/ANALYSIS_AND_PROPOSAL.md b/docs/ANALYSIS_AND_PROPOSAL.md
similarity index 100%
rename from ANALYSIS_AND_PROPOSAL.md
rename to docs/ANALYSIS_AND_PROPOSAL.md
diff --git a/ANALYSIS_PHASE_2_ONLY.md b/docs/ANALYSIS_PHASE_2_ONLY.md
similarity index 100%
rename from ANALYSIS_PHASE_2_ONLY.md
rename to docs/ANALYSIS_PHASE_2_ONLY.md
diff --git a/ANFORDERUNGEN_IT_OAUTH.md b/docs/ANFORDERUNGEN_IT_OAUTH.md
similarity index 100%
rename from ANFORDERUNGEN_IT_OAUTH.md
rename to docs/ANFORDERUNGEN_IT_OAUTH.md
diff --git a/ARCHITEKTUR_GCP_SETUP.md b/docs/ARCHITEKTUR_GCP_SETUP.md
similarity index 100%
rename from ARCHITEKTUR_GCP_SETUP.md
rename to docs/ARCHITEKTUR_GCP_SETUP.md
diff --git a/BUILDER_APPS_MIGRATION.md b/docs/BUILDER_APPS_MIGRATION.md
similarity index 100%
rename from BUILDER_APPS_MIGRATION.md
rename to docs/BUILDER_APPS_MIGRATION.md
diff --git a/Direktive_Zusammenarbeit.md b/docs/Direktive_Zusammenarbeit.md
similarity index 100%
rename from Direktive_Zusammenarbeit.md
rename to docs/Direktive_Zusammenarbeit.md
diff --git a/KONVER_STRATEGY.md b/docs/KONVER_STRATEGY.md
similarity index 100%
rename from KONVER_STRATEGY.md
rename to docs/KONVER_STRATEGY.md
diff --git a/MIGRATION_PLAN.md b/docs/MIGRATION_PLAN.md
similarity index 100%
rename from MIGRATION_PLAN.md
rename to docs/MIGRATION_PLAN.md
diff --git a/MIGRATION_REPORT_COMPETITOR_ANALYSIS.md b/docs/MIGRATION_REPORT_COMPETITOR_ANALYSIS.md
similarity index 100%
rename from MIGRATION_REPORT_COMPETITOR_ANALYSIS.md
rename to docs/MIGRATION_REPORT_COMPETITOR_ANALYSIS.md
diff --git a/MOLTBOT_SYNOLOGY_GUIDE.md b/docs/MOLTBOT_SYNOLOGY_GUIDE.md
similarity index 100%
rename from MOLTBOT_SYNOLOGY_GUIDE.md
rename to docs/MOLTBOT_SYNOLOGY_GUIDE.md
diff --git a/NOTION_TASK_SUMMARY.md b/docs/NOTION_TASK_SUMMARY.md
similarity index 100%
rename from NOTION_TASK_SUMMARY.md
rename to docs/NOTION_TASK_SUMMARY.md
diff --git a/Notion_Dashboard.md b/docs/Notion_Dashboard.md
similarity index 100%
rename from Notion_Dashboard.md
rename to docs/Notion_Dashboard.md
diff --git a/README_dev_session.md b/docs/README_dev_session.md
similarity index 100%
rename from README_dev_session.md
rename to docs/README_dev_session.md
diff --git a/SKILL_TASK_MANAGER.md b/docs/SKILL_TASK_MANAGER.md
similarity index 100%
rename from SKILL_TASK_MANAGER.md
rename to docs/SKILL_TASK_MANAGER.md
diff --git a/SUPEROFFICE_INTEGRATION_PLAN.md b/docs/SUPEROFFICE_INTEGRATION_PLAN.md
similarity index 100%
rename from SUPEROFFICE_INTEGRATION_PLAN.md
rename to docs/SUPEROFFICE_INTEGRATION_PLAN.md
diff --git a/SUPEROFFICE_MEETING_PREP.md b/docs/SUPEROFFICE_MEETING_PREP.md
similarity index 100%
rename from SUPEROFFICE_MEETING_PREP.md
rename to docs/SUPEROFFICE_MEETING_PREP.md
diff --git a/TASK_STATUS_REPORT_2f388f42.md b/docs/TASK_STATUS_REPORT_2f388f42.md
similarity index 100%
rename from TASK_STATUS_REPORT_2f388f42.md
rename to docs/TASK_STATUS_REPORT_2f388f42.md
diff --git a/TASK_STATUS_REPORT_30e88f42.md b/docs/TASK_STATUS_REPORT_30e88f42.md
similarity index 100%
rename from TASK_STATUS_REPORT_30e88f42.md
rename to docs/TASK_STATUS_REPORT_30e88f42.md
diff --git a/TRANSCRIPTION_TOOL.md b/docs/TRANSCRIPTION_TOOL.md
similarity index 100%
rename from TRANSCRIPTION_TOOL.md
rename to docs/TRANSCRIPTION_TOOL.md
diff --git a/UNSUBSCRIBE_FEATURE_SUMMARY.md b/docs/UNSUBSCRIBE_FEATURE_SUMMARY.md
similarity index 100%
rename from UNSUBSCRIBE_FEATURE_SUMMARY.md
rename to docs/UNSUBSCRIBE_FEATURE_SUMMARY.md
diff --git a/b2b_marketing_assistant_plan.md b/docs/b2b_marketing_assistant_plan.md
similarity index 100%
rename from b2b_marketing_assistant_plan.md
rename to docs/b2b_marketing_assistant_plan.md
diff --git a/duckdns_setup.md b/docs/duckdns_setup.md
similarity index 100%
rename from duckdns_setup.md
rename to docs/duckdns_setup.md
diff --git a/gtm_architect_documentation.md b/docs/gtm_architect_documentation.md
similarity index 100%
rename from gtm_architect_documentation.md
rename to docs/gtm_architect_documentation.md
diff --git a/market_intel_backend_plan.md b/docs/market_intel_backend_plan.md
similarity index 100%
rename from market_intel_backend_plan.md
rename to docs/market_intel_backend_plan.md
diff --git a/moltbot_chatgpt.md b/docs/moltbot_chatgpt.md
similarity index 100%
rename from moltbot_chatgpt.md
rename to docs/moltbot_chatgpt.md
diff --git a/notion_integration.md b/docs/notion_integration.md
similarity index 100%
rename from notion_integration.md
rename to docs/notion_integration.md
diff --git a/planning.md b/docs/planning.md
similarity index 100%
rename from planning.md
rename to docs/planning.md
diff --git a/tasks.md b/docs/tasks.md
similarity index 100%
rename from tasks.md
rename to docs/tasks.md
diff --git a/umzug.md b/docs/umzug.md
similarity index 100%
rename from umzug.md
rename to docs/umzug.md
diff --git a/verticals_analysis.md b/docs/verticals_analysis.md
similarity index 100%
rename from verticals_analysis.md
rename to docs/verticals_analysis.md
diff --git a/readme.md b/readme.md
index 0623bacc..c014e552 100644
--- a/readme.md
+++ b/readme.md
@@ -23,6 +23,8 @@ gitea: none
## 📑 Projekt-Übersicht (Readmes)
+Für eine umfassende Übersicht über allgemeine Projektdokumente, Architektur und Entwicklungsrichtlinien, konsultieren Sie bitte den `docs/`-Ordner.
+
| Modul / Projekt | Verzeichnis | Beschreibung |
| :--- | :--- | :--- |
| **SuperOffice Connector** | [📂 `./connector-superoffice`](./connector-superoffice/README.md) | GTM Engine & SuperOffice CRM Integration ("The Muscle"). |
diff --git a/tmp/test_context.md b/tmp/test_context.md
deleted file mode 100644
index 0c6290d7..00000000
--- a/tmp/test_context.md
+++ /dev/null
@@ -1,21 +0,0 @@
-## Schritt 1: Zieldefinition
-
-Unsere Lösung hilft Unternehmen, komplexe Service- und Wartungsprozesse für technische Geräte zu digitalisieren. Wir bieten eine mobile App für Techniker und ein zentrales Dashboard für Disponenten.
-
-## Schritt 2: Zielmarkt & ICP
-
-| Kriterium | Beschreibung |
-| :--- | :--- |
-| **Zielbranche** | Maschinenbau, Anlagenbau, Medizintechnik |
-| **Unternehmensgröße**| 100-2.000 Mitarbeiter |
-| **Regionale Märkte** | Deutschland, Österreich, Schweiz (DACH) |
-
-## Schritt 3: Schmerzpunkte & Wertversprechen
-
-- **Schmerzpunkt:** Ineffiziente, papierbasierte Einsatzplanung.
-- **Wertversprechen:** 30% schnellere Auftragsabwicklung durch digitale Tourenplanung.
-
-## Schritt 4: Go-to-Market Strategie
-
-- **Marketing-Kanäle:** LinkedIn Outreach, Fachmessen.
-- **Vertriebsansatz:** Account-Based Selling, Fokus auf technische Leiter (CTOs).