21
2025
03
16:51:57

Open-WebUI Ubuntu环境下的开发部署及自定义登录(上)

最近deepseek比较火热,大部分使用的是Ollama+Open-Webui的方式使用DeepSeek;在使用过程中,Open-Webui可能会有一些个性化修改的需求。自己成功部署了Open-WebUI,并进行了部分改动,特此记录下整个过程供大家参考


前提条件

在安装 Open-WebUI 之前,请确保您的系统满足以下要求:

  • Python 3.11+

  • Node.js 20.14+

  • Git

  • 至少 4GB 内存

  • 足够的磁盘空间(推荐50GB 以上)


开发环境部署

本人使用ubuntu-18.04.6-live-server-amd64系统


  安装Anaconda和python3.11

由于python会有冲突,最好使用虚拟环境隔离版本,推荐使用中科大镜像安装anaconda,清华的的镜像我使用起来不是很好,下载不动。

https://mirrors.ustc.edu.cn/anaconda/archive/

我下载的是:Anaconda3-2024.10-1-Linux-x86_64.sh


安装anaconda

wget https://mirrors.ustc.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh


chmod +x  Anaconda3-2024.10-1-Linux-x86_64.sh


./Anaconda3-2024.10-1-Linux-x86_64.sh

然后一直回车

遇到提示,输入yes


conda虚拟环境安装python3.11

conda create -name open-webui python=3.11


conda activate open-webui

  安装node

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

source ~/.bashrc

nvm install 20.14.0

node -v

遇到的问题:

        最早克隆代码提示node最低版本node v20.10

        再次更新最新代码,提示node最低版本v20.14.0

解决方法: 

nvm install '版本号'       -- 安装指定版本

nvm list                         -- 查看已安装版本

nvm use 版本号            -- 使用指定版本

nvm uninstall '版本号'   -- 删除指定版本

node -v                         -- 查看当前版本

-------------------------------------------------

nvm install 20.14.0

nvm use 20.14.0

nvm uninstall 20.10.0

node -v



node安装时遇到其他的问题,GLIBC_2.28 not found 问题

解决方法: 

deb http://security.debian.org/debian-security buster/updates main


apt-get update


apt-get update之后若出现下面提示: NO_PUBKEY 112695A0E562B32A NO_PUBKEY 54404762BBB6E853


执行:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A 54404762BBB6E853


重新更新包

apt-get update


 安装libc6

 apt-get install libc6-dev libc6

至此,环境差不多已经准备好了。

ps:node、Anaconda、pytthon默认使用国外的源,下载可能会很慢,

请自行搜索修改为国内的镜像源的方法;



Open-WebUI的安装与部署


下载源码

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

编译前端

conda activate open-webui  切换虚拟环境

npm install   (安装node依赖)

安装过程遇到安装onnxruntime-node包特慢的情况,安装了好几遍,花了四五个小时才安装好,如有条件,可科学上网解决;


启动前端

npm run dev (启动开发环境)

启动成功提升如下

  ➜  Local:   http://localhost:5173/

访问前端 http://localhost:5173 可看到ui界面

遇到的问题:

运行过程报错:Error: ENOSPC: System limit for number of file watchers reached

Open-WebUI Ubuntu环境下的开发部署及自定义登录(上)

解决办法

执行:

vim /etc/sysctl.conf,添加如下内容:

fs.inotify.max_user_watches=524288

输入:wq

在命令行执行:sysctl -p

重新执行 

npm run dev

编译前端

npm run bulid (编译前端)

编译时可能会遇到内存不足的问题 JavaScript heap out of memory

解决办法

export NODE_OPTIONS="--max_old_space_size=5120"

npm run bulid

根据自己的配置设置node使用的内存

然后再执行编译操作


编译后端

cd backend

conda activate open-webui

pip install -r requirements.txt -U

安装python依赖

./start.sh (启动后端)


启动成功提示如下

INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)

说明:backend/data目录下是存储的用户信息。如果遇到系统的迁移,只需要把这里面的数据复制去覆盖即可。

Open-WebUI Ubuntu环境下的开发部署及自定义登录(上)


前后端分别启动,会使用不同端的端口启动,前端默认使用5173端口,后端使用8080端口。

前端请求后端的时候就会遇到跨域无法请求的问题。

Open-WebUI Ubuntu环境下的开发部署及自定义登录(上)

没有太好的解决办法,目前是使用chrome浏览器,通过使用浏览器插件跳过跨域的问题。

access-control-allow-origin

https://gitcode.com/open-source-toolkit/9c1df

Open-WebUI Ubuntu环境下的开发部署及自定义登录(上)

临时忽略跨域问题


前端编译后,会生成编译后的 build目录,这个时候不需要启动前端,只需要启动后端就可以访问,就不存在跨域问题。


前端编译速度较慢,刚开始使用4G内存,编译了大概30分钟;

后面增加到12G内存,编译了大概5分钟左右。

---------------------------------------------------------------------------------------

关于自定义登录部分,请参考下一篇文章




推荐本站淘宝优惠价购买喜欢的宝贝:

Open-WebUI Ubuntu环境下的开发部署及自定义登录(上)

本文链接:https://hqyman.cn/post/9575.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: