不使用docker部署open-webui
不使用docker部署open-webui
文章目录
- 不使用docker部署open-webui
- 一、为什么不使用docker
- 二、如何部署
- 三、遇到问题
- 四、注意事项
一、为什么不使用docker
采用docker部署固然方便,但是不利于二次开发。
- docker部署缺点:
- 容器启动端口不能随意改变,想要改变只能重启新服务;
- 代码修改麻烦;
- 不易移植,进行二开可能使用容器内没有的依赖包,每次开新容器还需要导包,或者新创建容器。
二、如何部署
- 首先克隆项目源码,open-webui项目地址https://github.com/open-webui/open-webui/tree/main;
- 项目运行需要python(3.11+)和nodejs(22.10+)环境;
#0.卸载当前nodejs
sudo apt remove nodejs npm -y
#1.安装最新版nodejs
curl -fsSL https://deb.nodesource.com/setup_22.10.x | sudo -E bash -
apt install nodejs -y
#2.测试nodejs npm是否安装正确
echo nodejs版本为:`node -v`
echo npm 版本为:`npm -v`
#3.设置npm淘宝源
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
- conda创建python虚拟环境;
conda create -n open-webui python=3.11
- 启动:
#1.进入项目目录
cd open-webui
cp -RPp .env.example .env
#2.安装前端依赖
npm install --force
#3.激活名为 open-webui 的 Conda 环境
conda activate open-webui
#4.安装后端依赖
cd backend
pip install -r requirements.txt
#5.启动后端
bash start.sh
#5. 启动后端
cd /home/open-webui/backend
python -m open_webui.main
#6. 在另一个终端启动前端
cd /home/open-webui
npm run dev
- .env文件示例
使用时删除中文注释
# Ollama URL for the backend to connect
# The path '/ollama' will be redirected to the specified backend URL
OLLAMA_BASE_URL='http://localhost:11434'
OPENAI_API_BASE_URL=''
OPENAI_API_KEY=''
# AUTOMATIC1111_BASE_URL="http://localhost:7860"
# For production, you should only need one host as
# fastapi serves the svelte-kit built frontend and backend from the same host and port.
# To test with CORS locally, you can set something like
# CORS_ALLOW_ORIGIN='http://localhost:5173;http://localhost:8080'
CORS_ALLOW_ORIGIN='*'
# For production you should set this to match the proxy configuration (127.0.0.1)
FORWARDED_ALLOW_IPS='*'
# DO NOT TRACK
SCARF_NO_ANALYTICS=true
DO_NOT_TRACK=true
ANONYMIZED_TELEMETRY=false
BYPASS_EMBEDDING_AND_RETRIEVAL=True
USER_AGENT=OpenWebUI/1.0
OFFLINE_MODE=True
# 禁用嵌入和检索功能以加快启动速度
# 设置用户代理以避免警告
# 可选:设置离线模式
三、遇到问题
- node安装完成下载前端依赖之后,报错
0.删除 package-lock.json(依赖版本锁定文件,避免旧版本冲突)
rm -f package-lock.json
1.卸载当前 esbuild:
cd /root/open-webui
npm uninstall esbuild
2.安装兼容版本: npm install esbuild@0.20.2 --save-dev
3.启动服务: npm run dev
2.构建build目录产生:ENOSPC - 系统文件监听数不足(直接导致服务崩溃)
官方已经给出解决方案
export NODE_OPTIONS="--max-old-space-size=4096" # For Linux/macOS (bash, zsh)
# set NODE_OPTIONS=--max-old-space-size=4096 # For Windows (Command Prompt)
# $env:NODE_OPTIONS="--max-old-space-size=4096" # For Windows (PowerShell)
npm run dev
3.配置文件(.env)文件带有中文报错
删掉中文即可
4.前端构建目录缺失,警告如下
WARNI [open_webui.main] Frontend build directory not found at '/root/open-webui/build'. Serving API only.
这很可能不会影响后端启动,但是当你访问端口的时候,由于open-webui使用的是后端服务加载前端,没有前端“构建目录build",会导致页面无法正常访问。
原因是下载完前端依赖之后,没有构建,命令如下:
npm run build
四、注意事项
-
打开网页后,注册的第一个用户默认为管理员账号,以后注册的账号角色均为pending(待分配权限)。
-
修改权限的方法。
-
管理员账号可以在用户组修改,只需要点一下用户组用户的权限标识:

-
方法二:数据存放在backend/data/webui.db中,可以用数据库可视化软件打开数据库,将账号由pending修改为user或admin。
-
方法三:修改backend/config.py文件中第358行,DEFAULT_USER_ROLE = os.getenv(“DEFAULT_USER_ROLE”, “pending”),将pending修改为user(普通用户)或admin(管理员),以后每次注册的账号就不需要管理员分配权限。
-
更多推荐



所有评论(0)