cfa12c9b7f
- adminPool 连服务器本地 5432 sbrain_admin (SCRAM 认证) - tenantPool/pool 连 FRP 隧道 15432 bill_query (trust 认证) - query() 自动注入 store_code 数据权限 (store/regional 角色) - 区域经理 region 字段存储逗号分隔的 store_code 列表 - /overview 和 /overview/daily 对 scoped 用户从 bill_fact 聚合 - tenant_users.region 扩展为 VARCHAR(500) - deploy.sh .env 增加 ADMIN_DB_* 配置 - run.md 更新数据库连接架构说明 - 新增海淀区区域经理用户 (21 家海淀区门店)
145 lines
3.8 KiB
Bash
Executable File
145 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# ============================================================
|
|
# 一键部署前端+后端到 dm.all8ai.top 服务器
|
|
# 用法:
|
|
# bash deploy.sh # 全量部署(后端+前端)
|
|
# bash deploy.sh server # 只部署后端
|
|
# bash deploy.sh front # 只部署前端
|
|
# ============================================================
|
|
|
|
set -e
|
|
|
|
# 服务器配置
|
|
SERVER_IP="152.136.182.184"
|
|
SERVER_USER="ubuntu"
|
|
REMOTE_WEB="/var/www/dm.all8ai.top"
|
|
REMOTE_API="/opt/sbrain-server"
|
|
|
|
# 项目路径
|
|
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
CLIENT_DIR="$PROJECT_DIR/client"
|
|
SERVER_DIR="$PROJECT_DIR/server"
|
|
|
|
TARGET="${1:-all}"
|
|
|
|
# ============================================================
|
|
# 部署后端
|
|
# ============================================================
|
|
deploy_server() {
|
|
echo "=========================================="
|
|
echo " 部署后端到 dm.all8ai.top"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 1. 同步代码
|
|
echo "[1/4] 同步代码..."
|
|
rsync -avz --delete \
|
|
--exclude='node_modules' \
|
|
--exclude='.env' \
|
|
--exclude='dist' \
|
|
--exclude='.git' \
|
|
"$SERVER_DIR/" "$SERVER_USER@$SERVER_IP:$REMOTE_API/"
|
|
echo "✓ 代码同步完成"
|
|
echo ""
|
|
|
|
# 2. 安装依赖
|
|
echo "[2/4] 安装依赖..."
|
|
ssh "$SERVER_USER@$SERVER_IP" "cd $REMOTE_API && npm install --production"
|
|
echo "✓ 依赖安装完成"
|
|
echo ""
|
|
|
|
# 3. 写入服务器 .env
|
|
echo "[3/4] 写入服务器配置..."
|
|
ssh "$SERVER_USER@$SERVER_IP" "cat > $REMOTE_API/.env << 'ENVEOF'
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=15432
|
|
DB_NAME=bill_query
|
|
DB_USER=freedak
|
|
DB_PASSWORD=
|
|
DB_POOL_MAX=10
|
|
|
|
PORT=9333
|
|
JWT_SECRET=malan-ops-2026-secret-key
|
|
CLIENT_URL=https://dm.all8ai.top
|
|
ZHIPU_API_KEY=sk-c0c5174892c44ff48d587cd040fbdd40
|
|
|
|
ADMIN_DB_HOST=127.0.0.1
|
|
ADMIN_DB_PORT=5432
|
|
ADMIN_DB_NAME=sbrain_admin
|
|
ADMIN_DB_USER=sbrain_admin
|
|
ADMIN_DB_PASSWORD=sbrain2026
|
|
ENVEOF"
|
|
echo "✓ 配置写入完成"
|
|
echo ""
|
|
|
|
# 4. pm2 重启
|
|
echo "[4/4] 重启后端服务..."
|
|
ssh "$SERVER_USER@$SERVER_IP" "cd $REMOTE_API && pm2 delete sbrain-server 2>/dev/null; pm2 start 'npx tsx src/index.ts' --name sbrain-server && pm2 save"
|
|
echo "✓ 后端已启动"
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo " 后端部署成功!端口 9333"
|
|
echo " 日志: ssh $SERVER_USER@$SERVER_IP 'pm2 logs sbrain-server'"
|
|
echo "=========================================="
|
|
echo ""
|
|
}
|
|
|
|
# ============================================================
|
|
# 部署前端
|
|
# ============================================================
|
|
deploy_front() {
|
|
echo "=========================================="
|
|
echo " 部署前端到 dm.all8ai.top"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 1. 构建前端
|
|
echo "[1/3] 构建前端..."
|
|
cd "$CLIENT_DIR"
|
|
npm run build
|
|
echo "✓ 构建完成"
|
|
echo ""
|
|
|
|
# 2. 清理服务器旧文件
|
|
echo "[2/3] 清理服务器旧文件..."
|
|
ssh "$SERVER_USER@$SERVER_IP" "rm -rf $REMOTE_WEB/assets"
|
|
echo "✓ 旧文件已清理"
|
|
echo ""
|
|
|
|
# 3. 上传构建产物
|
|
echo "[3/3] 上传构建产物..."
|
|
scp -r "$CLIENT_DIR/dist/"* "$SERVER_USER@$SERVER_IP:$REMOTE_WEB/"
|
|
echo "✓ 上传完成"
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo " 前端部署成功!"
|
|
echo " 访问: https://dm.all8ai.top"
|
|
echo "=========================================="
|
|
echo ""
|
|
}
|
|
|
|
# ============================================================
|
|
# 执行
|
|
# ============================================================
|
|
case "$TARGET" in
|
|
server)
|
|
deploy_server
|
|
;;
|
|
front)
|
|
deploy_front
|
|
;;
|
|
all)
|
|
deploy_server
|
|
deploy_front
|
|
;;
|
|
*)
|
|
echo "用法: bash deploy.sh [all|server|front]"
|
|
echo " all - 部署后端+前端(默认)"
|
|
echo " server - 只部署后端"
|
|
echo " front - 只部署前端"
|
|
exit 1
|
|
;;
|
|
esac
|