36 lines
954 B
Bash
Executable File
36 lines
954 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Optional: activate local virtualenv if present
|
|
if [ -d ".venv" ]; then
|
|
# shellcheck disable=SC1091
|
|
source ".venv/bin/activate"
|
|
fi
|
|
|
|
# Model configuration (can be overridden via env)
|
|
export FACE_MODEL_NAME="${FACE_MODEL_NAME:-buffalo_l}"
|
|
export FACE_DET_SIZE="${FACE_DET_SIZE:-1024}"
|
|
|
|
# Tune CPU thread usage and workers
|
|
CPU_CORES="$(nproc || echo 4)"
|
|
DEFAULT_WORKERS="${CPU_CORES}"
|
|
if [ "$DEFAULT_WORKERS" -lt 2 ]; then
|
|
DEFAULT_WORKERS=2
|
|
fi
|
|
|
|
export OMP_NUM_THREADS="${OMP_NUM_THREADS:-2}"
|
|
export MKL_NUM_THREADS="${MKL_NUM_THREADS:-2}"
|
|
|
|
WORKERS="${UVICORN_WORKERS:-$DEFAULT_WORKERS}"
|
|
# Match genealog-api FACE_SERVICE_URL: http://host.docker.internal:18081
|
|
PORT="${PORT:-18081}"
|
|
|
|
echo "Starting face service on port ${PORT} with ${WORKERS} workers (CPU cores: ${CPU_CORES})"
|
|
|
|
exec uvicorn app.main:app \
|
|
--host 0.0.0.0 \
|
|
--port "${PORT}" \
|
|
--workers "${WORKERS}" \
|
|
--loop uvloop \
|
|
--http httptools
|