chore(deploy): standardize full-stack deployment pipeline to prevent Nginx subpath and permission traps

This commit is contained in:
lidf 2026-04-12 15:53:40 +08:00
parent 43a6018e6a
commit 131a1bb33b

56
scripts/deploy.sh Executable file
View File

@ -0,0 +1,56 @@
#!/bin/bash
# Deepview deployment script
# Usage: ./scripts/deploy.sh
set -e
SERVER_IP="8.148.231.40"
PEM_FILE="$HOME/Downloads/lidf.pem"
REMOTE_FRONTEND_DIR="/opt/apps/deepview-agent/frontend"
REMOTE_BACKEND_DIR="/opt/apps/deepview-agent/backend"
echo "====================================="
echo "🚀 开始部署 Deepview 面诊助理智能体"
echo "====================================="
# 1. 编译前端
echo "📦 正在编译 Angular 前端..."
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
npm run build
echo "📤 正在打包前端产物..."
cd dist/deepview-medical/browser
tar czf frontend.tar.gz .
cd ../../..
# 2. 上传并部署前端
echo "🚀 正在上传并覆盖服务器前端目录..."
scp -i "$PEM_FILE" dist/deepview-medical/browser/frontend.tar.gz root@$SERVER_IP:/tmp/
ssh -i "$PEM_FILE" root@$SERVER_IP <<EOF
mkdir -p $REMOTE_FRONTEND_DIR/deepview
rm -rf $REMOTE_FRONTEND_DIR/deepview/*
tar xzf /tmp/frontend.tar.gz -C $REMOTE_FRONTEND_DIR/deepview/
chown -R root:root $REMOTE_FRONTEND_DIR
rm /tmp/frontend.tar.gz
EOF
echo "✅ 前端部署完成!"
# 3. 打包后端
echo "📦 正在打包 Python 后端..."
tar czf backend.tar.gz --exclude='.env' --exclude='__pycache__' --exclude='*.pyc' -C backend .
# 4. 上传并部署后端
echo "🚀 正在上传并重启后端服务..."
scp -i "$PEM_FILE" backend.tar.gz root@$SERVER_IP:/tmp/
ssh -i "$PEM_FILE" root@$SERVER_IP <<EOF
mkdir -p $REMOTE_BACKEND_DIR
tar xzf /tmp/backend.tar.gz -C $REMOTE_BACKEND_DIR/
chown -R root:root $REMOTE_BACKEND_DIR
rm /tmp/backend.tar.gz
systemctl restart deepview-agent
EOF
rm backend.tar.gz
echo "✅ 后端部署重启完成!"
echo "🎉 全栈部署操作已结束!请验证线上环境: https://agent.brainwork.club/deepview/"