跳转至

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 自动解压并启动;手动部署:

cd /data/envs/docker-aipower-bin
chmod +x backend/aipower    # 若为可执行文件
docker compose up -d

3.3 环境变量(.env 摘要)

数据库:

DB_USER=root
DB_PASSWORD='aipower@2026'
DB_HOST=mysql
DB_NAME=aipower

Redis:

REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=redis@2026

服务端口:

PORT=5080
HOST=0.0.0.0
HOST_PORT=5080

初始管理员:

INIT_ADMIN_TEL=13800138000
INIT_ADMIN_PASSWORD=Admin@123456

默认 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 合并服务:

PPT_MERGE_BASE_URL=http://host.docker.internal:8500

系统密钥:

SYS_INFO_SECRET_KEY=AIPower@2026SecureKey
SYS_INFO_PLATFORM=aipower

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 服务:

RAG_URL=http://127.0.0.1:8088/graph/graph_rag
RAG_BASE_URL=http://127.0.0.1:8088

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 -tdist.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.zipppt.zip 内含预编译的 lib.linux-x86_64-cpython-312/lib.linux-x86_64-cpython-313/install.sh / update.sh 会:

  1. 清空 backend/graph/(保留 .env
  2. 移入新版本二进制/库
  3. 重启 deploy 容器

5. 自行构建 aipower 镜像

cd docker-aipower-bin
docker build -f aipower.Dockerfile -t aipower:latest .

详细步骤可参考包内 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"

7. 延伸阅读