start-local.sh 952 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/bin/bash
  2. set -euo pipefail
  3. BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  4. cd "$BASE_DIR"
  5. ENV_FILE="${ENV_FILE:-$BASE_DIR/.env.local}"
  6. HOST="${HOST:-127.0.0.1}"
  7. PORT="${PORT:-8000}"
  8. APP_MODULE="${APP_MODULE:-app.main:app}"
  9. VENV_DIR="${VENV_DIR:-$BASE_DIR/venv}"
  10. UVICORN_BIN="${UVICORN_BIN:-$VENV_DIR/bin/uvicorn}"
  11. if [ ! -f "$ENV_FILE" ]; then
  12. echo "[ERROR] 本地环境文件不存在: $ENV_FILE"
  13. echo "请先创建并填写 backend/.env.local"
  14. exit 1
  15. fi
  16. if [ ! -x "$UVICORN_BIN" ]; then
  17. echo "[ERROR] 未找到 uvicorn: $UVICORN_BIN"
  18. echo "请先创建虚拟环境并安装依赖:"
  19. echo " python3 -m venv venv"
  20. echo " source venv/bin/activate"
  21. echo " pip install -r requirements.txt"
  22. exit 1
  23. fi
  24. echo "[INFO] 启动本地开发服务"
  25. echo "[INFO] ENV_FILE=$ENV_FILE"
  26. echo "[INFO] URL=http://$HOST:$PORT"
  27. ENV_FILE="$ENV_FILE" "$UVICORN_BIN" "$APP_MODULE" --host "$HOST" --port "$PORT" --reload --log-level debug