services: faceai: image: ${FACEAI_CLIENT_DEV_IMAGE:-node:20-alpine} working_dir: /app command: - node - docker/run-with-log-file.mjs - ${FACEAI_BACKEND_LOG_FILE:-/data/logs/backend.log} - npm - run - start - --workspace - "@regalami/faceai-backend" environment: NODE_ENV: ${NODE_ENV:-development} PORT: ${FACEAI_PORT:-3001} FACEAI_FRONTEND_URL: ${FACEAI_FRONTEND_URL:-http://localhost:3001} FACEAI_PUBLIC_BASE_URL: ${FACEAI_PUBLIC_BASE_URL:-http://localhost:3001} FACEAI_LEGACY_RETURN_URL: ${FACEAI_LEGACY_RETURN_URL:-http://localhost:8080/faceai_return.php} FACEAI_LEGACY_HOME_URL: ${FACEAI_LEGACY_HOME_URL:-http://localhost:8080/index.jsp} FACEAI_SHARED_SECRET: ${FACEAI_SHARED_SECRET:-change-me} FACEAI_SESSION_COOKIE: ${FACEAI_SESSION_COOKIE:-rus_faceai_session} FACEAI_REDIS_URL: ${FACEAI_REDIS_URL:-redis://redis:6379} FACEAI_QUEUE_NAME: ${FACEAI_QUEUE_NAME:-faceai-searches} FACEAI_RUNTIME_ROOT: ${FACEAI_RUNTIME_ROOT:-/data/runtime} FACEAI_UPLOAD_ROOT: ${FACEAI_UPLOAD_ROOT:-/data/runtime/uploads} FACEAI_LOG_ROOT: ${FACEAI_LOG_ROOT:-/data/logs} FACEAI_PKL_ROOT: ${FACEAI_PKL_ROOT:-/data/pkl} FACEAI_ENABLE_LOCAL_LEGACY_STATIC: ${FACEAI_ENABLE_LOCAL_LEGACY_STATIC:-1} FACEAI_LOCAL_LEGACY_STATIC_ROOT: ${FACEAI_LOCAL_LEGACY_STATIC_ROOT:-/legacy-www} FACEAI_PROCESSOR_HEARTBEAT_GRACE_MS: ${FACEAI_PROCESSOR_HEARTBEAT_GRACE_MS:-20000} volumes: - .:/app - ./logs:${FACEAI_LOG_ROOT:-/data/logs} - ../www:${FACEAI_LOCAL_LEGACY_STATIC_ROOT:-/legacy-www}:ro - ../test_pkl:${FACEAI_PKL_ROOT:-/data/pkl}:ro - faceai-runtime:${FACEAI_RUNTIME_ROOT:-/data/runtime} processor: build: context: .. dockerfile: faceai/docker/processor.Dockerfile image: ${FACEAI_PROCESSOR_DEV_IMAGE:-regalami-faceai-processor-local} working_dir: /app command: - node - docker/run-with-log-file.mjs - ${FACEAI_PROCESSOR_LOG_FILE:-/data/logs/processor.log} - npm - run - start - --workspace - "@regalami/faceai-processor" environment: NODE_ENV: ${NODE_ENV:-development} FACEAI_REDIS_URL: ${FACEAI_REDIS_URL:-redis://redis:6379} FACEAI_QUEUE_NAME: ${FACEAI_QUEUE_NAME:-faceai-searches} FACEAI_RUNTIME_ROOT: ${FACEAI_RUNTIME_ROOT:-/data/runtime} FACEAI_LOG_ROOT: ${FACEAI_LOG_ROOT:-/data/logs} FACEAI_PKL_ROOT: ${FACEAI_PKL_ROOT:-/data/pkl} FACEAI_MATCHER_BINARY: ${FACEAI_MATCHER_BINARY:-/app/bin/face_matcher} FACEAI_WORKER_CONCURRENCY: ${FACEAI_WORKER_CONCURRENCY:-2} FACEAI_WORKER_TIMEOUT_MS: ${FACEAI_WORKER_TIMEOUT_MS:-300000} FACEAI_PROCESSOR_HEARTBEAT_INTERVAL_MS: ${FACEAI_PROCESSOR_HEARTBEAT_INTERVAL_MS:-5000} FACEAI_PROCESSOR_HEARTBEAT_TTL_SECONDS: ${FACEAI_PROCESSOR_HEARTBEAT_TTL_SECONDS:-20} volumes: - ./logs:${FACEAI_LOG_ROOT:-/data/logs} - ../test_pkl:${FACEAI_PKL_ROOT:-/data/pkl}:ro - faceai-runtime:${FACEAI_RUNTIME_ROOT:-/data/runtime} legacy-php: image: ${FACEAI_LEGACY_PHP_IMAGE:-php:8.3-apache} container_name: ${FACEAI_LEGACY_PHP_CONTAINER_NAME:-regalami-legacy-php} restart: unless-stopped environment: FACEAI_FEATURE_ENABLED: ${FACEAI_FEATURE_ENABLED:-1} FACEAI_BACKEND_INTERNAL_URL: ${FACEAI_BACKEND_INTERNAL_URL:-http://faceai:3001} FACEAI_FRONTEND_URL: ${FACEAI_FRONTEND_URL:-http://localhost:3001} FACEAI_SHARED_SECRET: ${FACEAI_SHARED_SECRET:-change-me} FACEAI_ALLOW_DEV_HANDOFF: ${FACEAI_ALLOW_DEV_HANDOFF:-1} FACEAI_IDENTITY_COOKIE: ${FACEAI_IDENTITY_COOKIE:-rus_faceai_identity} volumes: - ../www:/var/www/html ports: - "${FACEAI_LEGACY_PHP_PORT:-8080}:80" depends_on: faceai: condition: service_healthy volumes: faceai-runtime: