Files

48 lines
1.3 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
set -e
# Set environment variable to prevent tokenizer deadlock warnings
export TOKENIZERS_PARALLELISM=false
# Wait for PostgreSQL to be ready
echo "Waiting for PostgreSQL..."
while ! nc -z db 5432; do
sleep 0.1
done
echo "PostgreSQL is ready!"
# Check if Firebase credentials exist, but don't create them if missing
if [ ! -z "$FIREBASE_CREDENTIALS" ] && [ ! -f "$FIREBASE_CREDENTIALS" ]; then
echo "Warning: Firebase credentials file not found at $FIREBASE_CREDENTIALS. Continuing without Firebase credentials..."
fi
# Preload embedding models to avoid runtime issues
echo "Preloading embedding models..."
python scripts/preload_models.py
if [ $? -eq 0 ]; then
echo "Models preloaded successfully!"
else
echo "Warning: Model preloading failed. Continuing anyway..."
fi
# Run migrations
echo "Running database migrations..."
alembic upgrade head
# Use only 2 workers to reduce resource usage and database connection issues
WORKERS=1
# Start the application with Gunicorn
echo "Starting FastAPI application with Gunicorn ($WORKERS workers)..."
gunicorn app.main:app \
--workers $WORKERS \
--worker-class uvicorn.workers.UvicornWorker \
--bind 0.0.0.0:8000 \
--timeout 120 \
--keep-alive 5 \
--log-level info \
--access-logfile - \
--error-logfile - \
--preload