Files
echoes-of-the-ash/api/start.sh
2025-11-27 16:27:01 +01:00

23 lines
657 B
Bash

#!/bin/bash
# Startup script for API with auto-scaling workers
# Auto-detect worker count based on CPU cores
# Formula: (CPU_cores / 2) + 1, min 2, max 8
CPU_CORES=$(nproc)
WORKERS=$(( ($CPU_CORES / 2) + 1 ))
WORKERS=$(( WORKERS < 2 ? 2 : WORKERS ))
WORKERS=$(( WORKERS > 8 ? 8 : WORKERS ))
echo "Starting API with $WORKERS workers (auto-detected from $CPU_CORES CPU cores)"
exec gunicorn api.main:app \
--workers $WORKERS \
--worker-class uvicorn.workers.UvicornWorker \
--bind 0.0.0.0:8000 \
--timeout 120 \
--max-requests 1000 \
--max-requests-jitter 100 \
--access-logfile - \
--error-logfile - \
--log-level info