最近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

解决办法
执行:
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目录下是存储的用户信息。如果遇到系统的迁移,只需要把这里面的数据复制去覆盖即可。

前后端分别启动,会使用不同端的端口启动,前端默认使用5173端口,后端使用8080端口。
前端请求后端的时候就会遇到跨域无法请求的问题。

没有太好的解决办法,目前是使用chrome浏览器,通过使用浏览器插件跳过跨域的问题。
access-control-allow-origin
https://gitcode.com/open-source-toolkit/9c1df

临时忽略跨域问题
前端编译后,会生成编译后的 build目录,这个时候不需要启动前端,只需要启动后端就可以访问,就不存在跨域问题。
前端编译速度较慢,刚开始使用4G内存,编译了大概30分钟;
后面增加到12G内存,编译了大概5分钟左右。
---------------------------------------------------------------------------------------
关于自定义登录部分,请参考下一篇文章
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/9575.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
打赏

微信支付宝扫一扫,打赏作者吧~
休息一下~~