services: ca-db: image: postgres:16-alpine environment: POSTGRES_USER: mapmil POSTGRES_PASSWORD: mapmil POSTGRES_DB: mapmil volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U mapmil -d mapmil"] interval: 5s timeout: 5s retries: 5 restart: unless-stopped redis: image: redis:7-alpine restart: unless-stopped ca-api: build: context: . dockerfile: centers/analytics/api/Dockerfile env_file: - .env environment: DATABASE_URL: postgresql://mapmil:mapmil@ca-db:5432/mapmil REDIS_URL: redis://redis:6379/0 INTERNAL_TOKEN: dev-internal-token TEST_PI_API_KEY: test-pi-api-key-change-me ADMIN_USER: ${ADMIN_USER:-admin} ADMIN_PASSWORD: ${ADMIN_PASSWORD:-change-me} ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET:-change-me-jwt-secret} volumes: - ca_uploads:/data depends_on: ca-db: condition: service_healthy redis: condition: service_started restart: unless-stopped ca-frontend: build: ./centers/analytics/frontend ports: - "8080:80" depends_on: - ca-api restart: unless-stopped cp-workers: build: context: . dockerfile: centers/parsing/workers/Dockerfile args: REQUIREMENTS_FILE: requirements.txt INSTALL_PLAYWRIGHT: "0" env_file: - .env environment: TELEGRAM_SESSION_PATH: /data/telegram.session TELEGRAM_LISTENER_ENABLED: "true" TELEGRAM_LISTENER_REFRESH_SECONDS: "60" # Host xray is 127.0.0.1:10808; socat on host forwards 0.0.0.0:11080 → that SOCKS TELEGRAM_PROXY_HOST: host.docker.internal TELEGRAM_PROXY_PORT: "11080" ENABLED_ADAPTERS: telegram WORKER_FAMILIES: telegram CA_API_URL: http://ca-api:8000 REDIS_URL: redis://redis:6379/0 INTERNAL_TOKEN: dev-internal-token extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./data:/data depends_on: - redis - ca-api restart: unless-stopped cp-workers-web: build: context: . dockerfile: centers/parsing/workers/Dockerfile args: REQUIREMENTS_FILE: requirements-web.txt INSTALL_PLAYWRIGHT: "1" env_file: - .env environment: TELEGRAM_LISTENER_ENABLED: "false" ENABLED_ADAPTERS: crawl4ai WORKER_FAMILIES: web CA_API_URL: http://ca-api:8000 REDIS_URL: redis://redis:6379/0 INTERNAL_TOKEN: dev-internal-token depends_on: - redis - ca-api restart: unless-stopped cp-workers-nlp: build: context: . dockerfile: centers/parsing/workers/Dockerfile args: REQUIREMENTS_FILE: requirements-nlp.txt INSTALL_PLAYWRIGHT: "0" environment: TELEGRAM_LISTENER_ENABLED: "false" ENABLED_ADAPTERS: viina WORKER_FAMILIES: nlp CA_API_URL: http://ca-api:8000 REDIS_URL: redis://redis:6379/0 INTERNAL_TOKEN: dev-internal-token depends_on: - redis - ca-api restart: unless-stopped volumes: pgdata: ca_uploads: