version: '3.8' services: # --- GATEKEEPER (NGINX) --- nginx: image: nginx:alpine container_name: gateway_proxy restart: unless-stopped ports: - "8090:80" volumes: - ./nginx-proxy-test.conf:/etc/nginx/nginx.conf:ro - ./.htpasswd:/etc/nginx/.htpasswd:ro depends_on: dashboard: condition: service_started company-explorer: condition: service_healthy lead-engine: condition: service_started # --- DASHBOARD (Required by Nginx) --- dashboard: image: nginx:alpine container_name: dashboard restart: unless-stopped volumes: - ./dashboard:/usr/share/nginx/html:ro # --- COMPANY-EXPLORER (Required by Lead-Engine) --- 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 (Our Webhook Service) --- 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 volumes: explorer_db_data: {} lead_engine_data: {}