presentercoach / infra /scripts /start_cloud.sh
nathycodes's picture
Deploy Tech Presenter Coach
ec17af3
Raw History Blame Contribute Delete
1.22 kB
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
DATA_DIR="${DATA_DIR:-${ROOT_DIR}/data}"
STORAGE_DIR="${STORAGE_DIR:-${DATA_DIR}/storage}"
DB_PATH="${DATA_DIR}/presenter_coach.db"
WEB_PORT="${PORT:-7860}"
mkdir -p "${STORAGE_DIR}"
export DATABASE_URL="${DATABASE_URL:-sqlite:///${DB_PATH}}"
export STORAGE_DIR="${STORAGE_DIR}"
export LOCAL_ONLY_MODE="${LOCAL_ONLY_MODE:-true}"
export COOKIE_PATH="${COOKIE_PATH:-/}"
export COACHING_PROVIDER="${COACHING_PROVIDER:-auto}"
export COACHING_FALLBACK_BUILTIN="${COACHING_FALLBACK_BUILTIN:-true}"
export USE_LOCAL_WORKER_FALLBACK="${USE_LOCAL_WORKER_FALLBACK:-true}"
export INTERNAL_API_URL="http://127.0.0.1:8000"
export ALLOW_FRAME_EMBEDDING="${ALLOW_FRAME_EMBEDDING:-true}"
echo "Starting Speech-Machine · Tech Presenter Coach (Cloud Container)"
echo " Public Web Port: ${WEB_PORT}"
echo " Internal API: ${INTERNAL_API_URL}"
PYTHONPATH="${ROOT_DIR}/apps/api/src" python3 -m uvicorn app.main:app --host 127.0.0.1 --port 8000 &
API_PID=$!
cleanup() {
kill "${API_PID}" 2>/dev/null || true
}
trap cleanup EXIT INT TERM
cd "${ROOT_DIR}/apps/web"
exec npx next start --hostname 0.0.0.0 --port "${WEB_PORT}"