Files

72 lines
1.7 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# YG-Datasets 一键启动脚本
echo "========================================="
echo " YG-Datasets 一键启动"
echo "========================================="
# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查并创建必要目录
echo -e "${YELLOW}[1/5] 检查环境...${NC}"
mkdir -p backend/uploads
mkdir -p frontend
# 创建并激活 Python 虚拟环境
echo -e "${YELLOW}[2/5] 创建 Python 虚拟环境...${NC}"
cd backend
if [ ! -d "venv" ]; then
python3 -m venv venv
fi
source venv/bin/activate
# 安装后端依赖
echo -e "${YELLOW}[3/5] 安装后端依赖...${NC}"
pip install -r requirements.txt
# 安装前端依赖
echo -e "${YELLOW}[4/5] 安装前端依赖...${NC}"
cd ../frontend
if [ ! -d "node_modules" ]; then
npm install
fi
# 启动后端
echo -e "${YELLOW}[5/5] 启动服务...${NC}"
cd ../backend
echo -e "${GREEN}启动后端 (端口 8000)...${NC}"
export HOST="0.0.0.0"
export DATABASE_URL="sqlite+aiosqlite:///./ygdataset.db"
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 &
BACKEND_PID=$!
# 等待后端启动
sleep 3
# 启动前端
cd ../frontend
echo -e "${GREEN}启动前端 (端口 3000)...${NC}"
npm run dev -- --host 0.0.0.0 &
FRONTEND_PID=$!
echo ""
echo "========================================="
echo -e " ${GREEN}启动完成!${NC}"
echo "========================================="
echo " 后端: http://localhost:8000"
echo " API文档: http://localhost:8000/docs"
echo " 前端: http://localhost:3000"
echo ""
echo " 按 Ctrl+C 停止所有服务"
echo "========================================="
# 捕获 Ctrl+C 并停止所有服务
trap "kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit" INT TERM
# 等待
wait