Files
Brancheneinstufung2/docker-compose.yml

269 lines
7.0 KiB
YAML

# WICHTIGER HINWEIS: Diese Version konzentriert sich auf den stabilen Core-Stack.
# Alle nicht essenziellen Dienste sind auskommentiert, um Build-Fehler zu vermeiden.
version: '3.8'
services:
# --- GATEKEEPER (NGINX) ---
nginx:
image: nginx:alpine
container_name: gateway_proxy
restart: unless-stopped
ports:
- "8090:80"
volumes:
- ./nginx-proxy-clean.conf:/etc/nginx/nginx.conf:ro
- ./.htpasswd:/etc/nginx/.htpasswd:ro
depends_on:
dashboard:
condition: service_started
company-explorer:
condition: service_healthy
connector-superoffice:
condition: service_healthy
lead-engine:
condition: service_started
gtm-architect:
condition: service_started
b2b-marketing-assistant:
condition: service_started
transcription-tool:
condition: service_started
heatmap-frontend:
condition: service_started
competitor-analysis:
condition: service_started
content-engine:
condition: service_started
market-intelligence:
condition: service_started
# --- DASHBOARD ---
dashboard:
image: nginx:alpine
container_name: dashboard
restart: unless-stopped
volumes:
- ./dashboard:/usr/share/nginx/html:ro
# --- APPS ---
market-intelligence:
build:
context: .
dockerfile: general-market-intelligence/Dockerfile.fullstack
container_name: market-intelligence
restart: unless-stopped
ports:
- "8098:3001"
environment:
GEMINI_API_KEY: "${GEMINI_API_KEY}"
SERP_API_KEY: "${SERP_API}"
PYTHONUNBUFFERED: "1"
volumes:
- market_intel_data:/data
- ./Log_from_docker:/app/Log
content-engine:
build:
context: .
dockerfile: content-engine/Dockerfile
container_name: content-engine
restart: unless-stopped
ports:
- "8093:3000"
environment:
GEMINI_API_KEY: "${GEMINI_API_KEY}"
PYTHONUNBUFFERED: "1"
GTM_DB_PATH: "/gtm_data/gtm_projects.db"
CONTENT_DB_PATH: "/data/content_engine.db"
volumes:
- content_engine_data:/data
- gtm_architect_data:/gtm_data:ro
- ./Log_from_docker:/app/logs_debug
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3006"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
competitor-analysis:
build:
context: ./competitor-analysis-app
dockerfile: Dockerfile
container_name: competitor-analysis
restart: unless-stopped
ports:
- "8097:3000"
environment:
GEMINI_API_KEY: "${GEMINI_API_KEY}"
PYTHONUNBUFFERED: "1"
volumes:
- competitor_analysis_data:/data
- ./Log_from_docker:/app/logs_debug
transcription-tool:
build:
context: ./transcription-tool
dockerfile: Dockerfile
container_name: transcription-tool
restart: unless-stopped
ports:
- "8001:8001"
environment:
GEMINI_API_KEY: "${GEMINI_API_KEY}"
UPLOAD_DIR: "/app/uploads"
volumes:
- transcription_uploads:/app/uploads
- ./Log_from_docker:/app/logs_debug
heatmap-backend:
build:
context: ./heatmap-tool/backend
container_name: heatmap-backend
restart: unless-stopped
ports:
- "8002:8000"
environment:
ORS_API_KEY: "${ORS_API_KEY}"
PYTHONUNBUFFERED: "1"
heatmap-frontend:
build:
context: ./heatmap-tool/frontend
dockerfile: Dockerfile
container_name: heatmap-frontend
restart: unless-stopped
ports:
- "8096:80"
depends_on:
- heatmap-backend
b2b-marketing-assistant:
build:
context: .
dockerfile: b2b-marketing-assistant/Dockerfile
container_name: b2b-marketing-assistant
restart: unless-stopped
ports:
- "8092:3002"
environment:
GEMINI_API_KEY: "${GEMINI_API_KEY}"
PYTHONUNBUFFERED: "1"
volumes:
- b2b_marketing_data:/data
- ./Log_from_docker:/app/logs_debug
gtm-architect:
build:
context: .
dockerfile: gtm-architect/Dockerfile
container_name: gtm-architect
restart: unless-stopped
ports:
- "8094:80"
environment:
GEMINI_API_KEY: "${GEMINI_API_KEY}"
VITE_API_BASE_URL: "/gtm/api"
GTM_DB_PATH: "/data/gtm_projects.db"
volumes:
- ./Log_from_docker:/app/logs_debug
- gtm_architect_data:/data
company-explorer:
build:
context: ./company-explorer
dockerfile: Dockerfile
container_name: company-explorer
restart: unless-stopped
ports:
- "8000:8000"
environment:
API_USER: "admin"
API_PASSWORD: "gemini"
PYTHONUNBUFFERED: "1"
DATABASE_URL: "sqlite:////data/companies_v3_fixed_2.db"
GEMINI_API_KEY: "${GEMINI_API_KEY}"
SERP_API_KEY: "${SERP_API}"
NOTION_TOKEN: "${NOTION_API_KEY}"
volumes:
- ./company-explorer:/app
- explorer_db_data:/data
- ./Log_from_docker:/app/logs_debug
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/docs"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
connector-superoffice:
build:
context: ./connector-superoffice
dockerfile: Dockerfile
container_name: connector-superoffice
restart: unless-stopped
ports:
- "8003:8000"
volumes:
- ./connector-superoffice:/app
- connector_db_data:/data
environment:
PYTHONUNBUFFERED: "1"
GEMINI_API_KEY: "${GEMINI_API_KEY}"
SO_CLIENT_ID: "${SO_CLIENT_ID}"
SO_CLIENT_SECRET: "${SO_CLIENT_SECRET}"
SO_REFRESH_TOKEN: "${SO_REFRESH_TOKEN}"
SO_ENVIRONMENT: "${SO_ENVIRONMENT}"
SO_CONTEXT_IDENTIFIER: "${SO_CONTEXT_IDENTIFIER}"
WEBHOOK_TOKEN: "${WEBHOOK_TOKEN}"
WEBHOOK_SECRET: "${WEBHOOK_SECRET}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
lead-engine:
build:
context: ./lead-engine
dockerfile: Dockerfile
container_name: lead-engine
restart: unless-stopped
ports:
- "8501:8501" # UI (Streamlit)
- "8004:8004" # API / Monitor
- "8099:8004" # Direct Test Port
environment:
PYTHONUNBUFFERED: "1"
GEMINI_API_KEY: "${GEMINI_API_KEY}"
SERP_API: "${SERP_API}"
INFO_Application_ID: "${INFO_Application_ID}"
INFO_Tenant_ID: "${INFO_Tenant_ID}"
INFO_Secret: "${INFO_Secret}"
CAL_APPID: "${CAL_APPID}"
CAL_SECRET: "${CAL_SECRET}"
CAL_TENNANT_ID: "${CAL_TENNANT_ID}"
TEAMS_WEBHOOK_URL: "${TEAMS_WEBHOOK_URL}"
FEEDBACK_SERVER_BASE_URL: "${FEEDBACK_SERVER_BASE_URL}"
WORDPRESS_BOOKING_URL: "${WORDPRESS_BOOKING_URL}"
MS_BOOKINGS_URL: "${MS_BOOKINGS_URL}"
volumes:
- ./lead-engine:/app
- lead_engine_data:/app/data
# --- INFRASTRUCTURE SERVICES ---
volumes:
connector_db_data: {}
explorer_db_data: {}
lead_engine_data: {}
gtm_architect_data: {}
b2b_marketing_data: {}
transcription_uploads: {}
content_engine_data: {}
competitor_analysis_data: {}
market_intel_data: {}