Files
SBrainCO/deploy-server.sh
T
freedakgmail c3fbe4ab81 feat: SaaS架构改造 - 后端部署到服务器, 数据库留本机用frp隧道连接
- 新增 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 服务(后端已上服务器)
2026-08-02 18:12:15 +08:00

74 lines
2.0 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "=========================================="