38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/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
|