---
title: 部署Docker Compose单节点
description: "1. 拉取KunpengRAG仓库并进入到Open WebUI的Docker Compose部署目录。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengrag/bestpractice/kunpengrag_21_0081.html
sourcePath: /source/zh/kunpengrag/bestpractice/kunpengrag_21_0081.html
indexId: be6b99da90dd372c07f4795bb17e2843510fc44a531061b0d528769e4d8c3df958
---
# 部署Docker Compose单节点

#### 集中部署Open WebUI + openGauss

1. 拉取KunpengRAG仓库并进入到Open WebUI的Docker Compose部署目录。

```
git clone --branch v2.0.1 https://gitee.com/kunpeng_compute/KunpengRAG.git
cd KunpengRAG/deployment/docker-compose/openwebui
```


2. 无法访问外网的情况需要配置.env文件，禁用Open WebUI自动访问huggingface下载模型的功能。

```
OFFLINE_MODE=True
```


3. 修改“KunpengRAG/deployment/docker-compose/openwebui/docker-compose.yaml”文件中open-webui组件environment中的“OPENGAUSS_DB_URL”参数为集中式部署openGauss数据库链接串“${CENTRALIZED_OPENGAUSS_DB_URL}”。部署文件中默认为集中式数据库连接串，若未修改过部署文件，此步骤无需修改。

```
services:
open-webui:
container_name: openwebui
env_file: .env
image: swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/openwebui:0.6.36
environment:
# OpenGauss 数据库连接 URL
- OPENGAUSS_DB_URL=
${CENTRALIZED_OPENGAUSS_DB_URL}
- OFFLINE_MODE=${OFFLINE_MODE}
- VECTOR_DB=${VECTOR_DB}
- PORT=${WEBUI_PORT}
```


4. 配置.env文件中参数（不配置则按默认值）。

```
# The port number exposed by the openwebui service
WEBUI_PORT=8123
# Enable all below if you are using vector database: openGauss
VECTOR_DB=opengauss
COMPOSE_PROFILES=${VECTOR_DB}
OPENGAUSS_USERNAME=opengauss_user
OPENGAUSS_PASSWORD=Openwebui$123
OPENGAUSS_HOST=openwebui-opengauss
# The port number for accessing the openGauss database from outside the container
HOST_OPENGAUSS_PORT=8888
# The port number for accessing the openGauss database from inside the container
OPENGAUSS_PORT=5432
OPENGAUSS_DATABASE=openwebui
# Centralized deployment mode
CENTRALIZED_OPENGAUSS_DB_URL=opengauss://${OPENGAUSS_USERNAME}:${OPENGAUSS_PASSWORD}@${OPENGAUSS_HOST}:${OPENGAUSS_PORT}/${OPENGAUSS_DATABASE}
# Decentralized deployment mode
OTHER_OPENGAUSS_DB_URL=opengauss://${OPENGAUSS_USERNAME}:${OPENGAUSS_PASSWORD}@${OPENGAUSS_HOST}:${HOST_OPENGAUSS_PORT}/${OPENGAUSS_DATABASE}
```


5. 运行docker-compose命令一键安装并部署Open WebUI服务（包含openGauss服务）。

```
docker-compose up -d
```


  该命令会在线从鲲鹏镜像仓库拉取服务对应的容器镜像文件，此过程需要较长时间。

6. 上述命令运行完毕后，检查是否所有的容器已经部署启动。

```
docker ps
```


  按照默认配置部署成功后，下列2个容器应处于正常运行状态。

7. 通过浏览器输入URL地址http://${host_ip} :${port}访问Open WebUI服务。Open WebUI服务启动成功后，访问URL可返回Open WebUI可视化操作界面。


#### 分离部署Open WebUI + openGauss

Open WebUI和openGauss分离部署的场景下，openGauss将单独部署在一个节点上，Open WebUI部署在另一台节点上并与openGauss连接。

若openGauss已部署，可跳过以下部署步骤。若未部署，则按以下步骤进行。

1. 拉取KunpengRAG仓库并进入到Open WebUI的Docker Compose部署目录。

```
git clone --branch v2.0.1 https://gitee.com/kunpeng_compute/KunpengRAG.git
cd KunpengRAG/deployment/docker-compose/openwebui
```


2. 修改.env文件中的openGauss环境变量，设置openGauss端口、用户名、密码以及数据库名称等信息（不配置则按如下默认值设置）。

```
OPENGAUSS_PASSWORD=Openwebui$123
OPENGAUSS_HOST=openwebui-opengauss
# The port number for accessing the openGauss database from outside the container
HOST_OPENGAUSS_PORT=8888
# The port number for accessing the openGauss database from inside the container
OPENGAUSS_PORT=5432
OPENGAUSS_DATABASE=openwebui
```


3. 通过Docker Compose指定单独安装并部署openGauss服务。

```
docker-compose up -d openGauss
```


#### 部署Open WebUI服务

openGauss部署成功后，需要到另外一台节点部署Dify服务。

1. 拉取KunpengRAG仓库并进入到Dify的Docker Compose部署目录。

```
git clone --branch v2.0.1 https://gitee.com/kunpeng_compute/KunpengRAG.git
cd KunpengRAG/deployment/docker-compose/openwebui
```


2. 修改.env文件，禁止Docker Compose自动启动openGauss服务。

```
COMPOSE_PROFILES=none
```


3. 无法访问外网的情况需要配置.env文件，禁用Open WebUI自动访问huggingface下载模型等。

```
OFFLINE_MODE=True
```


4. 修改.env中的openGauss环境变量为单独部署的openGauss连接信息，默认值如下。

```
# The port number exposed by the openwebui service
WEBUI_PORT=8123
# Enable all below if you are using vector database: openGauss
VECTOR_DB=opengauss
OPENGAUSS_USERNAME=opengauss_user
OPENGAUSS_PASSWORD=Openwebui$123
OPENGAUSS_HOST=openwebui-opengauss
# The port number for accessing the openGauss database from outside the container
HOST_OPENGAUSS_PORT=8888
# The port number for accessing the openGauss database from inside the container
OPENGAUSS_PORT=5432
OPENGAUSS_DATABASE=openwebui
# Centralized deployment mode
CENTRALIZED_OPENGAUSS_DB_URL=opengauss://${OPENGAUSS_USERNAME}:${OPENGAUSS_PASSWORD}@${OPENGAUSS_HOST}:${OPENGAUSS_PORT}/${OPENGAUSS_DATABASE}
# Decentralized deployment mode
OTHER_OPENGAUSS_DB_URL=opengauss://${OPENGAUSS_USERNAME}:${OPENGAUSS_PASSWORD}@${OPENGAUSS_HOST}:${HOST_OPENGAUSS_PORT}/${OPENGAUSS_DATABASE}
```


5. 修改“KunpengRAG/deployment/docker-compose/openwebui/docker-compose.yaml”文件中open-webui组件environment中的“OPENGAUSS_DB_URL”参数值为分离式部署openGauss数据库链接串“${OTHER_OPENGAUSS_DB_URL}”。

```
services:
open-webui:
container_name: openwebui
env_file: .env
image: swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/openwebui:0.6.36
environment:
# OpenGauss 数据库连接 URL
- OPENGAUSS_DB_URL=
${OTHER_OPENGAUSS_DB_URL}
- OFFLINE_MODE=${OFFLINE_MODE}
- VECTOR_DB=${VECTOR_DB}
- PORT=${WEBUI_PORT}
```


6. 运行docker-compose命令一键安装并部署Open WebUI服务（不包含openGauss服务）。

```
docker-compose up -d
```


  该命令会在线从鲲鹏镜像仓库拉取服务对应的容器镜像文件，此过程需要较长时间。

7. 上述命令运行完毕后，检查是否所有的容器已经部署启动。

```
docker ps -a
```


  按照默认配置部署成功后，下列容器应处于正常运行状态。

8. 通过浏览器输入URL地址http://${host_ip} :${port}访问Open WebUI服务。Open WebUI服务启动成功后，访问URL可返回Open WebUI可视化操作界面。
