Add one-click deploy script for /opt production setup with PM2.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-12 13:32:06 +08:00
parent 5e95d3af2f
commit b38b821c35
5 changed files with 519 additions and 32 deletions
+127 -10
View File
@@ -2,12 +2,14 @@
本文档面向 **Ubuntu 物理服务器**(搭载 RTX 3060 Ti,已锁定 120W 功耗墙)的完整环境配置与 PM2 常驻部署流程。适用于首次安装或迁移重装场景。
**标准安装路径:** `/opt/Trading_Studio`root 用户)
**Git 仓库:** https://git.bz121.com/dekun/Trading_Studio.git
---
## 目录
0. [**一键部署(推荐)**](#0-一键部署推荐)
1. [硬件与系统前提](#1-硬件与系统前提)
2. [3060 Ti 120W 功耗墙配置](#2-3060-ti-120w-功耗墙配置)
3. [NVIDIA 驱动与 CUDA](#3-nvidia-驱动与-cuda)
@@ -21,6 +23,112 @@
---
## 0. 一键部署(推荐)
项目内置 `deploy.sh`,以 **root** 用户将 Trading Studio 部署到 `/opt/Trading_Studio`,并自动完成依赖安装、虚拟环境、PyTorch CUDA、PM2 常驻与开机自启。
### 0.1 前提条件
在运行脚本前,请确保服务器已满足:
| 项目 | 说明 |
|------|------|
| 系统 | Ubuntu 22.04 / 24.04 LTS |
| 用户 | **root**`sudo -i` 切换) |
| GPU 驱动 | `nvidia-smi` 可正常输出 |
| 网络 | 可访问 `git.bz121.com` 拉取代码 |
| Ollama | 局域网 `192.168.8.64:11434` 可达(润色功能) |
> **Git 认证:** 若 `git clone` 需要登录,请先在 root 下配置 HTTPS 凭据或 SSH 密钥,再执行部署脚本。
### 0.2 首次一键部署
```bash
# 切换 root
sudo -i
# 方式 A:从 Git 克隆后执行(推荐)
git clone https://git.bz121.com/dekun/Trading_Studio.git /opt/Trading_Studio
cd /opt/Trading_Studio
chmod +x deploy.sh
bash deploy.sh
# 方式 B:若已有本地代码目录,直接在该目录执行
cd /opt/Trading_Studio
chmod +x deploy.sh
bash deploy.sh
```
脚本自动执行以下步骤:
1. 安装系统依赖(python3、ffmpeg、libsndfile 等)
2. 安装 Node.js 20 + PM2
3. 克隆/更新代码到 `/opt/Trading_Studio`
4. 创建 `venv/` 并安装 PyTorch cu121 + requirements.txt
5. 创建 `logs/``uploads/``outputs/` 目录
6. 设置 GPU 120W 功耗墙(若 nvidia-smi 可用)
7. 放行防火墙端口 5683(若 ufw 已启用)
8. `pm2 start ecosystem.config.js` 并配置开机自启
部署成功后访问:
```
http://<服务器局域网IP>:5683
```
### 0.3 脚本命令速查
```bash
cd /opt/Trading_Studio
bash deploy.sh # 首次完整部署 + PM2 启动
bash deploy.sh update # git pull + 更新依赖 + PM2 重启
bash deploy.sh restart # 仅重启 PM2
bash deploy.sh stop # 停止 PM2
bash deploy.sh status # 查看 PM2 / GPU / 端口状态
bash deploy.sh logs # 查看 PM2 最近 80 行日志
bash deploy.sh help # 显示帮助
```
### 0.4 日常更新流程
代码推送到 Git 后,在服务器上执行:
```bash
sudo -i
cd /opt/Trading_Studio
bash deploy.sh update
```
### 0.5 PM2 运维(root 环境)
```bash
pm2 status # 进程状态
pm2 logs trading_studio # 实时日志
pm2 restart trading_studio # 手动重启
pm2 monit # 资源监控
# 应用日志
tail -f /opt/Trading_Studio/trading_studio.log
tail -f /opt/Trading_Studio/logs/pm2-out.log
```
### 0.6 目录布局(/opt 标准路径)
```
/opt/Trading_Studio/
├── deploy.sh # 一键部署脚本
├── app.py # Gradio 主入口
├── venv/ # Python 虚拟环境
├── logs/ # PM2 日志
├── uploads/ # 上传临时文件
├── outputs/ # 合成 wav 输出
├── speaker_emb.pt # 音色文件(Web UI 生成,需手动备份)
└── trading_studio.log # 应用日志
```
---
## 1. 硬件与系统前提
| 项目 | 要求 |
@@ -130,7 +238,7 @@ PyTorch cu121 wheel 通常自带运行时库。若 Whisper 报 cuDNN 错误:
```bash
# 克隆项目
cd ~
cd /opt
git clone https://git.bz121.com/dekun/Trading_Studio.git
cd Trading_Studio
@@ -184,7 +292,7 @@ GPU: NVIDIA GeForce RTX 3060 Ti
```bash
source venv/bin/activate
cd ~/Trading_Studio
cd /opt/Trading_Studio
# 安装其余依赖
pip install -r requirements.txt
@@ -270,7 +378,7 @@ curl http://192.168.8.64:11434/api/chat -d '{
```bash
source venv/bin/activate
cd ~/Trading_Studio
cd /opt/Trading_Studio
# 前台启动(调试)
python app.py
@@ -341,7 +449,7 @@ module.exports = {
启动:
```bash
cd ~/Trading_Studio
cd /opt/Trading_Studio
mkdir -p logs
pm2 start ecosystem.config.js
@@ -349,10 +457,12 @@ pm2 status
pm2 logs trading_studio --lines 50
```
> **推荐:** 直接使用 `bash deploy.sh` 一键完成上述步骤,见 [第 0 节](#0-一键部署推荐)。
### 9.3 方式 B:直接命令行
```bash
cd ~/Trading_Studio
cd /opt/Trading_Studio
pm2 start app.py \
--name "trading_studio" \
@@ -382,7 +492,14 @@ pm2 monit # 实时监控 CPU/内存
### 9.6 更新代码后重新部署
```bash
cd ~/Trading_Studio
cd /opt/Trading_Studio
bash deploy.sh update
```
或手动:
```bash
cd /opt/Trading_Studio
git pull
source venv/bin/activate
pip install -r requirements.txt # 若有新依赖
@@ -395,10 +512,10 @@ pm2 restart trading_studio
### 10.1 迁移到新机器
1. 复制 `speaker_emb.pt`(音色文件,`.gitignore` 中,需手动备份
2. 新机器按本文档完整部署
3.`speaker_emb.pt` 放回项目根目录
4. `pm2 restart trading_studio`
1. 备份 `/opt/Trading_Studio/speaker_emb.pt`(音色文件,不入 Git
2. 新机器执行 `bash deploy.sh` 一键部署
3.`speaker_emb.pt` 复制回 `/opt/Trading_Studio/`
4. `bash deploy.sh restart`
### 10.2 CUDA / 显存问题