#!/bin/bash set -e # Create the virtual environment if it doesn't exist if [ ! -d "/server/.venv/bin" ]; then echo "Creating virtual environment..." if [ -e /server/pyproject.toml ]; then rm -r /server/pyproject.toml fi uv init \ --python /usr/bin/python3.13 \ --name "ai-voicebot-server" \ --description "AI Voicebot Server Environment" \ . uv add -r ./requirements.txt fi export VIRTUAL_ENV=/server/.venv export PATH="$VIRTUAL_ENV/bin:$PATH" export PYTHONPATH="/:/server" if [ -f "${SSL_CERTFILE}" ] && [ -f "${SSL_KEYFILE}" ]; then echo "Starting server with SSL..." ssl_certfile_arg="--ssl-certfile ${SSL_CERTFILE}" ssl_keyfile_arg="--ssl-keyfile ${SSL_KEYFILE}" else echo "SSL files not found, starting without SSL." ssl_certfile_arg="" ssl_keyfile_arg="" fi # Launch server in production or development mode if [ "$PRODUCTION" = "true" ]; then exec uvicorn main:app --host 0.0.0.0 --port 8000 ${ssl_certfile_arg} ${ssl_keyfile_arg} else exec uvicorn main:app --host 0.0.0.0 --port 8000 ${ssl_certfile_arg} ${ssl_keyfile_arg} --reload fi