feat(docker): Add minimal docker-compose setup for core services [2f988f42]

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.
This commit is contained in:
2026-03-18 14:23:46 +00:00
parent 9485cd4428
commit 80ce77c530
2 changed files with 173 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
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: {}