From ad4071c721ba3b5336d61ea3da44f706d95d113d Mon Sep 17 00:00:00 2001 From: Floke Date: Wed, 4 Feb 2026 10:26:58 +0000 Subject: [PATCH] [2f688f42] Dockercompose wiederhergestellt Dockercompose wiederhergestellt --- .dev_session/SESSION_INFO | 2 +- docker-compose.yml | 188 +++++++++++++++++++++++++++++++++++++- 2 files changed, 184 insertions(+), 6 deletions(-) diff --git a/.dev_session/SESSION_INFO b/.dev_session/SESSION_INFO index 5a9abebb..92cd6c8d 100644 --- a/.dev_session/SESSION_INFO +++ b/.dev_session/SESSION_INFO @@ -1 +1 @@ -{"task_id": "2f988f42-8544-8118-a486-f5ab86886238", "token": "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", "session_start_time": "2026-02-01T20:00:26.731100"} \ No newline at end of file +{"task_id": "2f688f42-8544-8109-8ca1-d66deb49571b", "token": "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", "session_start_time": "2026-02-04T10:26:40.359251"} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 56b4705d..604b6155 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,11 @@ +# WICHTIGER HINWEIS FÜR SPRACHMODELLE UND ENTWICKLER: +# Diese docker-compose.yml Datei ist die zentrale Orchestrierungsdatei für ALLE Docker-Services dieses Projekts. +# Es ist strengstens untersagt, Service-Definitionen, Volumes, Netzwerke oder andere Konfigurationen +# willkürlich zu löschen, auszukommentieren oder zu modifizieren, es sei denn, dies wurde +# explizit angefordert und die Auswirkungen wurden vollständig verstanden. +# Unbeabsichtigte Löschungen können zu massivem Datenverlust und Fehlfunktionen des Systems führen. +# Prüfe IMMER den gesamten Kontext der Datei und die Projektdokumentation (readme.md), bevor du Änderungen vornimmst. + version: '3.8' services: @@ -13,10 +21,16 @@ services: - ./.htpasswd:/etc/nginx/.htpasswd:ro depends_on: - company-explorer - # - transcription-app (wird manuell gestartet, daher hier nicht zwingend, aber gut für's Netz) + - dashboard + - b2b-app + - market-frontend + - gtm-app + - transcription-app + - content-app + - competitor-analysis - # --- AGENT --- - # moltbot: + # --- AGENT (moltbot) --- + # moltbot: # Moltbot ist oft auskommentiert, um Port-Konflikte zu vermeiden, da der Agent oft separat läuft. # build: # context: . # dockerfile: Dockerfile.moltbot @@ -40,6 +54,7 @@ services: company-explorer: build: context: ./company-explorer + dockerfile: Dockerfile container_name: company-explorer restart: unless-stopped ports: @@ -47,9 +62,172 @@ services: environment: API_USER: "admin" API_PASSWORD: "gemini" + PYTHONUNBUFFERED: "1" volumes: - - ./company-explorer/backend:/app/backend + - ./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 + - ./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" + GEMINI_API_KEY: "AIzaSyCFRmr1rOrkFKiEuh9GOCJNB2zfJsYmR68" # Placeholder, actual key is in file + ports: + - "8001:8001" + depends_on: + - nginx # Abhängigkeit vom Proxy, da der Frontend über den Proxy geht + + 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 + + # --- 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: {} + moltbot_data: {} # Volume for moltbot data, even if service is commented out. \ No newline at end of file