Files
ai_mip/deploy.sh

86 lines
2.2 KiB
Bash
Raw Normal View History

2026-01-21 14:33:10 +08:00
#!/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 ""