Introduced to allow starting a subset of core services (nginx, company-explorer, lead-engine, transcription-tool) with reduced dependencies. A corresponding was created to provide a tailored Nginx configuration for this minimal stack, preventing issues with unstarted upstream hosts. This enables flexible deployment and testing of essential components without launching the entire system.
97 lines
2.6 KiB
YAML
97 lines
2.6 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# --- GATEKEEPER (NGINX) ---
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: gateway_proxy
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8090:80"
|
|
volumes:
|
|
- ./nginx-proxy.minimal.conf:/etc/nginx/nginx.conf:ro
|
|
- ./.htpasswd:/etc/nginx/.htpasswd:ro
|
|
depends_on:
|
|
company-explorer:
|
|
condition: service_healthy
|
|
lead-engine:
|
|
condition: service_started
|
|
transcription-tool:
|
|
condition: service_started
|
|
|
|
# --- APPS ---
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
volumes:
|
|
explorer_db_data: {}
|
|
lead_engine_data: {}
|
|
transcription_uploads: {}
|