From 4224206b246b21382b48bdf738738c835e78dc77 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 6 Mar 2026 22:15:59 +0100 Subject: [PATCH] fix: Docker-Compose FINAL FINAL FIX: YAML-Reparatur und Konsolidierung -- Manuelle Bereinigung nach Desaster --- docker-compose.yml | 97 ++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 60 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1c8e7f46..9481191c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,6 +37,7 @@ services: restart: unless-stopped volumes: - ./heatmap-tool/backend:/app + - ./data:/data # Mount for database heatmap-frontend: build: ./heatmap-tool/frontend @@ -47,20 +48,6 @@ services: 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 - # --- DASHBOARD --- dashboard: image: nginx:alpine @@ -84,11 +71,8 @@ services: 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 + - ./data:/data # Mount for database + - ./Log_from_docker:/app/logs_debug # Logging Mount transcription-app: build: @@ -99,52 +83,48 @@ services: volumes: - ./transcription-tool/backend:/app/backend - ./transcription-tool/frontend/dist:/app/frontend/dist # Mount Frontend Build for Live Updates - - ./transcripts.db:/app/transcripts.db + - ./data:/data # Mount for database - ./uploads_audio:/app/uploads_audio - - ./gemini_api_key.txt:/app/gemini_api_key.txt environment: PYTHONUNBUFFERED: "1" - DATABASE_URL: "sqlite:////app/transcripts.db" + DATABASE_URL: "sqlite:////data/transcripts.db" # Updated path for /data mount ports: - "8001:8001" b2b-app: build: context: . - dockerfile: Dockerfile.b2b + dockerfile: dockerfiles/Dockerfile.b2b container_name: b2b-assistant restart: unless-stopped volumes: - - ./b2b_marketing_orchestrator.py:/app/b2b_marketing_orchestrator.py + - ./b2b-marketing-assistant/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 + - ./data:/data # Mount for database - ./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" + DB_PATH: "/data/b2b_projects.db" # Updated path for /data mount # Port 3002 is internal only market-backend: build: context: . - dockerfile: Dockerfile.market + dockerfile: dockerfiles/Dockerfile.market container_name: market-backend restart: unless-stopped volumes: - - ./market_intel_orchestrator.py:/app/market_intel_orchestrator.py + - ./general-market-intelligence/market_intel_orchestrator.py:/app/general-market-intelligence/market_intel_orchestrator.py - ./market_db_manager.py:/app/market_db_manager.py - ./config.py:/app/config.py - - ./helpers.py:/app/helpers.py + - ./helpers.py:/app/helpers.py # Helper is in root, should be mounted as file - ./general-market-intelligence/server.cjs:/app/general-market-intelligence/server.cjs - - ./market_intelligence.db:/app/market_intelligence.db + - ./data:/data # Mount for database - ./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" + DB_PATH: "/data/market_intelligence.db" # Updated path for /data mount # Port 3001 is internal only market-frontend: @@ -166,17 +146,15 @@ services: 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 + - ./gtm-architect/gtm_architect_orchestrator.py:/app/gtm_architect_orchestrator.py + - ./helpers.py:/app/helpers.py # Helper is in root, should be mounted as file - ./config.py:/app/config.py - ./gtm_db_manager.py:/app/gtm_db_manager.py - - ./gtm_projects.db:/app/gtm_projects.db + - ./data:/data # Mount for database - ./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" + DB_PATH: "/data/gtm_projects.db" # Updated path for /data mount # Port 3005 is internal only content-app: @@ -188,19 +166,17 @@ services: 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 + - ./content-engine/content_orchestrator.py:/app/content-engine/content_orchestrator.py + - ./content-engine/content_db_manager.py:/app/content-engine/content_db_manager.py + - ./data:/data # Mount for database + - ./helpers.py:/app/helpers.py # Helper is in root, should be mounted as file - ./config.py:/app/config.py - - ./gtm_projects.db:/app/gtm_projects.db + - ./data/gtm_projects.db:/data/gtm_projects.db # GTM DB also mounted here - ./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" + DB_PATH: "/data/content_engine.db" # Updated path for /data mount + GTM_DB_PATH: "/data/gtm_projects.db" # Updated path for /data mount competitor-analysis: build: @@ -212,31 +188,32 @@ services: - 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 + - ./competitor-analysis-app/competitor_analysis_orchestrator.py:/app/competitor-analysis-app/competitor_analysis_orchestrator.py # Explicit path + - ./data:/data # Mount for database (if needed by orchestrator) - ./Log_from_docker:/app/Log_from_docker environment: PYTHONUNBUFFERED: "1" - GEMINI_API_KEY_FILE: "/app/gemini_api_key.txt" + # GEMINI_API_KEY_FILE: "/app/gemini_api_key.txt" # Removed, API keys from .env # Port 8000 is internal only connector-superoffice: build: - context: ./connector-superoffice - dockerfile: Dockerfile + context: . + dockerfile: connector-superoffice/Dockerfile # Build context is now root container_name: connector-superoffice restart: unless-stopped ports: - "8003:8000" # Expose internal 8000 to host 8003 (8002 was taken) volumes: - - ./connector-superoffice:/app - - ./gemini_api_key.txt:/app/gemini_api_key.txt - - ./connector_queue.db:/app/connector_queue.db + - ./connector-superoffice:/app/connector-superoffice # Mount subfolder to its own path in /app + - ./data:/data # Data mount + - ./config.py:/app/config.py # Root config needs to be mounted + - ./helpers.py:/app/helpers.py # Root helper needs to be mounted environment: PYTHONUNBUFFERED: "1" API_USER: "admin" API_PASSWORD: "gemini" - DB_PATH: "/app/connector_queue.db" + DB_PATH: "/data/connector_queue.db" # Updated path for /data mount COMPANY_EXPLORER_URL: "http://company-explorer:8000" # Pass through SO credentials from host .env SO_CLIENT_ID: "${SO_CLIENT_ID}" @@ -254,7 +231,7 @@ services: 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 + TOKEN: "${DUCKDNS_TOKEN}" # From .env restart: unless-stopped dns-monitor: @@ -272,4 +249,4 @@ services: restart: unless-stopped volumes: - moltbot_data: {} # Volume for moltbot data, even if service is commented out. \ No newline at end of file + moltbot_data: {} # Volume for moltbot data, even if service is commented out.