c3fbe4ab81
- 新增 deploy-server.sh: 后端部署脚本(rsync + npm install + pm2) - frp 隧道从暴露API(3333→13333)改为暴露PostgreSQL(5432→15432) - 后端部署到服务器 /opt/sbrain-server, pm2管理, 端口9333 - Nginx /api/ 从 127.0.0.1:13333 改为 127.0.0.1:9333 - 服务器 .env: DB_PORT=15432 连接frp隧道 - run.md 全面更新为新架构说明 - 新增 docs/20260802-SaaS+本地数据库.md 架构方案文档 - 移除本机后端 launchd 服务(后端已上服务器)
74 lines
2.0 KiB
Bash
74 lines
2.0 KiB
Bash
#!/bin/bash
|
||
# ============================================================
|
||
# 部署后端到 dm.all8ai.top 服务器
|
||
# 用法: bash deploy-server.sh
|
||
# ============================================================
|
||
|
||
set -e
|
||
|
||
SERVER_IP="152.136.182.184"
|
||
SERVER_USER="ubuntu"
|
||
REMOTE_DIR="/opt/sbrain-server"
|
||
|
||
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
SERVER_DIR="$PROJECT_DIR/server"
|
||
|
||
echo "=========================================="
|
||
echo " 部署后端到 dm.all8ai.top"
|
||
echo "=========================================="
|
||
echo ""
|
||
|
||
# 1. 创建远程目录
|
||
echo "[1/5] 准备远程目录..."
|
||
ssh "$SERVER_USER@$SERVER_IP" "mkdir -p $REMOTE_DIR"
|
||
echo "✓ 目录就绪"
|
||
echo ""
|
||
|
||
# 2. 同步代码(排除 node_modules、.env、dist)
|
||
echo "[2/5] 同步代码..."
|
||
rsync -avz --delete \
|
||
--exclude='node_modules' \
|
||
--exclude='.env' \
|
||
--exclude='dist' \
|
||
--exclude='.git' \
|
||
"$SERVER_DIR/" "$SERVER_USER@$SERVER_IP:$REMOTE_DIR/"
|
||
echo "✓ 代码同步完成"
|
||
echo ""
|
||
|
||
# 3. 安装依赖
|
||
echo "[3/5] 安装依赖..."
|
||
ssh "$SERVER_USER@$SERVER_IP" "cd $REMOTE_DIR && npm install --production"
|
||
echo "✓ 依赖安装完成"
|
||
echo ""
|
||
|
||
# 4. 创建 .env(服务器专用配置)
|
||
echo "[4/5] 写入服务器配置..."
|
||
ssh "$SERVER_USER@$SERVER_IP" "cat > $REMOTE_DIR/.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
|
||
ENVEOF"
|
||
echo "✓ 配置写入完成"
|
||
echo ""
|
||
|
||
# 5. 用 pm2 重启后端
|
||
echo "[5/5] 重启后端服务..."
|
||
ssh "$SERVER_USER@$SERVER_IP" "cd $REMOTE_DIR && pm2 delete sbrain-server 2>/dev/null; pm2 start 'npx tsx src/index.ts' --name sbrain-server && pm2 save"
|
||
echo "✓ 后端已启动"
|
||
echo ""
|
||
|
||
# 验证
|
||
echo "=========================================="
|
||
echo " 部署成功!"
|
||
echo " 后端运行在服务器 $SERVER_IP:9333"
|
||
echo " 日志: ssh $SERVER_USER@$SERVER_IP 'pm2 logs sbrain-server'"
|
||
echo "=========================================="
|