支持 Ubuntu 一键部署与 PM2,并增加系统设置改密。

默认账号改为 admin/admin123,去掉 Windows 部署说明,与客户端同套部署流程。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-01 11:03:29 +08:00
parent d20acaf852
commit d726810320
21 changed files with 1456 additions and 105 deletions
+49 -60
View File
@@ -1,38 +1,61 @@
# crypto_okx_hub 部署文档
# crypto_okx_hub 部署文档(Ubuntu)
**仓库:** [https://git.bz121.com/dekun/crypto_okx_hub.git](https://git.bz121.com/dekun/crypto_okx_hub.git)
配套说明:**[使用说明.md](./使用说明.md)** · **[设计文档.md](./设计文档.md)**
配套说明:**[使用说明.md](./使用说明.md)** · **[设计文档.md](./设计文档.md)** · **[deploy/README.md](./deploy/README.md)**
关联客户端仓库:[crypto_okx](https://git.bz121.com/dekun/crypto_okx.git)
> 第一期骨架已可用:登录、登记实例、总览拉快照、工作台内嵌/新标签(SSO)。
> 中控与客户端一样:**仅 Ubuntu + PM2 一键部署**。不提供 Windows 部署。
---
## 1. 部署拓扑(推荐)
## 1. 一键部署(推荐)
```
[局域网 PC 或一台云机] [云服务器 A] [云服务器 B]
crypto_okx_hub ──拉快照──▶ crypto_okx crypto_okx
(中控只一份) 公网域名 A 公网域名 B
HUB_BRIDGE_TOKEN=xxx HUB_BRIDGE_TOKEN=yyy
新服务器(免 clone):
```bash
curl -fsSL https://git.bz121.com/dekun/crypto_okx_hub/raw/branch/main/deploy/manage.sh | bash
```
- 客户端:**必须**能被浏览器与中控以 **公网域名(建议 HTTPS)** 访问。
- 中控:可局域网;需能访问各客户端公网 URL。
已安装:
```bash
bash /opt/crypto_okx_hub/deploy/manage.sh
```
菜单:
1. **一键部署** — 系统依赖、Node/PM2、venv、启动 `crypto_okx_hub`
2. **一键卸载** — 备份 `.env` / `hub.db` → 停 PM2 → 移走目录
3. **更新** — git pull + pm2 restart(或含 pip)
4. **仅检测** — 不安装
安装路径:`/opt/crypto_okx_hub`,默认端口 **5100**,默认登录 **admin / admin123**。
---
## 2. 中控环境变量(草案)
## 2. 部署拓扑
实现后提供 `.env.example`,核心项预计包括:
```
[Ubuntu 云机] [云服务器 A] [云服务器 B]
crypto_okx_hub ──拉快照──▶ crypto_okx crypto_okx
(中控只一份,PM2) 公网域名 A 公网域名 B
HUB_BRIDGE_TOKEN=xxx HUB_BRIDGE_TOKEN=yyy
```
- 客户端:**必须**能被浏览器与中控以 **公网域名(建议 HTTPS)** 访问。
- 中控:Ubuntu + PM2;需能访问各客户端公网 URL。
---
## 3. 中控环境变量
| 变量 | 说明 |
|------|------|
| `APP_HOST` / `APP_PORT` | 例如 `0.0.0.0` / `5100` |
| `HUB_USERNAME` / `HUB_PASSWORD` | 中控登录 |
| `FLASK_SECRET_KEY` | Session |
| `DB_PATH` | 注册表 SQLite,默认 `./hub.db` |
| `APP_HOST` / `APP_PORT` | 默认 `0.0.0.0` / `5100` |
| `HUB_USERNAME` / `HUB_PASSWORD` | 默认 `admin` / `admin123`;也可在页面「系统设置」修改 |
| `FLASK_SECRET_KEY` | Session;部署脚本可自动生成 |
| `DB_PATH` | 注册表 SQLite,默认 `hub.db` |
| `HUB_PULL_INTERVAL_SEC` | 总览拉取间隔,默认 `10` |
| `HUB_PULL_TIMEOUT_SEC` | 单机超时,默认 `5` |
@@ -40,58 +63,23 @@
---
## 3. 客户端侧(crypto_okx)联调清单
在每台客户端 `.env`(名称以实现为准):
## 4. 客户端侧(crypto_okx)联调清单
| 变量 | 说明 |
|------|------|
| `HUB_BRIDGE_TOKEN` | 与中控登记的 Token 一致,足够长随机串 |
| `HUB_BRIDGE_TOKEN` | 与中控登记的 Token 一致 |
| (可选)`HUB_EMBED_FRAME_ANCESTORS` | 允许嵌入的中控 Origin |
并确认:
1. 公网 DNS → 该机;反向代理 HTTPS。
2. 快照 API 返回 `ok: true`(见设计文档 §6)。
3. Embed 路径可打开(默认倾向 `/embed`)。
防火墙可选:仅放行中控出口 IP 访问 `/api/hub/*`。
---
## 4. 安装步骤(实现后)
本地 / 局域网示意:
```bash
git clone https://git.bz121.com/dekun/crypto_okx_hub.git
cd crypto_okx_hub
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # 编辑账号端口
python app.py
```
访问:`http://<中控局域网IP>:<APP_PORT>`
生产可用 PM2(实现后提供 `ecosystem.config.cjs`),安装路径建议 `/opt/crypto_okx_hub`。
并确认公网 DNS、快照 API、`/embed` 可打开。
---
## 5. 联调验收
1. 中控添加 2 个客户端(不同公网域名 + Token)。
2. 总览两卡均在线,持仓/浮盈与客户端页面大致一致。
3. 「打开」内嵌可见期权页;「新标签」独立打开。
4. `pm2 stop` 一台客户端后,总览该卡变离线,另一台正常。
---
## 6. 与客户端部署文档的关系
- 客户端安装、PM2、实盘密钥:见 **crypto_okx** 仓库内 [部署文档.md](https://git.bz121.com/dekun/crypto_okx/src/branch/main/部署文档.md) 等。
- 本仓库只描述 **中控自身** 及如何指向已部署的客户端。
1. 中控添加 2 个客户端(不同公网域名 + Token)。
2. 总览两卡均在线。
3. 「打开」内嵌 / 「新标签」正常。
4. 系统设置可改用户名密码,改后可用新账号登录。
---
@@ -99,4 +87,5 @@ python app.py
| 日期 | 说明 |
|------|------|
| 2026-10-01 | 初稿:双仓拓扑、env 草案、联调清单(代码待实现) |
| 2026-10-01 | Ubuntu 一键部署 + PM2;默认 admin/admin123;系统设置改密 |
| 2026-10-01 | 初稿:双仓拓扑、env 草案 |