一、文档与服务器信息
1.1 参考文档
github地址: https://github.com/open-webui/open-webui
环境变量解析:https://docs.openwebui.com/getting-started/env-configuration
监控open-webui:https://docs.openwebui.com/getting-started/advanced-topics/monitoring
1.2 服务器信息
主机名
IP
操作系统
规格
GPU情况
备注
g406011748489384920
10.11.15.190(vpc) 10.251.19.46(浮动ip)
Ubuntu 22.04.5 LTS -amd64
12c20g+100G
GeForce RTX 4060 *1
OpenStack虚拟机
二、容器化部署
我的环境有点特殊,OpenStack的vxlan网络mtu值是1450,然后虚拟机、容器桥接网络的mtu值都要相同。
1 2 3 4 docker network create \ --driver=bridge \ --opt com.docker.network.driver.mtu=1450 \ mynet
2.1 以默认配置安装
2.1.1 只使用CPU
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # 1)如果ollma服务运行在本机 docker run -d \ -p 18080:8080 \ --network=mynet \ --add-host=host.docker.internal:host-gateway \ --volume=open-webui:/app/backend/data \ --name open-webui \ --restart always \ swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/open-webui:v0.6.5# -d 是说容器以后台模式运行 # --network=mynet 容器使用自定义docker network # --volume 是将openwebui容器中的数据存放目录“/app/backend/data”映射到宿主机上的名为open-webui这个docker volume,这样即使容器停止甚至删除,先前的数据还在,可以尽量保障数据安全性 # --name open-webui 为容器指定名称。否则会得到一个随机字符串名称 # --restart always 容器在宿主机重启或docker服务重启后,总是会自动重启(如果是手动stop它,就不会重启了) # 上述命令假设ollama服务就部署在本机上,openwebui服务默认认为ollama服务的监听地址是host.docker.internal:11434 # 2)如果ollma服务运行在它机 docker run -d \ -p 18080:8080 \ --network=mynet \ --add-host=host.docker.internal:host-gateway \ --volume=open-webui:/app/backend/data \ --name open-webui \ --restart always \ -e OLLAMA_BASE_URL=http://它机IP:11434 \ swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/open-webui:v0.6.5
运行上述命令后,可以使用如下命令查看open-webui容器的状态(每隔两秒刷新一次),如果其状态变更为healthy(可能需要等待几分钟),就可以访问其web界面了
1 2 3 4 5 watch docker ps -a --filter "name=open-webui" (llamafactory) root@g406011748489384920:/opt/code_repos/dify# docker ps -a --filter "name=open-webui" CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e38be1309275 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/open-webui:v0.6.5 "bash start.sh" 34 minutes ago Up 31 minutes (healthy) 0.0.0.0:18080->8080/tcp, [::]:18080->8080/tcp open-webui
访问10.251.19.46:18080
,注册后,看到如下界面信息:
image-20250611113651134
在open-webui中与ollama中管理的模型进行对话:
image-20250611153012775
2.1.2 使用GPU
1 2 3 4 5 6 7 8 9 docker run -d \ -p 18080:8080 \ --gpus=all \ --network=mynet \ --add-host=host.docker.internal:host-gateway \ --volume=open-webui:/app/backend/data \ --name open-webui \ --restart always \ swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/open-webui/open-webui:v0.6.5
2.2 安装后仅使用openai模型
1 2 3 4 5 6 7 8 9 docker run -d \ -p 18080:8080 \ -e OPENAI_API_KEY=自己的openai-api-key \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main# OPENAI_API_KEY 就是自己在openai 官网申请的api key,用于访问openai的大模型 # 这种方式需要魔法,大陆应该基本上用不上
三、通过python-pip安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 使用conda创建python3.11 虚拟机环境 (base) root@ksp-registry:~# conda create -n py3.11 python=3.11 (base) root@ksp-registry:~# conda activate py3.11# 安装Open WebUI (py3.11) root@ksp-registry:~# pip install open-webui# 设置模型文件下载需用到的镜像网站 (py3.11) root@ksp-registry:~# export HF_ENDPOINT=https://hf-mirror.com# 相关环境变量跟容器中基本相同,比如OLLAMA_BASE_URL,更多环境变量参考https://docs.openwebui.com/getting-started/env-configuration # 比如要设置OLLAMA_BASE_URL变量: export OLLAMA_BASE_URL=http://localhost:11434# 启动Open WebUI服务(如果要指定服务监听端口,使用“--port 8081”) (py3.11) root@ksp-registry:~# open-webui serve# 下载的 内置模型文件(例如 VAD 模型、reranker、语音模型等) 默认存放在如下目录是:/root/.cache/huggingface/hub/ # open-webui服务的默认监听端口是8080。访问 http://localhost:8080
1 2 3 4 5 6 7 8 # ksp-registry服务器(ip为172.20.0.22)上ollama管理的LLM (py3.11) root@ksp-registry:~# ollama list NAME ID SIZE MODIFIED qwen2.5:32b 9f13ba1299af 19 GB 2 days ago linux6200/bge-reranker-v2-m3:latest abf5c6d8bc56 1.2 GB 2 days ago nomic-embed-text:v1.5 0a109f422b47 274 MB 2 days ago qwen3:32b 030ee887880f 20 GB 4 days ago qwen2.5-72b-it-Q4_K_M-LOT:latest 5b52a20c9d44 48 GB 5 days ago
image-20250611170821831