start.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. # PaperGraph(知脉) 一键启动:后端 + 前端
  3. set -e
  4. ROOT="$(cd "$(dirname "$0")" && pwd)"
  5. # shellcheck source=ports.env
  6. source "$ROOT/ports.env"
  7. cleanup() {
  8. echo ""
  9. echo "正在关闭服务..."
  10. kill $BACKEND_PID $FRONTEND_PID 2>/dev/null
  11. wait $BACKEND_PID $FRONTEND_PID 2>/dev/null
  12. echo "已关闭。"
  13. }
  14. trap cleanup EXIT INT TERM
  15. echo "============================================"
  16. echo " PaperGraph(知脉) 启动中..."
  17. echo "============================================"
  18. cd "$ROOT/backend"
  19. echo "→ 后端 http://localhost:${BACKEND_PORT}"
  20. export PORT="$BACKEND_PORT"
  21. PAPERGRAPH_UVICORN_RELOAD=0 python run.py &
  22. BACKEND_PID=$!
  23. cd "$ROOT/frontend"
  24. export VITE_BACKEND_PORT="$BACKEND_PORT" VITE_DEV_PORT="$FRONTEND_PORT"
  25. echo "→ 前端 http://127.0.0.1:${FRONTEND_PORT}"
  26. npm run dev &
  27. FRONTEND_PID=$!
  28. echo ""
  29. echo " 前端: http://127.0.0.1:${FRONTEND_PORT}"
  30. echo " 后端: http://127.0.0.1:${BACKEND_PORT}"
  31. echo " 健康: http://127.0.0.1:${BACKEND_PORT}/health"
  32. echo " Ctrl+C 停止"
  33. echo "============================================"
  34. wait