Regalamiunsorriso/faceai/docker-compose.override.yml
MaddoScientisto a95ae56134
All checks were successful
Publish FaceAI Container / publish (push) Successful in 13m8s
feat(monitor-frontend): add FaceAI Audit Monitor application with Vue.js and Vite setup
- Created App.vue for the main application interface with localization support.
- Added main.js to bootstrap the Vue application.
- Introduced styles.css for application styling.
- Configured Vite for development and proxying API requests.
- Updated docker-compose files to include the new monitor service.
- Added Dockerfile for building the monitor frontend.
- Configured Nginx for serving the frontend and proxying API requests.
- Updated package.json and package-lock.json to include monitor-frontend workspace.
- Added initial SQLite database for audit monitoring.
2026-05-20 18:57:20 +02:00

174 lines
No EOL
6.8 KiB
YAML

services:
faceai:
image: ${FACEAI_CLIENT_DEV_IMAGE:-node:22-trixie-slim}
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_RETURN_MODE: ${FACEAI_LEGACY_RETURN_MODE:-direct}
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_AUDIT_DB_PATH: ${FACEAI_AUDIT_DB_PATH:-/data/runtime/faceai-audit.sqlite}
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}
faceai-monitor:
build:
context: ..
dockerfile: faceai/docker/monitor-frontend.Dockerfile
image: ${FACEAI_MONITOR_DEV_IMAGE:-regalami-faceai-monitor-local}
depends_on:
faceai:
condition: service_healthy
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_AUDIT_DB_PATH: ${FACEAI_AUDIT_DB_PATH:-/data/runtime/faceai-audit.sqlite}
FACEAI_PKL_ROOT: ${FACEAI_PKL_ROOT:-/data/pkl}
FACEAI_MATCHER_BINARY: ${FACEAI_MATCHER_BINARY:-/app/bin/face_matcher}
FACEAI_MATCHER_TOLERANCE: ${FACEAI_MATCHER_TOLERANCE:-0.5}
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}
tomcat-www:
build:
context: ../local-jsp-docker
dockerfile: tomcat/Dockerfile
container_name: ${LOCAL_JSP_TOMCAT_CONTAINER_NAME:-regalami-local-jsp-tomcat}
restart: unless-stopped
environment:
LOCAL_DB_HOST: mysql
LOCAL_DB_PORT: 3306
LOCAL_DB_NAME: pg
LOCAL_DB_USER: root
LOCAL_DB_PASSWORD: root
FACEAI_HANDOFF_URL: ${FACEAI_HANDOFF_URL:-http://localhost:3001/dev/legacy/launch}
FACEAI_DEV_USER_ID: ${FACEAI_DEV_USER_ID:-1}
FACEAI_DEV_DISPLAY_NAME: ${FACEAI_DEV_DISPLAY_NAME:-Local Model User}
FACEAI_DEV_EMAIL: ${FACEAI_DEV_EMAIL:-local.model.user@example.invalid}
FACEAI_DEV_MEMBERSHIP_STATUS: ${FACEAI_DEV_MEMBERSHIP_STATUS:-active}
LOCAL_APP_INSTANCE: ${LOCAL_APP_INSTANCE:-main}
LOCAL_DOCBASE: /data/docbase/
FACEAI_FEATURE_ENABLED: ${FACEAI_FEATURE_ENABLED:-1}
volumes:
- ../www:/workspace/www:ro
- ../rus:/workspace/rus:ro
- ../test_pkl:/workspace/test_pkl:ro
- ../local-jsp-docker/runtime/docbase:/data/docbase
- ../local-jsp-docker/runtime/tomcat-work:/usr/local/tomcat/work
- ../local-jsp-docker/runtime/tomcat-logs:/usr/local/tomcat/logs
ports:
- "${LOCAL_JSP_TOMCAT_PORT:-8080}:8080"
depends_on:
mysql:
condition: service_healthy
maildump:
condition: service_started
mysql:
image: ${LOCAL_JSP_MYSQL_IMAGE:-mysql:8.4}
container_name: ${LOCAL_JSP_MYSQL_CONTAINER_NAME:-regalami-local-jsp-mysql}
restart: unless-stopped
command:
- --max_allowed_packet=1G
- --net_read_timeout=600
- --net_write_timeout=600
- --lower_case_table_names=1
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: pg
MYSQL_ROOT_HOST: '%'
LOCAL_DB_SEED_DUMP: ${LOCAL_DB_SEED_DUMP:-pg-local-purpose-seed-20260422.sql}
LOCAL_DB_OVERLAY_DUMP: ${LOCAL_DB_OVERLAY_DUMP:-}
LOCAL_DOCBASE: /data/docbase/
LOCAL_MAIL_SMTP_HOST: maildump
LOCAL_MAIL_SMTP_PORT: 1025
LOCAL_SOURCE_DIR: /workspace/www/
LOCAL_TEST_USER_ID: ${LOCAL_TEST_USER_ID:-2}
LOCAL_TEST_USER_LOGIN: ${LOCAL_TEST_USER_LOGIN:-test}
LOCAL_TEST_USER_PASSWORD: ${LOCAL_TEST_USER_PASSWORD:-test1}
LOCAL_TEST_USER_EMAIL: ${LOCAL_TEST_USER_EMAIL:-localtest@regalamiunsorriso.test}
volumes:
- mysql-data:/var/lib/mysql
- ../db:/seed:ro
- ../www:/workspace/www:ro
- ../local-jsp-docker/mysql/init:/docker-entrypoint-initdb.d:ro
healthcheck:
test:
- CMD
- sh
- -lc
- mysql -uroot -p"$$MYSQL_ROOT_PASSWORD" -Nse "SELECT CASE WHEN EXISTS (SELECT 1 FROM pg.parm WHERE codice = 'REWRITE_URL_ENABLE' AND numero = 1) AND EXISTS (SELECT 1 FROM pg.gara LIMIT 1) THEN 1 ELSE 0 END" | grep -qx 1
interval: 10s
timeout: 5s
retries: 30
start_period: 60s
maildump:
build:
context: ../local-jsp-docker
dockerfile: maildump/Dockerfile
container_name: ${LOCAL_JSP_MAILDUMP_CONTAINER_NAME:-regalami-local-jsp-maildump}
restart: unless-stopped
environment:
MAILDUMP_OUTPUT_DIR: /out
MAILDUMP_SMTP_PORT: 1025
volumes:
- ../local-jsp-docker/runtime/maildump/out:/out
ports:
- "${LOCAL_JSP_MAILDUMP_PORT:-8025}:8025"
volumes:
faceai-runtime:
mysql-data: