Add one-click deploy script for /opt production setup with PM2.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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 / 显存问题
|
||||
|
||||
|
||||
Reference in New Issue
Block a user