- Fixed Nginx proxy for /feedback/ and /lead/ routes. - Restored manager.py to use persistent SQLite DB and corrected test lead triggers. - Refined Dockerfile for lead-engine to ensure clean dependency installs. - Applied latest API configs (.env) to lead-engine and duckdns services. - Updated documentation (GEMINI.md, readme.md, RELOCATION.md, lead-engine/README.md) to reflect final state and lessons learned. - Committed all pending changes to main branch.
147 lines
3.9 KiB
YAML
147 lines
3.9 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
|
|
|
|
# --- DASHBOARD ---
|
|
dashboard:
|
|
image: nginx:alpine
|
|
container_name: dashboard
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./dashboard:/usr/share/nginx/html:ro
|
|
|
|
# --- 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
|
|
|
|
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}"
|
|
volumes:
|
|
- ./lead-engine:/app
|
|
- lead_engine_data:/app/data
|
|
|
|
# --- INFRASTRUCTURE SERVICES ---
|
|
duckdns:
|
|
image: lscr.io/linuxserver/duckdns:latest
|
|
container_name: duckdns
|
|
environment:
|
|
PUID: "1000"
|
|
PGID: "1000"
|
|
TZ: "Europe/Berlin"
|
|
SUBDOMAINS: "${DUCKDNS_SUBDOMAINS}"
|
|
TOKEN: "${DUCKDNS_TOKEN}"
|
|
restart: unless-stopped
|
|
|
|
dns-monitor:
|
|
image: alpine
|
|
container_name: dns-monitor
|
|
dns:
|
|
- 8.8.8.8
|
|
- 1.1.1.1
|
|
environment:
|
|
SUBDOMAINS: "${DUCKDNS_SUBDOMAINS}"
|
|
TZ: "Europe/Berlin"
|
|
volumes:
|
|
- ./dns-monitor:/app
|
|
command: "/app/monitor.sh"
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
connector_db_data: {}
|
|
explorer_db_data: {}
|
|
lead_engine_data: {}
|