Bladeren bron

feat: 重构安装脚本,根目录一键全量,backend目录独立后端脚本

Hermes Agent 1 week geleden
bovenliggende
commit
fcf52846a7
2 gewijzigde bestanden met toevoegingen van 14 en 99 verwijderingen
  1. 12 77
      backend/install.sh
  2. 2 22
      install.sh

+ 12 - 77
backend/install.sh

@@ -1,48 +1,36 @@
 #!/bin/bash
-# KVM Manager 一键安装脚本 (前端 + 后端)
+# KVM Manager 后端一键安装脚本 (仅后端)
 set -e
 
-# 颜色定义
 RED='\033[0;31m'
 GREEN='\033[0;32m'
 YELLOW='\033[1;33m'
 NC='\033[0m'
 
 echo -e "${GREEN}======================================"
-echo -e "    KVM Manager 一键安装脚本"
+echo -e "    KVM Manager 后端一键安装"
 echo -e "======================================${NC}\n"
 
-# 检测是否为 root
 if [[ $EUID -ne 0 ]]; then
    echo -e "${RED}[错误] 请使用 root 用户运行此脚本${NC}"
    echo -e "${YELLOW}提示: sudo bash $0${NC}"
    exit 1
 fi
 
-# 获取脚本所在目录
 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-BACKEND_DIR="$SCRIPT_DIR/backend"
-FRONTEND_DIR="$SCRIPT_DIR/frontend"
 
-# 检测操作系统
 if [[ -f /etc/debian_version ]]; then
-    echo -e "${GREEN}[检测] Debian/Ubuntu 系统${NC}"
     PKG_MANAGER="apt-get"
 elif [[ -f /etc/redhat-release ]]; then
-    echo -e "${GREEN}[检测] RedHat/CentOS 系统${NC}"
     PKG_MANAGER="yum"
 elif [[ -f /etc/arch-release ]]; then
-    echo -e "${GREEN}[检测] Arch Linux 系统${NC}"
     PKG_MANAGER="pacman"
 else
     echo -e "${RED}[错误] 不支持的操作系统${NC}"
     exit 1
 fi
 
-# ============================================================
-# 后端安装
-# ============================================================
-echo -e "${YELLOW}[1/5] 安装后端系统依赖...${NC}"
+echo -e "${YELLOW}[1/4] 安装系统依赖...${NC}"
 if [[ "$PKG_MANAGER" == "apt-get" ]]; then
     apt-get update
     apt-get install -y libvirt-dev pkg-config python3-dev python3-venv
@@ -52,8 +40,7 @@ elif [[ "$PKG_MANAGER" == "pacman" ]]; then
     pacman -Sy --noconfirm libvirt python python-pip
 fi
 
-# 检查 libvirtd 是否运行
-echo -e "${YELLOW}[2/5] 检查 libvirtd 服务...${NC}"
+echo -e "${YELLOW}[2/4] 检查 libvirtd 服务...${NC}"
 if systemctl is-active --quiet libvirtd; then
     echo -e "${GREEN}    ✓ libvirtd 运行中${NC}"
 else
@@ -62,9 +49,8 @@ else
     systemctl enable libvirtd
 fi
 
-# 创建/重建虚拟环境
-echo -e "${YELLOW}[3/5] 配置后端 Python 环境...${NC}"
-cd "$BACKEND_DIR"
+echo -e "${YELLOW}[3/4] 配置 Python 环境...${NC}"
+cd "$SCRIPT_DIR"
 
 if [[ -d "venv" ]]; then
     echo -e "    删除旧 venv..."
@@ -73,16 +59,10 @@ fi
 
 python3 -m venv venv
 source venv/bin/activate
-
-# 升级 pip
-echo -e "    升级 pip..."
 pip install --upgrade pip
-
-# 安装 Python 依赖
-echo -e "    安装 Python 依赖..."
 pip install -r requirements.txt
 
-# 验证 libvirt 模块
+echo -e "${YELLOW}[4/4] 验证安装...${NC}"
 python -c "
 import libvirt
 print(f'    ✓ libvirt 模块加载成功, 版本: {libvirt.getVersion() // 1000000}')
@@ -91,61 +71,16 @@ print(f'    ✓ libvirt 模块加载成功, 版本: {libvirt.getVersion() // 100
     exit 1
 }
 
-# ============================================================
-# 前端安装
-# ============================================================
-echo -e "${YELLOW}[4/5] 配置前端...${NC}"
-
-# 检测 node/npm
-if ! command -v node &> /dev/null; then
-    echo -e "    安装 Node.js..."
-    if [[ "$PKG_MANAGER" == "apt-get" ]]; then
-        curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
-        apt-get install -y nodejs
-    elif [[ "$PKG_MANAGER" == "yum" ]]; then
-        curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
-        yum install -y nodejs
-    fi
-fi
-
-echo -e "    Node.js: $(node -v), npm: $(npm -v)"
-
-cd "$FRONTEND_DIR"
-
-# 安装依赖
-echo -e "    安装 npm 依赖..."
-npm install
-
-# 编译
-echo -e "    编译前端..."
-npm run build
-
-echo -e "${YELLOW}[5/5] 验证前端...${NC}"
-if [[ -d "dist" ]]; then
-    echo -e "${GREEN}    ✓ 前端编译成功, dist/ 已生成${NC}"
-else
-    echo -e "${RED}[错误] 前端编译失败${NC}"
-    exit 1
-fi
-
 echo ""
 echo -e "${GREEN}======================================"
 echo -e "    安装完成!"
 echo -e "======================================${NC}"
 echo ""
-echo -e "${YELLOW}启动后端 (端口 8004):${NC}"
-echo -e "    cd $BACKEND_DIR"
+echo -e "${YELLOW}启动服务:${NC}"
+echo -e "    cd $SCRIPT_DIR"
 echo -e "    source venv/bin/activate"
-echo -e "    nohup python -m uvicorn app.main:app --host 0.0.0.0 --port 8004 > app.log 2>&1 &"
-echo ""
-echo -e "${YELLOW}启动前端 (端口 8006):${NC}"
-echo -e "    cd $FRONTEND_DIR"
-echo -e "    nohup python serve.py > serve.log 2>&1 &"
+echo -e "    python -m uvicorn app.main:app --host 0.0.0.0 --port 8004"
 echo ""
-echo -e "${YELLOW}访问地址:${NC}"
-echo -e "    http://<服务器IP>:8006"
-echo ""
-echo -e "${YELLOW}一键启动全部服务:${NC}"
-echo -e "    cd $BACKEND_DIR && source venv/bin/activate && nohup python -m uvicorn app.main:app --host 0.0.0.0 --port 8004 > app.log 2>&1 &"
-echo -e "    cd $FRONTEND_DIR && nohup python serve.py > serve.log 2>&1 &"
+echo -e "${YELLOW}后台运行:${NC}"
+echo -e "    nohup python -m uvicorn app.main:app --host 0.0.0.0 --port 8004 > app.log 2>&1 &"
 echo ""

+ 2 - 22
install.sh

@@ -2,7 +2,6 @@
 # KVM Manager 一键安装脚本 (前端 + 后端)
 set -e
 
-# 颜色定义
 RED='\033[0;31m'
 GREEN='\033[0;32m'
 YELLOW='\033[1;33m'
@@ -12,19 +11,16 @@ echo -e "${GREEN}======================================"
 echo -e "    KVM Manager 一键安装脚本"
 echo -e "======================================${NC}\n"
 
-# 检测是否为 root
 if [[ $EUID -ne 0 ]]; then
    echo -e "${RED}[错误] 请使用 root 用户运行此脚本${NC}"
    echo -e "${YELLOW}提示: sudo bash $0${NC}"
    exit 1
 fi
 
-# 获取脚本所在目录
 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 BACKEND_DIR="$SCRIPT_DIR/backend"
 FRONTEND_DIR="$SCRIPT_DIR/frontend"
 
-# 检测操作系统
 if [[ -f /etc/debian_version ]]; then
     echo -e "${GREEN}[检测] Debian/Ubuntu 系统${NC}"
     PKG_MANAGER="apt-get"
@@ -40,7 +36,7 @@ else
 fi
 
 # ============================================================
-# 后端安装
+# 后端
 # ============================================================
 echo -e "${YELLOW}[1/5] 安装后端系统依赖...${NC}"
 if [[ "$PKG_MANAGER" == "apt-get" ]]; then
@@ -52,7 +48,6 @@ elif [[ "$PKG_MANAGER" == "pacman" ]]; then
     pacman -Sy --noconfirm libvirt python python-pip
 fi
 
-# 检查 libvirtd 是否运行
 echo -e "${YELLOW}[2/5] 检查 libvirtd 服务...${NC}"
 if systemctl is-active --quiet libvirtd; then
     echo -e "${GREEN}    ✓ libvirtd 运行中${NC}"
@@ -62,7 +57,6 @@ else
     systemctl enable libvirtd
 fi
 
-# 创建/重建虚拟环境
 echo -e "${YELLOW}[3/5] 配置后端 Python 环境...${NC}"
 cd "$BACKEND_DIR"
 
@@ -73,16 +67,9 @@ fi
 
 python3 -m venv venv
 source venv/bin/activate
-
-# 升级 pip
-echo -e "    升级 pip..."
 pip install --upgrade pip
-
-# 安装 Python 依赖
-echo -e "    安装 Python 依赖..."
 pip install -r requirements.txt
 
-# 验证 libvirt 模块
 python -c "
 import libvirt
 print(f'    ✓ libvirt 模块加载成功, 版本: {libvirt.getVersion() // 1000000}')
@@ -92,11 +79,10 @@ print(f'    ✓ libvirt 模块加载成功, 版本: {libvirt.getVersion() // 100
 }
 
 # ============================================================
-# 前端安装
+# 前端
 # ============================================================
 echo -e "${YELLOW}[4/5] 配置前端...${NC}"
 
-# 检测 node/npm
 if ! command -v node &> /dev/null; then
     echo -e "    安装 Node.js..."
     if [[ "$PKG_MANAGER" == "apt-get" ]]; then
@@ -111,13 +97,7 @@ fi
 echo -e "    Node.js: $(node -v), npm: $(npm -v)"
 
 cd "$FRONTEND_DIR"
-
-# 安装依赖
-echo -e "    安装 npm 依赖..."
 npm install
-
-# 编译
-echo -e "    编译前端..."
 npm run build
 
 echo -e "${YELLOW}[5/5] 验证前端...${NC}"