Files
k8smanager-cli/setup.sh
T
cnbugs 7a271f24d4 feat: 诊断过程实时进度展示 (SSE流式推送)
- 新增 GET /api/diagnose/stream SSE接口, 每完成一项检查实时推送
- 前端: 诊断中显示步骤进度条+每项检查状态(运行中/完成/问题数)
- 解决诊断过程'卡着'无反馈的体验问题
- 保留 POST /api/diagnose 兼容旧接口
2026-07-25 10:56:02 +08:00

78 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# K8S 智能诊断平台 - 环境安装脚本
set -e
cd "$(dirname "$0")"
echo "========================================="
echo " K8S 智能诊断平台 - 环境安装"
echo "========================================="
echo ""
# 1. 检查 Node.js
echo "[1/5] 检查 Node.js ..."
if ! command -v node &>/dev/null; then
echo " → 未找到 Node.js,正在安装 20.x ..."
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
fi
echo " ✅ Node.js $(node -v), npm $(npm -v)"
echo ""
# 2. 安装前端依赖
echo "[2/5] 安装前端依赖 (npm install) ..."
echo " → 如果速度慢,可 Ctrl+C 后手动执行:"
echo " cd frontend && npm install --include=dev --registry=https://registry.npmmirror.com"
echo ""
cd frontend
npm install --include=dev
cd ..
echo " ✅ 前端依赖安装完成"
echo ""
# 3. 安装 Python 依赖
echo "[3/5] 安装 Python 依赖 (pip3 install) ..."
if command -v pip3 &>/dev/null; then
pip3 install fastapi uvicorn kubernetes httpx python-dotenv
elif command -v pip &>/dev/null; then
pip install fastapi uvicorn kubernetes httpx python-dotenv
else
echo " → pip 未找到,正在安装 python3-pip ..."
apt-get install -y python3-pip
pip3 install fastapi uvicorn kubernetes httpx python-dotenv
fi
echo " ✅ Python 依赖安装完成"
echo ""
# 4. 构建前端
echo "[4/5] 构建前端 (vite build) ..."
cd frontend && npm run build && cd ..
echo " ✅ 前端构建完成 → frontend/dist/"
echo ""
# 5. 创建 .env
echo "[5/5] 检查配置文件 ..."
if [ ! -f .env ]; then
cat > .env << 'EOF'
# AI 分析接口 (OpenAI 兼容格式)
AI_API_BASE=http://localhost:8648/v1
AI_API_KEY=hermes
AI_MODEL=qwen3.8-max-preview
# 服务端口
PORT=8900
# Kubeconfig 路径 (留空使用默认 ~/.kube/config)
KUBECONFIG_PATH=
EOF
echo " ✅ 已创建 .env (请按需修改 AI_API_BASE 和 AI_API_KEY)"
else
echo " ✅ .env 已存在,跳过"
fi
echo ""
echo "========================================="
echo " ✅ 安装完成!"
echo " 启动服务: ./start.sh"
echo " 访问地址: http://localhost:8900"
echo "========================================="