53 lines
1.4 KiB
Bash
Executable File
53 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Video Flow - 开发环境启动脚本
|
|
|
|
set -e
|
|
|
|
echo "🚀 启动 Video Flow 开发环境..."
|
|
|
|
# 检查 Redis
|
|
if ! command -v redis-cli &> /dev/null; then
|
|
echo "⚠️ Redis 未安装,使用 Docker 启动..."
|
|
docker run -d --name video-flow-redis -p 6379:6379 redis:7-alpine 2>/dev/null || true
|
|
fi
|
|
|
|
# 启动后端 API (后台)
|
|
echo "📡 启动 FastAPI 后端 (port 8000)..."
|
|
cd "$(dirname "$0")/.."
|
|
uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload &
|
|
API_PID=$!
|
|
|
|
# 启动 Celery Worker (后台)
|
|
echo "⚙️ 启动 Celery Worker..."
|
|
celery -A api.celery_app worker --loglevel=info --concurrency=2 &
|
|
WORKER_PID=$!
|
|
|
|
# 启动前端 (后台)
|
|
echo "🌐 启动 React 前端 (port 3000)..."
|
|
cd web
|
|
npm install
|
|
npm run dev &
|
|
WEB_PID=$!
|
|
|
|
# 启动 Streamlit (后台)
|
|
STREAMLIT_PORT="${STREAMLIT_PORT:-8502}"
|
|
echo "📊 启动 Streamlit 调试界面 (port ${STREAMLIT_PORT})..."
|
|
cd ..
|
|
streamlit run app.py --server.port "${STREAMLIT_PORT}" &
|
|
STREAMLIT_PID=$!
|
|
|
|
echo ""
|
|
echo "✅ 所有服务已启动!"
|
|
echo ""
|
|
echo "📌 访问地址:"
|
|
echo " - 视频编辑器: http://localhost:3000"
|
|
echo " - API 文档: http://localhost:8000/api/docs"
|
|
echo " - 工作流控制台: http://localhost:${STREAMLIT_PORT}"
|
|
echo ""
|
|
echo "按 Ctrl+C 停止所有服务"
|
|
|
|
# 等待并处理退出
|
|
trap "kill $API_PID $WORKER_PID $WEB_PID $STREAMLIT_PID 2>/dev/null" EXIT
|
|
wait
|
|
|