auto-sync: 2026-04-29 20:16:20

This commit is contained in:
cfdaily
2026-04-29 20:16:20 +08:00
parent cce4a86cae
commit 71855d25d6
3 changed files with 0 additions and 0 deletions
+168
View File
@@ -0,0 +1,168 @@
# sanguo_vnpy NAS 部署指南
## 架构概述
严格遵循vnpy官方基础架构,不修改核心代码,只做部署层适配:
- **每个用户一对独立进程**:交易进程(RPC服务端) + Web进程(FastAPI)
- **彻底隔离**:每个用户独立数据目录、独立端口,互不干扰
- **统一入口**:Nginx反向代理按路径分发
- **稳定运维**:systemd管理进程,开机自启,崩溃自动恢复
## 目录结构
```
sanguo_vnpy/ # 项目根目录(在NAS上对应 /mnt/nas-volume/sanguo_vnpy
├── README-NAS-DEPLOY.md # 本文件
├── jiangwei-platform/ # 平台基础设施(姜维维护)
│ └── deploy/
│ └── nas/
│ ├── create-user.sh # 创建新用户脚本
│ ├── create-all-users.sh # 创建所有预设用户
│ ├── generate-all-configs.sh # 生成所有配置
│ ├── port-allocation.md # 端口分配表
│ └── templates/ # 配置模板
├── config/ # 全局配置
│ ├── systemd/ # systemd服务文件
│ └── nginx/ # Nginx location配置片段
├── data/ # 全局共享数据
│ └── history/ # 共享历史行情数据(只读)
└── users/ # 用户目录
├── zhugeliang/ # 诸葛亮
│ ├── data/ # 个人数据
│ ├── logs/ # 日志
│ ├── strategies/ # 个人策略
│ ├── start_trade.py # 交易进程启动脚本
│ └── start_web.py # Web进程启动脚本
├── pangtong/
└── ...
```
## 端口分配
| 用户 | 编号 | RPC请求 | RPC订阅 | Web端口 | Nginx路径 | 状态 |
|------|------|---------|---------|---------|-----------|------|
| 诸葛亮 | 1 | 2010 | 2011 | 8001 | `/zhugeliang/` | 已创建 |
| 庞统 | 2 | 2020 | 2021 | 8002 | `/pangtong/` | 已创建 |
| 司马懿 | 3 | 2030 | 2031 | 8003 | `/simayi/` | 已创建 |
| 张飞 | 4 | 2040 | 2041 | 8004 | `/zhangfei/` | 已创建 |
| 关羽 | 5 | 2050 | 2051 | 8005 | `/guanyu/` | 已创建 |
| 赵云 | 6 | 2060 | 2061 | 8006 | `/zhaoyun/` | 已创建 |
| 姜维 | 7 | 2070 | 2071 | 8007 | `/jiangwei/` | 已创建 |
## 部署到NAS步骤
### 1. 克隆项目到NAS
```bash
git clone <repo-url> /mnt/nas-volume/sanguo_vnpy
cd /mnt/nas-volume/sanguo_vnpy
```
### 2. 安装依赖
```bash
pip install vnpy vnpy_webtrader
# 安装需要的gateway和app
# pip install vnpy_ctp vnpy_ctastrategy ...
```
### 3. 启用systemd服务
```bash
# 复制服务文件
cp config/systemd/*.service /etc/systemd/system/
# 重载systemd
systemctl daemon-reload
# 启用并启动所有服务
for user in zhugeliang pangtong simayi zhangfei guanyu zhaoyun jiangwei; do
systemctl enable --now sanguo-trade-$user
systemctl enable --now sanguo-web-$user
done
```
### 4. 配置Nginx
在Nginx主配置中包含所有用户配置:
```nginx
server {
listen 443 ssl;
server_name your-nas-domain.com;
# SSL证书配置...
# 包含所有用户配置
include /mnt/nas-volume/sanguo_vnpy/config/nginx/*.conf;
}
```
然后重载Nginx
```bash
nginx -t && systemctl reload nginx
```
### 5. 访问
- https://your-nas-domain.com/zhugeliang/ → 诸葛亮
- https://your-nas-domain.com/zhangfei/ → 张飞
- 依此类推...
## 添加新用户
```bash
cd /mnt/nas-volume/sanguo_vnpy/jiangwei-platform/deploy/nas
./create-user.sh <username> <user-id>
```
然后按照脚本输出的后续步骤操作。
## 维护命令
### 查看状态
```bash
# 查看某个用户进程状态
systemctl status sanguo-trade-zhugeliang
systemctl status sanguo-web-zhugeliang
# 查看日志
journalctl -u sanguo-trade-zhugeliang -f
```
### 重启进程
```bash
systemctl restart sanguo-trade-zhugeliang
systemctl restart sanguo-web-zhugeliang
```
### 停止进程(不影响他人)
```bash
systemctl stop sanguo-trade-zhugeliang
systemctl stop sanguo-web-zhugeliang
```
## 设计原则
1.**不修改vnpy核心代码**:完全使用官方原生架构
2.**彻底隔离**:一人一个进程,一人一个数据目录,互不干扰
3.**易于维护**:可以独立启停单个用户进程,不影响全局
4.**自动配置**:脚本自动生成所有配置,减少手工出错
5.**保留已有功能**:项目原有的任务分配、agent协作完全不受影响
## 故障排查
1. **Web打不开** → 检查systemd状态 `systemctl status sanguo-web-<user>`
2. **无法连接交易进程** → 检查交易进程是否启动 `systemctl status sanguo-trade-<user>`
3. **端口冲突** → 检查 `port-allocation.md` 确认端口分配
4. **WebSocket连不上** → 检查Nginx配置是否包含了Upgrade连接头
---
*维护:姜维 伯约*
*更新:2026-03-31*