run.sh 799 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. # Runs the Wikipedia3D FastAPI server in the background.
  4. # Uses a project-local venv to avoid global Python pollution.
  5. ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. VENV_DIR="$ROOT_DIR/.venv"
  7. PID_FILE="$ROOT_DIR/.uvicorn.pid"
  8. if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
  9. echo "Server already running (pid $(cat "$PID_FILE"))."
  10. exit 0
  11. fi
  12. if [[ ! -d "$VENV_DIR" ]]; then
  13. python3 -m venv "$VENV_DIR"
  14. fi
  15. # shellcheck disable=SC1091
  16. source "$VENV_DIR/bin/activate"
  17. pip install -r "$ROOT_DIR/server/requirements.txt" >/dev/null
  18. nohup uvicorn server.app:app --host 0.0.0.0 --port 8088 --reload \
  19. >"$ROOT_DIR/uvicorn.log" 2>&1 &
  20. echo $! > "$PID_FILE"
  21. echo "Started Wikipedia3D FastAPI (pid $(cat "$PID_FILE"))."