From fcf52846a7806976e20e4a9f86e316056f879e96 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 13 May 2026 12:49:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=87=8D=E6=9E=84=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=EF=BC=8C=E6=A0=B9=E7=9B=AE=E5=BD=95=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E5=85=A8=E9=87=8F=EF=BC=8Cbackend=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E5=90=8E=E7=AB=AF=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/install.sh | 89 +++++++--------------------------------------- install.sh | 24 ++----------- 2 files changed, 14 insertions(+), 99 deletions(-) diff --git a/backend/install.sh b/backend/install.sh index 40d457d..5413bec 100755 --- a/backend/install.sh +++ b/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 " python -m uvicorn app.main:app --host 0.0.0.0 --port 8004" +echo "" +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 "" -echo -e "${YELLOW}启动前端 (端口 8006):${NC}" -echo -e " cd $FRONTEND_DIR" -echo -e " nohup python serve.py > serve.log 2>&1 &" -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 "" diff --git a/install.sh b/install.sh index 40d457d..0a29e0a 100644 --- a/install.sh +++ b/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}"