Skip to main content

quantmind-deploy

QuantMind 部署与运维 — 一键部署、快速部署、Docker 部署、数据库初始化、部署问题排查。在 QuantBot / Claude Code 中部署 QuantMind、排查部署失败、初始化数据库、检查服务健康、更新部署时使用。触发词:部署、一键部署、快速部署、部署失败、装不上、怎么部署、docker部署、部署问题、数据库初始化、服务起不来

Informations de source

Dépôt
qusong0627/QuantMind
Dernière activité de la source
10 octobre 2026 à 17:13
Langue détectée de SKILL.md
chinois
Étoiles
1 751
Forks
386

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
quantmind-deploy
description
QuantMind 部署与运维 — 一键部署、快速部署、Docker 部署、数据库初始化、部署问题排查。在 QuantBot / Claude Code 中部署 QuantMind、排查部署失败、初始化数据库、检查服务健康、更新部署时使用。触发词:部署、一键部署、快速部署、部署失败、装不上、怎么部署、docker部署、部署问题、数据库初始化、服务起不来
> ⚙️ 本技能遵循公共运行环境契约(最高优先级,先于本文其余内容执行): > 详见 [_shared/env-contract.md](../_shared/env-contract.md),执行前先读它。 # QuantMind 部署技能 QuantMind 部署运维完整指南。覆盖**部署前准备 → 一键/手动部署 → 部署后检查 → 问题排查 → 更新 → 云端训练**全流程。本技能针对 AI 编程助手编写,每步都给出可直接执行的命令与判断标准,避免"不知道下一步"卡壳。 ## 0. 安装技能包(让 AI 帮你部署) 本技能包兼容**主流 AI 编程工具**(Claude Code / Codex / OpenCode / Trae / MarsCode 等),安装后 AI 能自动识别"部署/装不上"等意图并调用本技能指导部署。 ### 方式一:Claude Code / QuantBot(原生 SKILL.md) ```bash # 解压到 Claude Code 全局技能目录 unzip quantmind-operations-skill.zip -d ~/.claude/ # 验证 ls ~/.claude/skills/quantmind-deploy/SKILL.md ``` ### 方式二:从项目仓库安装(任何工具) ```bash # 项目根目录 skills/ 下即全部技能 cp -r /opt/quantmind/skills/* ~/.claude/skills/ ``` ### 方式三:其他主流 AI 工具(OpenCode / Codex / Trae / MarsCode 等) 各工具虽不原生识别 SKILL.md,但都读取 **AGENTS.md**(项目级指令)。把技能包要点导入即可: ```bash # ① 通用做法:把 SKILL.md 内容并入 AGENTS.md # 项目根创建/追加 AGENTS.md,把关键流程粘贴进去 cat ~/.claude/skills/quantmind-deploy/SKILL.md >> AGENTS.md # ② OpenAI Codex unzip quantmind-operations-skill.zip -d ~/.codex/ # Codex 读取 ~/.codex/AGENTS.md(把本技能要点放入) # ③ OpenCode unzip quantmind-operations-skill.zip -d ~/.config/opencode/ # 或在项目根 AGENTS.md 引用本技能要点 # ④ 腾讯 Trae / 字节 MarsCode # 克隆仓库后把 SKILL.md 要点写入项目 AGENTS.md,AI 即可按流程部署 ``` ### 让 AI 部署 安装技能后,直接对 AI 助手说: - "帮我部署 QuantMind" → AI 读取本技能,按"部署前准备→部署→检查"执行 - "部署不上,帮我排查" → AI 按"问题排查"诊断树逐项定位 - "一键部署" → AI 执行 `deploy/full-deploy.sh` ### 推荐编程工具(部署环境) | 工具 | 用途 | 说明 | | ------------------------- | ---------- | ----------------------- | | **Claude Code** | AI 编程/部署助手 | 原生支持 SKILL.md,装技能包即自动识别 | | **OpenCode** | AI 编程助手 | 开源,读 AGENTS.md | | **OpenAI Codex** | AI 编程助手 | 读 \~/.codex/AGENTS.md | | **腾讯 Trae / 字节 MarsCode** | AI IDE | 读项目 AGENTS.md | | **VS Code** | 代码编辑 | 前端/后端调试 | | **Docker Desktop** | 容器管理 | 本地调试用,服务器用 docker-ce | | **MobaXterm / Termius** | SSH 终端 | 连服务器执行部署命令 | | **Git** | 版本管理 | 拉取/更新代码 | ## 架构总览 QuantMind 单机 Docker Compose 部署(`docker-compose.yml`),11+ 服务: | 容器 | 服务 | 端口 | 说明 | | ------------------------ | ------------- | --------- | --------------------------- | | `quantmind-db` | PostgreSQL 15 | 5432 | 主数据库 | | `quantmind-redis` | Redis 7 | 6379 | 缓存/消息(DB 0-5 分配) | | `quantmind` | 后端主服务 | 8000-8003 | api/engine/trade/stream 四合一 | | `quantmind-celery` | Celery Worker | — | 异步任务(回测/同步/推理) | | `quantmind-celery-beat` | Celery Beat | — | 定时调度 | | `quantmind-web` | 前端 Web | 80 | Nginx 托管 React 构建产物 | | `quantmind-data-gateway` | 数据网关 | — | 行情/资金流聚合 | | `quantmind-huntly` | Huntly | 8090 | RSS 新闻存储/阅读器 | | `quantmind-rsshub` | RSSHub | 1200 | 通用网站订阅 | | `qwenpaw` | QwenPaw | 8088 | AI 代理(可选);**默认仅绑 127.0.0.1**,外部直连需 `QWENPAW_BIND=0.0.0.0` | > **QwenPaw 外部访问**:`qwenpaw` 端口默认只绑 `127.0.0.1`(安全收敛口径)。前端 QuantBot 页面用 iframe 直连 > `http://<API网关主机>:8088/`,若在远端浏览器/Electron 打开需要在 `.env` 增加 `QWENPAW_BIND=0.0.0.0`, > 然后 `docker compose up -d qwenpaw`(**改端口映射必须 recreate,`restart` 不生效**),并在云安全组放行 8088 > 且**限定来源 IP**(QwenPaw 为免登录模式)。仅容器内 `http://qwenpaw:8088` 互访则无需改动。 ## 1. 部署前准备(重要,先做完再部署) ### 1.1 环境要求(多系统 + 硬件) | 项目 | 要求 | 说明 | | ----------- | ---------------------------- | ------------------------------------------------------- | | **系统** | Ubuntu 22.04 LTS 或 24.04 LTS | **部署脚本仅支持 Ubuntu 22.04+**,其他系统会被拒绝 | | **Windows** | Docker Desktop + WSL2 后端 | 在 WSL2 终端内执行 `docker compose` | | **macOS** | Docker Desktop 直接运行 | 兼容 | | **云服务器** | 任意 Docker 环境 | 单机即可 | | **CPU 架构** | **仅 x86\_64 / AMD64** | **ARM(aarch64)不支持**——微软 Qlib 框架仅发布 x86\_64,ARM 无法装 Qlib | | **CPU** | 4 核以上 | 推荐 8 核(训练/回测耗 CPU) | | **内存** | 16GB 以上(运行) | 模型训练推荐 **64GB+**,推理/回测 **32GB+**;内存不足会 OOM 训练卡死 | | **磁盘** | 100GB 以上可用 | 数据 + 镜像 + 特征快照(\~15GB)+ 模型 | > ⚠️ 训练机建议 ≥64GB 内存;若只有 32GB,缩小时间窗/特征数避免 OOM。 ### 1.2 网络检查(部署前必测) 国内服务器常需配置镜像源。部署脚本会自动选 Docker/PyPI/APT 镜像源,也可手动指定。 ```bash # 检查 DNS + 各仓库连通性(任一失败先解决再部署) curl -fsSL --connect-timeout 5 https://gitee.com >/dev/null && echo "gitee OK" || echo "gitee FAIL" curl -fsSL --connect-timeout 5 https://registry.npmmirror.com >/dev/null && echo "npm OK" || echo "npm FAIL" curl -fsSL --connect-timeout 5 https://pypi.org >/dev/null && echo "pypi OK" || echo "pypi FAIL" docker info >/dev/null 2>&1 && echo "docker OK" || echo "docker 未安装(部署脚本会装)" ``` **网络差时的应对**: - 手动指定 Docker 镜像源:`QUANTMIND_DOCKER_MIRROR=https://你的加速域名 sudo -E bash deploy/full-deploy.sh` - Docker 镜像源:`/etc/docker/daemon.json` 配置 `registry-mirrors`(阿里云/腾讯云镜像加速) - PyPI 源:`PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/`(构建镜像时 `--build-arg`) ### 1.3 提前决定要填写的内容 部署脚本会**交互式**问你以下内容,提前准备好答案: | 部署时问什么 | 示例答案 | 说明 | | ------------------- | ----------------------------- | --------------------------------- | | 服务器 IP | `192.168.1.100` / `localhost` | 无公网 IP 用 localhost 或局域网 IP | | 选择镜像源 | 国内选阿里云/中科大 | 网络差时自动选,也可 `QUANTMIND_MIRROR=` 指定 | | 是否确认部署 | `y` | 确认后开始安装 | | (可选)QuantDB API Key | `qdb_xxx` | **部署后**在后台填,见 \[\[quantdb-sdk]] | ### 1.4 部署前备份 ```bash # 若已有旧数据/旧部署,先备份 sudo cp -r /opt/quantmind/data /opt/quantmind/data.bak.$(date +%Y%m%d) ``` ## 2. 一键部署(推荐) ```bash # 完整一键部署:从 CDN 下载完整业务数据/模型/Qlib 数据 + 镜像包,恢复后开箱即用 curl -fsSL https://gitee.com/qusong0627/QuantMind/raw/master/deploy/full-deploy.sh | sudo bash # 自定义 CDN / 分支 / 镜像加速 sudo QUANTMIND_OFFLINE_BASE_URL='https://cdn.example.com/quantmind-offline' \ QUANTMIND_REF='master' \ QUANTMIND_DOCKER_MIRROR='https://你的镜像加速域名' \ bash deploy/full-deploy.sh ``` **部署 8 阶段**(详见 `docs/部署指南.md` 第四节): 1. 安装系统依赖与 Docker / Compose,配置镜像加速; 2. 从 CDN 下载离线包并 SHA-256 全量校验(支持断点续传 / 复用); 3. 导入 Docker 镜像(9 个;`rsshub` 部署时在线拉取); 4. 拉取代码(支持 Compose/Dockerfile 受控覆盖层); 5. 恢复业务数据、模型与 Qlib 数据; 6. 恢复 PostgreSQL 业务数据(已有数据默认保留); 7. 恢复 QwenPaw 持久化卷; 8. 构建启动全部服务并自动配置 QwenPaw 运行时。 ## 3. 源码部署(已下线) > 在线源码部署脚本 `deploy/deploy.sh` / `quick-deploy.sh` 已从仓库移除。请使用第 2 节「一键部署」(`deploy/full-deploy.sh`),或按第 4 节用 `docker compose` 手动部署。 ## 4. 手动部署(源码) ```bash sudo git clone https://gitee.com/qusong0627/QuantMind.git /opt/quantmind cd /opt/quantmind # 编写 .env:DB_PASSWORD / SECRET_KEY / JWT_SECRET_KEY / STORAGE_MODE=local(见 docs/部署指南.md) sudo docker compose build quantmind sudo docker compose up -d ``` 详见 `docs/部署指南.md` 第五节「完全手动部署」。 ## 5. 数据库初始化(关键) 服务启动时自动幂等重放 **`backend/shared/db_init.sql`**(含 users 等全部核心表): - 容器内路径 `/app/backend/shared/db_init.sql`(由 `./backend:/app/backend` 挂载提供) - 优先从 quantmind 容器执行 psql,失败则从 db 容器执行 - 若存在 `data/quantmind_init.sql` 则补充初始化数据 ```bash # 手动执行数据库初始化 docker exec quantmind bash -c "psql -h db -U quantmind -d quantmind -f /app/backend/shared/db_init.sql --quiet -v ON_ERROR_STOP=0" ``` **初始化后必须验证 users 表存在**(最常见部署失败点): ```bash docker exec quantmind-db psql -U quantmind -d quantmind -c "\dt users" # 期望看到 users 表;若不存在说明 db_init.sql 没跑成功 ``` ## 6. 部署后检查(按顺序,每步都过再继续) ### 6.1 容器健康 ```bash docker compose -f /opt/quantmind/docker-compose.yml ps # 期望 quantmind/quantmind-celery/quantmind-celery-beat/quantmind-web/quantmind-db/quantmind-redis 都 Up ``` ### 6.2 数据库 & Redis ```bash docker exec quantmind-db pg_isready -U quantmind # 期望 "accepting connections" docker exec quantmind-redis redis-cli ping # 期望 "PONG" ``` ### 6.3 后端 API 健康 ```bash curl -s http://localhost:8000/api/v1/health # 期望返回 {"status":"healthy", ...} 含 api/engine/trade/stream 四服务 ``` ### 6.4 登录验证(关键:验证 users 表 + 认证链路) ```bash curl -s -X POST http://localhost:8000/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123","tenant_id":"default"}' # 期望返回 access_token;若 401/500 → users 表问题(见排查) ``` ### 6.5 前端访问 ```bash curl -s -I http://localhost | head -1 # 期望 200 OK ``` ### 6.6 登录后台 + 配置数据源 1. 浏览器访问 `http://服务器IP`,用 admin 登录 2. 后台「数据管理」配置 **QuantDB API Key**(见 \[\[quantdb-sdk]]) 3. 触发一次数据同步(见 \[\[quantmind-operations]] 第 3 节) ## 7. 更新部署 ```bash cd /opt/quantmind # 一键更新脚本(同步代码 → 重建核心镜像 → 重启服务 → 导入数据库补丁 → 健康检查,不动数据库数据) sudo bash deploy/update.sh # 更新到指定分支或 tag sudo bash deploy/update.sh --ref master # 覆盖服务器上未提交的代码改动(谨慎,用 --force 而非 --force-sync) sudo bash deploy/update.sh --force # 纯代码改动,跳过镜像重建 sudo bash deploy/update.sh --no-build # 手动更新 git pull origin master docker compose build docker compose up -d ``` ### 7.1 update.sh 自动做了什么(客户升级说明) | 步骤 | 行为 | 数据是否受影响 |
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub