ai-voicebot/server/entrypoint.sh

37 lines
1.1 KiB
Bash

#!/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"
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