Files
SBrainCO/docs/智脑实施方法论/05-部署与运维.md
T
freedakgmail c2a9e27e49 docs: 新增智脑实施方法论文档体系(7篇) + fix: 态势感知关联分析修复
文档:
- 01-项目概述与架构: 技术架构、数据流、部署拓扑
- 02-数据接入与治理: 原始数据导入、物化视图、门店名映射
- 03-指标体系与API开发: 指标分层、SQL模式、常见陷阱
- 04-前端页面开发: 组件规范、页面模板、月份参数管理
- 05-部署与运维: 部署脚本、FRP隧道、PM2、备份
- 06-调试排查手册: 问题分类、8个实际案例、工具速查
- 07-通用方法论: 核心原则、实施阶段、快速复制Checklist

修复:
- situational-awareness.ts: salary_month→salary_period, 日期格式改中文
- 客流-人力匹配: 改用attendance_records打卡数据解析在岗人数
- 客流数据除以30天对齐日均
2026-08-12 11:00:54 +08:00

3.2 KiB
Raw Blame History

05 · 部署与运维

1. 部署脚本

1.1 deploy.sh

# 后端部署
bash deploy.sh server
# → rsync 同步代码到服务器
# → npm install
# → pm2 restart sbrain-server

# 前端部署
bash deploy.sh front
# → npm run build
# → scp dist/* 到服务器 /var/www/dm.all8ai.top

1.2 服务器环境

配置项
服务器IP 152.136.182.184
SSH用户 ubuntu
后端目录 /opt/sbrain-server
前端目录 /var/www/dm.all8ai.top
后端端口 9333
PM2进程名 sbrain-server
Node版本 20+

2. 数据库连接

2.1 连接配置

用途 地址 端口 数据库 用户 密码
业务数据 127.0.0.1 (FRP) 15432 bill_query freedak (空)
平台管理 127.0.0.1 5432 sbrain_admin sbrain_admin sbrain2026

2.2 FRP隧道

[[proxies]]
name = "dm-db"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5432
remotePort = 15432
  • macOS launchd 系统级服务,开机自启
  • 管理命令:
    • 启动:launchctl load ~/Library/LaunchAgents/com.frp.client.plist
    • 停止:launchctl bootout gui/$(id -u)/com.frp.client
    • 日志:tail -f ~/Library/Logs/frpc.log

2.3 远程数据库操作

# 通过FRP隧道查询
ssh ubuntu@152.136.182.184 "PGPASSWORD= psql -h 127.0.0.1 -p 15432 -U freedak -d bill_query -c \"SQL\""

# 本地直接查询
psql -h 127.0.0.1 -p 5432 -U freedak -d bill_query -c "SQL"

3. 数据库备份

# 本地备份
pg_dump -h 127.0.0.1 -p 5432 -U freedak bill_query > backups/bill_query_$(date +%Y%m%d).sql

# 恢复
psql -h 127.0.0.1 -p 5432 -U freedak -d bill_query < backups/bill_query_YYYYMMDD.sql

4. PM2 进程管理

# 查看状态
ssh ubuntu@152.136.182.184 "pm2 status"

# 查看日志
ssh ubuntu@152.136.182.184 "pm2 logs sbrain-server --lines 50"

# 重启
ssh ubuntu@152.136.182.184 "pm2 restart sbrain-server"

# 保存进程列表
ssh ubuntu@152.136.182.184 "pm2 save"

5. 部署前检查清单

  • 数据库已备份
  • 代码已 commit + push
  • FRP隧道正常运行(pgrep -l frpc
  • 后端本地可正常启动
  • 前端本地可正常构建
  • 部署后API健康检查(curl -s https://dm.all8ai.top/api/health

6. 常用运维命令

# API健康检查
curl -s https://dm.all8ai.top/api/health

# 登录获取Token
TOKEN=$(curl -s 'https://dm.all8ai.top/api/auth/login' \
  -H 'Content-Type: application/json' \
  -d '{"username":"总部管理员","password":"123"}' \
  | python3 -c "import sys,json;print(json.load(sys.stdin)['data']['token'])")

# 测试API
curl -s "https://dm.all8ai.top/api/xxx?month=2026-04" \
  -H "Authorization: Bearer $TOKEN" | python3 -m json.tool

# 查看物化视图列表
ssh ubuntu@152.136.182.184 "PGPASSWORD= psql -h 127.0.0.1 -p 15432 -U freedak -d bill_query -c \"SELECT schemaname, matviewname FROM pg_matviews ORDER BY 1,2\""

# 查看表结构
ssh ubuntu@152.136.182.184 "PGPASSWORD= psql -h 127.0.0.1 -p 15432 -U freedak -d bill_query -c \"SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'xxx' ORDER BY ordinal_position\""