#!/bin/bash # AI MIP 服务部署脚本 # 用法: sudo bash deploy.sh set -e echo "==========================================" echo " AI MIP 服务部署脚本" echo "==========================================" # 配置变量 PROJECT_DIR="/opt/ai_mip" SERVICE_NAME="ai_mip" SERVICE_FILE="${SERVICE_NAME}.service" LOG_DIR="/var/log/ai_mip" VENV_DIR="${PROJECT_DIR}/venv" USER="www-data" GROUP="www-data" # 检查是否root权限 if [[ $EUID -ne 0 ]]; then echo "❌ 错误: 请使用 sudo 运行此脚本" exit 1 fi echo "" echo "📦 步骤1: 创建项目目录" mkdir -p ${PROJECT_DIR} mkdir -p ${LOG_DIR} echo "✅ 目录创建完成" echo "" echo "📂 步骤2: 复制项目文件" echo "请确保当前目录是项目根目录" cp -r ./* ${PROJECT_DIR}/ echo "✅ 文件复制完成" echo "" echo "🐍 步骤3: 创建Python虚拟环境" if [ ! -d "${VENV_DIR}" ]; then python3 -m venv ${VENV_DIR} echo "✅ 虚拟环境创建完成" else echo "⚠️ 虚拟环境已存在,跳过创建" fi echo "" echo "📦 步骤4: 安装依赖" ${VENV_DIR}/bin/pip install --upgrade pip ${VENV_DIR}/bin/pip install -r ${PROJECT_DIR}/requirements.txt echo "✅ 依赖安装完成" echo "" echo "🔐 步骤5: 设置权限" chown -R ${USER}:${GROUP} ${PROJECT_DIR} chown -R ${USER}:${GROUP} ${LOG_DIR} chmod +x ${PROJECT_DIR}/main.py echo "✅ 权限设置完成" echo "" echo "⚙️ 步骤6: 安装systemd服务" cp ${PROJECT_DIR}/${SERVICE_FILE} /etc/systemd/system/ systemctl daemon-reload echo "✅ 服务文件已安装" echo "" echo "🚀 步骤7: 启动服务" systemctl enable ${SERVICE_NAME} systemctl restart ${SERVICE_NAME} echo "✅ 服务已启动" echo "" echo "==========================================" echo " 部署完成!" echo "==========================================" echo "" echo "📋 常用命令:" echo " 查看状态: sudo systemctl status ${SERVICE_NAME}" echo " 查看日志: sudo journalctl -u ${SERVICE_NAME} -f" echo " 查看服务日志: tail -f ${LOG_DIR}/service.log" echo " 查看错误日志: tail -f ${LOG_DIR}/error.log" echo " 重启服务: sudo systemctl restart ${SERVICE_NAME}" echo " 停止服务: sudo systemctl stop ${SERVICE_NAME}" echo " 健康检查: curl http://localhost:8899/health" echo ""