miao33: 部署脚本、打包前 API 检查、文档与配置

- 新增 backend/shell/deploy-admin-miao33.sh(miao33 一键打包部署)
- deploy.conf 增加 VUE_APP_BASE_API_EXPECTED,miao33/by80 打包前校验前端 API 地址
- deploy-admin-by80.sh / deploy-admin-miao33.sh 增加步骤:检查 .env.production 中 VUE_APP_BASE_API
- backend/DEPLOY.md、frontend/DEPLOY.md 补充 miao33 与 API 检查说明
- frontend/.env.production、frontend/deploy.conf 同步 miao33 配置
- by80 脚本 get_conf 仅解析 by80 段

Made-with: Cursor
This commit is contained in:
apple
2026-03-12 22:00:34 +08:00
parent daa1c54cc0
commit 6e1bce929b
7 changed files with 248 additions and 31 deletions

View File

@@ -13,9 +13,9 @@ ROOT_DIR="$(cd "$BACKEND_DIR/.." && pwd)"
FRONTEND_DIR="$ROOT_DIR/frontend"
DEPLOY_CONF="$BACKEND_DIR/deploy.conf"
# 解析 by80 段配置deploy.conf 中 by80 段到 miao50 段之的 KEY=value
# 解析 by80 段配置deploy.conf 中 by80 段到 miao33 段之的 KEY=value
get_conf() {
sed -n '1,/^miao50:/p' "$DEPLOY_CONF" | grep -E "^${1}=" | tail -1 | cut -d= -f2-
sed -n '1,/^miao33:/p' "$DEPLOY_CONF" | grep -E "^${1}=" | tail -1 | cut -d= -f2-
}
SERVER_HOST=$(get_conf SERVER_HOST)
SERVER_USER=$(get_conf SERVER_USER)
@@ -48,7 +48,23 @@ echo "已生成: $JAR_PATH"
[[ ! -f "$JAR_PATH" ]] && { echo "错误: jar 未生成"; exit 1; }
echo ""
echo "=== 2. 编译前端 (admin 后台) ==="
echo "=== 2. 检查前端 API 地址 (frontend/.env.production) ==="
VUE_APP_BASE_API_EXPECTED=$(get_conf VUE_APP_BASE_API_EXPECTED)
if [[ -n "$VUE_APP_BASE_API_EXPECTED" ]]; then
ENV_FILE="$FRONTEND_DIR/.env.production"
CURRENT_API=$(grep -E '^[[:space:]]*VUE_APP_BASE_API[[:space:]]*=' "$ENV_FILE" 2>/dev/null | head -1 | sed -E "s/^[^=]*=[[:space:]]*['\"]?([^'\"]*)['\"]?[[:space:]]*/\1/" | tr -d ' ')
if [[ "$CURRENT_API" != "$VUE_APP_BASE_API_EXPECTED" ]]; then
echo "错误: 打包前请确认 API 接口地址为本项目的。"
echo " 当前 frontend/.env.production: VUE_APP_BASE_API = '$CURRENT_API'"
echo " by80 期望: VUE_APP_BASE_API = '$VUE_APP_BASE_API_EXPECTED'"
echo "请修改 frontend/.env.production 后重新执行。"
exit 1
fi
echo "已确认 VUE_APP_BASE_API = '$CURRENT_API'"
fi
echo ""
echo "=== 3. 编译前端 (admin 后台) ==="
cd "$FRONTEND_DIR"
# Node.js 17+ OpenSSL 兼容
export NODE_OPTIONS="${NODE_OPTIONS:-} --openssl-legacy-provider"
@@ -57,7 +73,7 @@ echo "已生成: $FRONTEND_DIR/dist"
[[ ! -d "$FRONTEND_DIR/dist" ]] && { echo "错误: dist 未生成"; exit 1; }
echo ""
echo "=== 3. 远程备份原有文件 ==="
echo "=== 4. 远程备份原有文件 ==="
"${SSH_CMD[@]}" "bash -s" << REMOTE_BACKUP
set -e
mkdir -p "$REMOTE_DIR_JAR/backups"
@@ -73,19 +89,19 @@ fi
REMOTE_BACKUP
echo ""
echo "=== 4. 上传 miao-admin-2.2.jar 到 $REMOTE_DIR_JAR ==="
echo "=== 5. 上传 miao-admin-2.2.jar 到 $REMOTE_DIR_JAR ==="
"${SCP_CMD[@]}" "$JAR_PATH" "$SERVER_USER@$SERVER_HOST:$REMOTE_DIR_JAR/"
echo "jar 上传完成."
echo ""
echo "=== 5. 上传 admin 后台静态 (dist) 到 $REMOTE_DIR_ADMIN ==="
echo "=== 6. 上传 admin 后台静态 (dist) 到 $REMOTE_DIR_ADMIN ==="
# 先清空远程目录再上传,避免残留旧文件(远程可能无 rsync统一用 tar 管道)
"${SSH_CMD[@]}" "mkdir -p $REMOTE_DIR_ADMIN && (rm -rf ${REMOTE_DIR_ADMIN}/* ${REMOTE_DIR_ADMIN}/.??* 2>/dev/null; true)"
(cd "$FRONTEND_DIR/dist" && tar cf - .) | "${SSH_CMD[@]}" "mkdir -p $REMOTE_DIR_ADMIN && cd $REMOTE_DIR_ADMIN && tar xf -"
echo "后台静态上传完成."
echo ""
echo "=== 6. 远程重启 admin 服务 (profile=miao80, port=$ADMIN_LOCAL_PORT) ==="
echo "=== 7. 远程重启 admin 服务 (profile=miao80, port=$ADMIN_LOCAL_PORT) ==="
"${SSH_CMD[@]}" "cd $REMOTE_DIR_JAR && \
(pkill -f $ADMIN_JAR_NAME || true) && \
sleep 2 && \