| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/bin/bash
- # 简化版自动部署脚本 - 直接运行源码
- set -e
- DEPLOY_LOG="/tmp/deploy-simple.log"
- PROJECT_DIR="/data/ai/audio_codebuddy"
- FRONTEND_PORT="5173"
- BACKEND_PORT="3100"
- log() {
- echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$DEPLOY_LOG"
- }
- log "========== 开始自动部署 =========="
- # 切换到项目目录
- cd "$PROJECT_DIR"
- # Git pull
- log "执行 git pull..."
- git pull origin master 2>&1 | tee -a "$DEPLOY_LOG"
- # ========== 启动/重启前端 ==========
- log "启动前端 dev server..."
- cd "$PROJECT_DIR/my-uniapp-vue3"
- # 停止旧的前端进程
- pkill -f "vite" 2>/dev/null || true
- pm2 delete frontend 2>/dev/null || true
- # 安装依赖
- npm install 2>&1 | tee -a "$DEPLOY_LOG"
- # 后台启动前端 dev server (监听所有网卡)
- nohup npx vite --host 0.0.0.0 --port $FRONTEND_PORT > "$DEPLOY_LOG.frontend.log" 2>&1 &
- FRONTEND_PID=$!
- echo "Frontend PID: $FRONTEND_PID"
- sleep 8 # 等待启动
- log "前端启动完成 (PID: $FRONTEND_PID)"
- # ========== 启动/重启后端 ==========
- log "启动后端服务..."
- cd "$PROJECT_DIR/server"
- # 安装依赖
- npm install 2>&1 | tee -a "$DEPLOY_LOG"
- # 停止旧的后端进程
- pm2 delete server 2>/dev/null || true
- # 编译 TypeScript
- npm run build 2>&1 | tee -a "$DEPLOY_LOG"
- # 使用编译后的 JS 运行
- SERVER_PORT=$BACKEND_PORT pm2 start dist/app.js --name server 2>&1 | tee -a "$DEPLOY_LOG"
- pm2 save 2>&1 | tee -a "$DEPLOY_LOG"
- log "========== 部署完成 =========="
- log "前端: http://localhost:$FRONTEND_PORT"
- log "后端: http://localhost:$BACKEND_PORT"
|