294 lines
8.2 KiB
YAML
294 lines
8.2 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
|
|
fotograf-de-scraper-frontend:
|
|
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
|
|
- ./company-explorer/data:/data # Local bind mount for guaranteed persistence
|
|
- ./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-superoffice/data:/data # Persistent local DB storage
|
|
# 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 # Local persistent database
|
|
|
|
fotograf-de-scraper-backend:
|
|
build:
|
|
context: ./fotograf-de-scraper/backend
|
|
dockerfile: Dockerfile
|
|
container_name: fotograf-de-scraper-backend
|
|
env_file:
|
|
- ./fotograf-de-scraper/.env
|
|
environment:
|
|
- TZ=Europe/Berlin
|
|
ports:
|
|
- "8002:8000"
|
|
volumes:
|
|
- ./fotograf-de-scraper/backend:/app
|
|
- ./fotograf-de-scraper/backend/data:/app/data
|
|
restart: unless-stopped
|
|
|
|
fotograf-de-scraper-frontend:
|
|
build:
|
|
context: ./fotograf-de-scraper/frontend
|
|
dockerfile: Dockerfile
|
|
args:
|
|
VITE_API_BASE_URL: "http://192.168.178.6:8002"
|
|
container_name: fotograf-de-scraper-frontend
|
|
ports:
|
|
- "3009:80"
|
|
depends_on:
|
|
- fotograf-de-scraper-backend
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
gtm_architect_data: {}
|
|
b2b_marketing_data: {}
|
|
transcription_uploads: {}
|
|
content_engine_data: {}
|
|
competitor_analysis_data: {}
|
|
market_intel_data: {}
|