openwebui开发部署教程

openwebui

https://docs.openwebui.com/getting-started/advanced-topics/development

开发指南-本机部署

前端启动

conda activate open-webui
cd open-webui
npm run dev

后端启动

首先进入cd ~
cd backend
sh dev.sh

先启动openwebui,外部连接中输入api,用模型test一下

one-api https://github.com/songquanpeng/one-api

为什么用one-api:azure的endpoint需要中转,除openai外,其他大模型也需要统一api格式接入openwebui

如果仔细看了openwebui的文档可以发现社区有很多工具,有可以用来连接azure模型的工具

One api启动

构建前端   
cd one-api/web/default
npm install
npm run build
 # 构建后端
cd ../..
go mod download
go build-ldflags "-s -w" -o one-api

langfuse监控

https://cloud.langfuse.com

集成openwebui,langfuse可以以轨迹的形式监控openwebui上的行为

开发指南-docker compose部署

提前说明的问题

在不更改源码的情况下,部署好的前后端容器是两个容器,存在跨域的情况并且目前还没有解决,后端config的代码中不允许用‘*’配置cross_origin,目前通过浏览器插件access-control-allow-origin解决跨域问题进行后续开发

且代码中配置项较多,在.env中配置不生效,目前跨过验证接口直接跳转登录的情况也未解决

开始部署

local 部署方案非常容易,下面我们整理适用于docker开发部署的方案

1、安装docker,我这里是在服务器linux centos上安装

官方docker文档https://docs.docker.com/engine/install/

docker hub 部署时需要配置镜像加速。阿里云的镜像已经不能使用,我在网上搜到了这些镜像加速,目前可用https://www.xuxlc.cn/article/details-40.html

# 如果没有就创建目录,有就跳过这一步
sudo mkdir -p /etc/docker

# 写入配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
    	"https://docker.1ms.run",
        "https://doublezonline.cloud"
    ]
}
EOF

# 重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker

2、本地拉取openwebui代码

自己创建docker compose文件或者直接从git 拉取,里面有docker compose

1. 拉取源代码

首先,你需要将源代码从 Git 仓库拉取到本地。如果你还没有源代码,可以通过以下命令进行拉取:

git clone https://github.com/open-webui/open-webui.git
cd open-webui

这里遇到版本问题node

1. 更新 Node.js

使用 Node Version Manager (nvm) 管理 Node.js 版本
  1. 安装 nvm: 如果系统没有安装 nvm,可以执行以下命令安装:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
    

    安装完成后,重启终端或运行:

    source ~/.bashrc
    
  2. 确认 nvm 安装成功:

    nvm --version
    
  3. 使用 nvm 安装所需的 Node.js 版本:

    nvm install 18.17.0
    
  4. 设置默认 Node.js 版本:

    nvm use 18.17.0
    nvm alias default 18.17.0
    
  5. 确认 Node.js 和 npm 版本:

    node -v
    npm -v
    

2. 升级 npm

如果安装了合适版本的 Node.js,npm 版本应该已经满足需求(>=6.0.0)。如果需要手动升级:

npm install -g npm@latest

3. 重新安装项目依赖

在更新 Node.js 和 npm 版本后,清除旧的依赖并重新安装:

rm -rf node_modules package-lock.json
npm install

2. 修改 docker-compose.yml

你可以在之前的 docker-compose.yml 文件基础上,进行一些调整以支持本地代码挂载和开发模式。具体来说,主要是添加 volumes 和修改服务的 command 以及端口配置。以下是修改后的示例:
这里要注意的是端口,例如前端3000:5173,容器向外映射的是3000,内部是5173端口。要保证容器内5173端口没有被占用,服务器对外开放的3000端口没有受规则和防火墙限制
举例:

name: open-webui-dev

services:
  frontend:
    build:
      context: .
      target: build
    command: ["npm", "run", "dev"]
    depends_on:
      - backend
    ports:
      - "3000:5173"
    extra_hosts:
      - host.docker.internal:host-gateway
    volumes:
      - ./src:/app/src

  backend:
    build:
      context: .
      target: base
    command: ["bash", "dev.sh"]
    env_file: ".env"
    environment:
      - ENV=dev
      - WEBUI_AUTH=False
    ports:
      - "8080:8080"
    extra_hosts:
      - host.docker.internal:host-gateway
    volumes:
      - ./backend:/app/backend
      - data:/app/backend/data

volumes:
  data: {}

3. 启动开发环境

配置好 docker-compose.yml 文件后,可以启动 Docker 容器并进入开发模式:

构建镜像:
docker compose -f compose-dev.yaml up --watch
启动镜像
docker compose -f compose-dev.yaml up -d

这里可能再次遇到镜像问题,多试几种镜像

https://www.cnblogs.com/lasding/p/18401704

然后,你就可以通过访问 http://localhost:3000 来访问本地开发环境。

遇到问题:

耗费一天才解决的问题:

1、执行容器build命令,npm ci命令会一直卡住,报网络问题错误,实际上是pyodide这个包要预先下载和node匹配的版本,且npm ci命令需要在前面加镜像源,https://www.cnblogs.com/lasding/p/18401704,自己感觉华为云的镜像源好使

2、dockerfile文件也需要修改,有些没必要的例如ollama相关、pytorch,cuda相关命令直接注释,如果不用在服务器部署在这里插入图片描述
后端模型的话

3、端口开放问题:注意几点:防火墙、服务器的自定义规则、如果是云服务器的话要在控制台开放对应的端口,dockerfile也要做好容器内部和对外的端口映射。

进入容器:

docker exec -it open-webui-dev-frontend-1 sh

在容器内检查服务

netstat -tuln | grep 3000(容器内的端口号)

在容器外测试服务

curl http://<服务器IP>:8698
  1. 停止容器

    docker compose -f compose-dev.yaml down
    

docker部署one api

这里one-api是接口管理和分发系统,作用是

git clone https://github.com/songquanpeng/one-api.git

构建容器

# 目前支持 MySQL 启动,数据存储在 ./data/mysql 文件夹内
docker compose up -d

# 查看部署状态
docker-compose ps

5.访问

地址栏输入链接,管理员登录:

用户名:root
初始密码:123456

Langfuse 部署

在服务器上拉下来langfuse的代码,部署后,参考openwebui文档中->集成->https://docs.openwebui.com/tutorials/integrations/langfuse,可以使用管道,首先在docker中启动pipelines

docker run -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main

在openwebui中的在管理设置中,创建并保存一个类型为 OpenAI API 的新连接,其详细信息如下:

  • URL: http://host.docker.internal:9099(这是之前启动的Docker容器运行的地方)。
  • 密码: 0p3n-w3bu!(标准密码)
  • https://langfuse.com/images/docs/openwebui-integration.gif

后续步骤可以详细看openwebui的文档

### 从源码编译并部署 OpenWebUI 的方法 要在 CentOS 上通过源码部署 OpenWebUI,需完成一系列操作来准备运行环境以及构建应用程序。以下是详细的说明: #### 一、准备工作 在开始之前,确保系统已更新至最新状态,并安装必要的开发工具包。 ```bash sudo yum update -y sudo yum groupinstall "Development Tools" -y ``` #### 二、依赖项安装 为了成功编译和运行 OpenWebUI,需要先安装其所需的依赖库。这些依赖通常包括 Python 开发头文件、SQLite 数据库支持以及其他可能的扩展模块。 1. **Python 和 pip 安装** 如果尚未安装较新的 Python 版本,则可以按照以下方式手动安装 Python 3.x 并配置 `pip` 工具[^2]。 ```bash sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make tar -y # 下载并解压 Python 源代码 cd /usr/src sudo wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz sudo tar xzf Python-3.11.0.tgz # 编译并安装 cd Python-3.11.0 sudo ./configure --enable-optimizations sudo make altinstall ``` 2. **SQLite 升级** SQLite 是许多 Web 应用程序的重要组件之一。如果当前版本较低,建议升级到最新的稳定版。 ```bash sudo yum remove sqlite* -y sudo yum install readline-devel -y # 获取 SQLite 源代码并编译 cd /usr/src sudo wget https://sqlite.org/2023/sqlite-autoconf-3420000.tar.gz sudo tar xf sqlite-autoconf-3420000.tar.gz cd sqlite-autoconf-3420000 sudo ./configure && sudo make && sudo make install ``` 3. **Pip 配置** 使用新安装的 Python 创建软链接以便全局调用,并初始化 Pip 软件包管理器。 ```bash ln -s /usr/local/bin/pip3.11 /usr/bin/pip3 pip3 install --upgrade setuptools wheel ``` #### 三、获取 OpenWebUI 源码 假设目标是从官方仓库拉取项目源码进行本地化定制或调试。 ```bash git clone https://github.com/OpenWebUI/open-webui.git cd open-webui ``` #### 四、创建虚拟环境(可选) 虽然某些文档提到不使用虚拟环境,但在实际生产环境中推荐启用隔离模式以减少冲突风险。 ```bash python3 -m venv env source env/bin/activate pip install --upgrade pip ``` #### 五、安装依赖关系 进入项目的根目录后执行如下命令加载所需的所有第三方库。 ```bash pip install -r requirements.txt ``` #### 六、启动服务 确认一切正常之后即可尝试运行应用实例验证功能是否可用。 ```bash ./open-webui start ``` 或者将其路径加入系统 PATH 中方便随时访问[^1]。 --- ### 注意事项 对于高并发请求场景下的性能优化问题,还可以考虑引入负载均衡解决方案比如 HAProxy 或 Nginx 来分担压力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值