File size: 1,216 Bytes
ec17af3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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}"