jiachenlong/docs/DEPLOYMENT.md

12 KiB
Raw Permalink Blame History

🐉 甲辰藏品管理系统 环境部署手册

版本: v1.0
更新日期: 2026-04-24
维护人: 龙大


📋 环境总览

环境 定位 域名 前端IP 后端IP 数据库 状态
C 测试开发 socoolbot.com.cn 47.103.29.111 47.103.9.192:3000 本地PostgreSQL 开放
A 灰度发布 socoolbot.com 120.26.133.10 120.26.144.208:3000 RDS 🔒 封闭
B 主系统(生产) jiachenlong.com 120.55.81.21 47.110.37.129:3000 RDS 🔒 封闭
D 备用环境 socoolbot.cn 47.111.184.210 47.111.184.210:3000 RDS 🔒 封闭

部署流程

开发(C) → 灰度(A测试) → 主系统(B发布) → 备用(D保留)

⚠️ 绝对准则

  1. 环境操作准则A、B环境的系统更新和操作必须经过酷博特允许否则绝对不允许操作
  2. 版本管理准则:版本管理必须经过酷博特确认,不许擅自更新版本号
  3. 数据操作准则RDS数据库中的数据没有酷博特允许不许进行增删改的操作
  4. 操作原则:以上三条为绝对准则,任何情况下都不得违反

🧪 C环境测试开发环境

特点

  • 用途:开发测试,所有新功能先在这里开发测试
  • 数据库本地PostgreSQL不连接RDS
  • 权限:开放,可自行操作
  • 网络:可直接访问公网

服务器信息

角色 IP SSH密码 服务
前端 47.103.29.111 Test1234 Nginx + React构建产物
后端 47.103.9.192 Test1234 FastAPI + 本地PostgreSQL

访问链接

部署步骤

前端部署

# 1. 本地构建
cd /root/.openclaw/workspace/jiachenlong/frontend
npm run build

# 2. 复制到服务器
sshpass -p 'Test1234' scp -o StrictHostKeyChecking=no \
  /root/.openclaw/workspace/jiachenlong/frontend/dist/* \
  root@47.103.29.111:/var/www/frontend/

# 3. 验证
curl -s http://47.103.29.111/ | grep -o 'index-[^"]*\.js'

后端部署

# 1. 同步代码
sshpass -p 'Test1234' scp -o StrictHostKeyChecking=no \
  -r /root/.openclaw/workspace/jiachenlong/backend \
  root@47.103.9.192:/root/jiachenlong/

# 2. 启动服务C环境使用本地数据库不设置DATABASE_URL
sshpass -p 'Test1234' ssh -o StrictHostKeyChecking=no root@47.103.9.192 \
  'cd /root/jiachenlong/backend && \
   export SECRET_KEY="dev-secret-key-12345" && \
   export OSS_ACCESS_KEY_ID="LTAI5t6HUnpFBLEK9194kPVG" && \
   export OSS_ACCESS_KEY_SECRET="LEr4Q8yRxb8D5b24cKfCwlt4MMoke1" && \
   pkill -f uvicorn 2>/dev/null; \
   sleep 1; \
   nohup python3 -m uvicorn app.main:app --host 0.0.0.0 --port 3000 > /tmp/uvicorn.log 2>&1 &'

# 3. 验证
curl -s http://47.103.9.192:3000/

部署后检查

# 1. 前端访问
curl -s -o /dev/null -w "前端: %{http_code}" http://47.103.29.111/

# 2. 后端API
curl -s -o /dev/null -w "后端: %{http_code}" http://47.103.9.192:3000/

# 3. 登录功能
curl -s -X POST http://47.103.9.192:3000/api/auth/login \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=admin&password=admin123" | grep -q "token" && echo "登录OK"

# 4. 列表加载速度(应<1秒
time curl -s "http://47.103.9.192:3000/api/seek/list?page=1&page_size=500" -o /dev/null

常见问题

问题 原因 解决方案
前端显示旧版本 浏览器缓存 Ctrl+F5 强制刷新
后端启动失败 环境变量未设置 检查 start_backend.sh 脚本
数据库连接失败 使用了RDS地址 C环境不使用DATABASE_URL环境变量
加载很慢 seek列表计算网络匹配 检查seek.py是否移除了match_collections_count_from_coolbot

🏭 A环境灰度发布环境

特点

  • 用途:发布前测试验证
  • 数据库阿里云RDS (pgm-bp1t5w248t7s1pvr)
  • 权限🔒 封闭,需酷博特授权
  • 域名socoolbot.com

服务器信息

角色 IP 内网IP SSH密码
WebA 120.26.133.10 172.26.29.103 AJiachen123
AppA 120.26.144.208 172.26.30.31 AJiachen123

访问链接

短信配置

  • 签名:苏州双人旁
  • 模板SMS_505015231
  • AccessKeyLTAI5t86bc1nNKVNyYv4Af6x

部署步骤(需授权)

部署前准备

  1. 确认要部署的版本
  2. 联系酷博特获取授权
  3. 确认数据库密码

第一步:前端部署

# SSH连接
ssh root@120.26.133.10  # 密码: AJiachen123

# 克隆代码
cd /root && rm -rf jiachenlong
git clone http://47.253.189.47:3000/coolbot/jiachenlong.git

# 构建
cd /root/jiachenlong/frontend && npm install && npm run build

# 复制到Nginx目录
rm -rf /var/www/frontend/*
cp -r /root/jiachenlong/frontend/dist/* /var/www/frontend/

# 复制Logo
mkdir -p /var/www/frontend/static/images
cp /root/jiachenlong/static/images/jiachenlong-logo.png /var/www/frontend/static/images/

# 复制用户协议
cp /root/jiachenlong/frontend/dist/user_agreement.html /var/www/frontend/

# 重启Nginx
nginx -s reload

第二步:后端部署

# SSH连接
ssh root@120.26.144.208  # 密码: AJiachen123

# 克隆代码
cd /root && rm -rf jiachenlong
git clone http://47.253.189.47:3000/coolbot/jiachenlong.git

# 安装依赖
cd /root/jiachenlong/backend && pip3 install -r requirements.txt

# 创建启动脚本
cat > /root/jiachenlong/start.sh << 'EOF'
#!/bin/bash
cd /root/jiachenlong/backend
export DATABASE_URL="postgresql://jiachenlong:Passwd1%403@pgm-bp1t5w248t7s1pvr.pg.rds.aliyuncs.com:5432/jiachenlong"
export SECRET_KEY="production-secret-key-a-env"
export OSS_ACCESS_KEY_ID="LTAI5t6HUnpFBLEK9194kPVG"
export OSS_ACCESS_KEY_SECRET="LEr4Q8yRxb8D5b24cKfCwlt4MMoke1"
export SMS_ACCESS_KEY_ID="LTAI5t86bc1nNKVNyYv4Af6x"
export SMS_ACCESS_KEY_SECRET="92EVAIE3GECr214c9UaSF6TSYJvDLY"
export SMS_SIGN_NAME="苏州双人旁"
export SMS_TEMPLATE_CODE="SMS_505015231"
nohup python3 -m uvicorn app.main:app --host 0.0.0.0 --port 3000 > /tmp/uvicorn.log 2>&1 &
echo "A环境后端已启动"
EOF

chmod +x /root/jiachenlong/start.sh

# 启动服务
pkill -f uvicorn; sleep 1; /root/jiachenlong/start.sh

第三步:验证部署

# 1. 版本检查
curl -s https://socoolbot.com/ | grep -o 'v[0-9.]*'

# 2. API检查
curl -s -o /dev/null -w "API: %{http_code}" https://socoolbot.com/api/

# 3. 登录测试
curl -s -X POST https://socoolbot.com/api/auth/login \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=admin&password=admin123"

部署后检查清单

  • 前端页面可访问HTTP和HTTPS
  • 版本号显示正确
  • 登录功能正常
  • 藏品列表加载正常
  • 藏品新增/编辑功能正常
  • 图片上传功能正常
  • 短信发送功能正常
  • 历史数据完整(用户数、藏品数)

🏭 B环境主系统生产环境

特点

  • 用途:主系统生产环境,统一入口
  • 数据库阿里云RDS (pgm-bp1t5w248t7s1pvr)
  • 权限🔒 封闭,需酷博特授权
  • 域名jiachenlong.com

服务器信息

角色 IP 内网IP SSH密码
WebB 120.55.81.21 172.26.30.30 Jiachen123
AppB 47.110.37.129 172.26.29.98 Jiachen123

访问链接

短信配置

  • 签名:双人旁文化传媒
  • 模板SMS_504740243
  • AccessKeyLTAI5tPzZDqbM1J6zbk8Wy4q

部署步骤(需授权)

第一步:前端部署

ssh root@120.55.81.21  # 密码: Jiachen123

# 克隆代码并构建同A环境
cd /root && rm -rf jiachenlong
git clone http://47.253.189.47:3000/coolbot/jiachenlong.git
cd /root/jiachenlong/frontend && npm install && npm run build

rm -rf /var/www/frontend/*
cp -r /root/jiachenlong/frontend/dist/* /var/www/frontend/
mkdir -p /var/www/frontend/static/images
cp /root/jiachenlong/static/images/jiachenlong-logo.png /var/www/frontend/static/images/
cp /root/jiachenlong/frontend/dist/user_agreement.html /var/www/frontend/
nginx -s reload

第二步:后端部署

ssh root@47.110.37.129  # 密码: Jiachen123

# 克隆代码
cd /root && rm -rf jiachenlong
git clone http://47.253.189.47:3000/coolbot/jiachenlong.git
cd /root/jiachenlong/backend && pip3 install -r requirements.txt

# 创建启动脚本注意B环境使用不同的短信配置
cat > /root/jiachenlong/start.sh << 'EOF'
#!/bin/bash
cd /root/jiachenlong/backend
export DATABASE_URL="postgresql://jiachenlong:Passwd1%403@pgm-bp1t5w248t7s1pvr.pg.rds.aliyuncs.com:5432/jiachenlong"
export SECRET_KEY="production-secret-key-b-env-20260401"
export OSS_ACCESS_KEY_ID="LTAI5t6HUnpFBLEK9194kPVG"
export OSS_ACCESS_KEY_SECRET="LEr4Q8yRxb8D5b24cKfCwlt4MMoke1"
export SMS_ACCESS_KEY_ID="LTAI5tPzZDqbM1J6zbk8Wy4q"
export SMS_ACCESS_KEY_SECRET="ErT3jH9kL2mN5pQ7rS8uV0wX1yZ4aB6c"
export SMS_SIGN_NAME="双人旁文化传媒"
export SMS_TEMPLATE_CODE="SMS_504740243"
nohup python3 -m uvicorn app.main:app --host 0.0.0.0 --port 3000 --workers 1 > /tmp/uvicorn.log 2>&1 &
echo "B环境后端已启动"
EOF

chmod +x /root/jiachenlong/start.sh
pkill -f uvicorn; sleep 1; /root/jiachenlong/start.sh

部署后检查清单

  • 前端页面可访问HTTP和HTTPS
  • 版本号显示正确
  • 登录功能正常
  • 所有功能正常
  • 短信发送正常
  • 数据完整
  • 向酷博特汇报部署完成

🧪 D环境备用环境

特点

  • 用途:备用保留
  • 数据库阿里云RDS
  • 权限🔒 封闭,需酷博特授权

服务器信息

角色 IP 内网IP SSH密码
WebD 47.111.184.210 172.26.30.32 (同A/B)
AppD 47.111.184.210 172.26.30.33 (同A/B)

访问链接

短信配置

  • 签名:双人旁文化传媒
  • 模板SMS_504740243

🔧 常见问题处理

1. 前端显示旧版本

# 原因:浏览器缓存
# 解决Ctrl+F5 强制刷新或清理Nginx缓存

2. 后端启动失败

# 检查日志
tail -50 /tmp/uvicorn.log

# 常见错误:
# - SECRET_KEY未设置 → 添加环境变量
# - 数据库连接失败 → 检查DATABASE_URL格式密码需要URL编码
# - 端口被占用 → pkill -f uvicorn 后重试

3. 加载很慢seek列表

# 检查seek.py是否移除了match_collections_count_from_coolbot调用
grep -n "network_matched_count" /root/jiachenlong/backend/app/routers/seek.py

# 确认返回的network_matched_count为0
curl -s "http://后端IP:3000/api/seek/list?page=1&page_size=5" | grep network_matched_count

4. 图片无法上传

# 检查OSS配置
curl -s http://后端IP:3000/api/collections/test-upload

# 检查Nginx上传大小限制
grep client_max_body_size /etc/nginx/nginx.conf

5. 短信发送失败

# 检查环境变量
ssh root@后端IP "env | grep SMS"

# 检查模板代码和签名是否匹配当前环境

6. 数据库连接超时

# 检查RDS白名单
# C环境使用本地数据库不连RDS
# A/B/D环境需要检查安全组是否允许访问RDS

📝 版本管理

更新版本流程

  1. 修改代码文件头部Version注释
  2. 更新config/VERSION.json
  3. 更新config/CHANGELOG.md
  4. 提交Git
  5. 部署后验证

版本检查命令

# 本地
cat /root/.openclaw/workspace/jiachenlong/config/VERSION.json

# 服务器
curl -s http://服务器IP/ | grep -o 'v[0-9.]*'

📞 紧急联系人

  • 酷博特:项目总负责,所有重大操作需汇报
  • 龙大:环境部署负责人

📝 部署记录模板

## 部署记录 - [日期]

### 环境:[A/B/C/D]
### 版本:[v0.0.x]
### 部署人:龙大

#### 部署步骤
1. [步骤1]
2. [步骤2]

#### 检查结果
- [x] 前端OK
- [x] 后端OK
- [x] 登录OK

#### 问题记录
无

#### 汇报状态
已向酷博特汇报