PowerCore 部署¶
读者对象:运维工程师、DevOps
版本:v0.1 | 2026-08-13
参考:peagent-onekey-deploy一键部署包
1. 概述¶
PowerCore(后端项目名 aipower)在一键部署中分为两层:
| 组件 | 目录 | 说明 |
|---|---|---|
| docker-aipower-bin | docker-aipower-bin/ |
PowerCore 主后端(FastAPI 二进制/镜像)、MySQL、Redis |
| deploy | deploy/ |
前端静态资源 + GraphRAG + PPT 合并等辅助服务(deploy-app 容器) |
默认端口:
| 服务 | 端口 | 说明 |
|---|---|---|
| aipower 后端 | 5080 | PE Agent / API 调用入口 |
| deploy 前端网关 | 8500 | Nginx + Graph + PPT + 前端 dist |
| GraphRAG | 8088(容器内) | /graph/graph_rag |
2. 环境要求¶
| 项目 | 要求 |
|---|---|
| Docker / Compose | 同 PE Agent |
| Python 运行时 | Graph/PPT 服务由 deploy 容器内 Supervisor 管理,无需宿主机 Python |
| LLM API | 需配置可用的大模型与 Embedding 接口(GraphRAG) |
| 磁盘 | Graph 索引与上传文档占用较大,建议预留 ≥ 100GB |
3. docker-aipower-bin(主后端)¶
3.1 目录结构¶
docker-aipower-bin/
├── docker-compose.yml
├── .env
├── aipower.Dockerfile # 自行构建时使用
└── backend/
├── aipower # 后端可执行文件/目录
├── documents/
├── file_upload/
├── logs/
├── skills/
└── img_base/
3.2 首次启动¶
一键安装时由 install.sh 自动解压并启动;手动部署:
3.3 环境变量(.env 摘要)¶
数据库:
Redis:
服务端口:
初始管理员:
默认 LLM:
LLM_MODEL_NAME=deepseek
LLM_MODEL_VERSION=deepseek-v4-pro
LLM_MODEL_API_KEY=sk-xxxxxxxxxxxx
LLM_MODEL_BASE_URL=https://api.deepseek.com/v1
PPT 合并服务:
系统密钥:
3.4 docker-compose 服务¶
| 服务 | 镜像 | 说明 |
|---|---|---|
aipower |
aipower:v1.0 |
主 API,挂载 backend 目录 |
mysql |
mysql:8.0 |
数据持久化卷 mysql-data |
redis |
redis:7-alpine |
数据持久化卷 redis-data |
环境变量 RAG_URL / RAG_BASE_URL 默认指向 Graph 服务:
3.5 数据卷挂载¶
| 宿主机路径 | 容器路径 | 用途 |
|---|---|---|
./backend/documents |
/aipower/backend/documents |
用户文档 |
./backend/file_upload |
/aipower/backend/file_upload |
上传文件 |
./backend/skills |
/aipower/backend/skills/skills |
SKILL 目录 |
./backend/logs |
/aipower/backend/logs |
日志 |
4. deploy(前端 + GraphRAG + PPT)¶
4.1 目录结构¶
deploy/
├── docker-compose.yml
├── backend/
│ ├── graph/ # GraphRAG 服务(Python)
│ ├── ppt/ # PPT 合并服务
│ └── ragdata/ # Graph 索引与 settings.yaml
├── frontend/
│ ├── dist/ # 前端构建产物
│ ├── dist.zip
│ ├── setup.sh # 解压 dist
│ └── setup_nocr.sh # 更新脚本用(无 OCR)
├── nginx/ # 容器内 Nginx 站点配置
├── supervisor/supervisord.conf
├── logs/
└── redis/redis.conf
4.2 deploy-app 容器¶
docker-compose.yml 核心配置:
services:
app:
image: deploy-app:latest
container_name: aipower-front
ports:
- "8500:80"
volumes:
- ./backend:/app/backend
- ./frontend/dist:/app/frontend/dist
- ./nginx:/etc/nginx/sites-enabled/
容器内 Supervisor 管理:
| 进程 | 命令 | 说明 |
|---|---|---|
| nginx | 静态 + 反代 | 对外 80 → 映射宿主机 8500 |
| redis | 本地 Redis | Graph 缓存 |
| graph | graph/main.py |
GraphRAG API |
| embed | graph/embed_main.py |
Embedding 代理 |
| ppt | ppt/ppt_service.py |
PPT 合并 |
4.3 首次安装前端 dist¶
cd /data/envs/deploy/frontend
# 将 aipower.zip / dist.zip 放入当前目录
chmod +x setup.sh
./setup.sh -t
cd ..
docker compose up -d
setup.sh -t 将 dist.zip 解压到当前目录的 dist/ 子目录。
4.4 GraphRAG 配置¶
backend/graph/.env:
MYSQL_HOST=host.docker.internal
MYSQL_PORT=3306
MYSQL_DBNAME=aipower
GRAPH_RAG_ROOT_DIR=/app/backend/ragdata
OPENAI_API_KEY=sk-xxx
OPENAI_MODEL_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MAX_INDEX_TASKS=3
backend/ragdata/settings.yaml: GraphRAG 索引流水线配置(LLM、Embedding、chunk 大小、实体类型等)。修改后需对相关分类 重新构建索引。
Embedding 默认示例:
embedding_models:
default_embedding_model:
api_base: http://localhost:8189/ollamaEmbeddingsProxy
model: nomic-embed-text:latest
4.5 Graph / PPT 代码更新¶
一键包中 graph.zip、ppt.zip 内含预编译的 lib.linux-x86_64-cpython-312/、lib.linux-x86_64-cpython-313/。install.sh / update.sh 会:
- 清空
backend/graph/(保留.env) - 移入新版本二进制/库
- 重启 deploy 容器
5. 自行构建 aipower 镜像¶
详细步骤可参考包内 aipower部署手册.html(若有)。
6. 验证¶
# PowerCore 后端
curl http://127.0.0.1:5080/peagent/login -X POST -H "Content-Type: application/json" \
-d '{"tel":"13800138000","password":"Admin@123456","captcha":""}'
# deploy 网关
curl -I http://127.0.0.1:8500/
# GraphRAG 状态
curl "http://127.0.0.1:8500/graph/graph_rag?cmd=status"