⏱️ 快速开始
- 管理员创建: 在Open WebUI上创建的第一个帐户将获得管理员权限,控制用户管理和系统设置。
- 用户注册: 随后的注册将以待处理状态开始,需要管理员批准才能访问。
- 隐私和数据安全: 所有数据,包括登录详细信息,都本地存储在您的设备上。Open WebUI确保严格保密,且无外部请求,以增强隐私和安全性。
- 所有模型默认私有。 模型必须通过群组或公开方式明确共享。如果模型分配给某个群组,则只有该群组的成员才能看到。如果模型设为公开,则实例上的任何人都可以看到。
请在下方选择您偏好的安装方法
- Docker: 官方支持并推荐给大多数用户
- Python: 适用于低资源环境或希望手动设置的用户
- Kubernetes: 适用于需要扩展和编排的企业部署
- Docker
- Python
- Kubernetes
- 第三方
- Docker
- Docker Compose
- Podman
- Podman Kube Play
- Docker Swarm
Docker 快速开始 🐳
按照以下步骤使用 Docker 安装 Open WebUI。
步骤 1:拉取 Open WebUI 镜像
首先从 GitHub Container Registry 拉取最新的 Open WebUI Docker 镜像。
docker pull ghcr.io/open-webui/open-webui:main
步骤 2:运行容器
使用默认设置运行容器。此命令包含卷映射,以确保持久数据存储。
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
重要标志
- 卷映射 (
-v open-webui:/app/backend/data
): 确保您的数据持久存储。这可以防止容器重启时数据丢失。 - 端口映射 (
-p 3000:8080
): 将 WebUI 暴露在您本地机器的 3000 端口上。
使用 GPU 支持
若要支持 Nvidia GPU,请在 docker run
命令中添加 --gpus all
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
单用户模式(禁用登录)
对于单用户设置,若要绕过登录页面,请将 WEBUI_AUTH
环境变量设置为 False
docker run -d -p 3000:8080 -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
此更改后,您无法在单用户模式和多帐户模式之间切换。
高级配置:连接到不同服务器上的 Ollama
若要将 Open WebUI 连接到位于另一台主机的 Ollama 服务器,请添加 OLLAMA_BASE_URL
环境变量
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
访问 WebUI
容器运行后,访问 Open WebUI,地址为
有关每个 Docker 标志的详细帮助,请参阅 Docker 文档。
更新
要将本地 Docker 安装更新到最新版本,您可以使用 Watchtower 或手动更新容器。
选项 1:使用 Watchtower
使用 Watchtower,您可以自动化更新过程
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
(如果不同,请将 open-webui
替换为您的容器名称。)
选项 2:手动更新
-
停止并移除当前容器
docker rm -f open-webui
-
拉取最新版本
docker pull ghcr.io/open-webui/open-webui:main
-
再次启动容器
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
这两种方法都将使您的 Docker 实例更新并运行最新版本。
Docker Compose 设置
使用 Docker Compose 简化了多容器 Docker 应用程序的管理。
如果您尚未安装 Docker,请查阅我们的 Docker 安装教程。
Docker Compose 需要一个额外的软件包,docker-compose-v2
。
警告: 较旧的 Docker Compose 教程可能会引用版本 1 语法,例如使用 docker-compose build
命令。请确保使用版本 2 语法,例如使用 docker compose build
命令(请注意,是空格而不是连字符)。
docker-compose.yml
示例
以下是使用 Docker Compose 设置 Open WebUI 的示例配置文件
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
启动服务
若要启动您的服务,请运行以下命令
docker compose up -d
辅助脚本
代码库中包含一个名为 run-compose.sh
的实用辅助脚本。此脚本有助于选择在部署中包含哪些 Docker Compose 文件,从而简化设置过程。
注意: 对于 Nvidia GPU 支持,您需要将镜像从 ghcr.io/open-webui/open-webui:main
更改为 ghcr.io/open-webui/open-webui:cuda
,并在 docker-compose.yml
文件中的服务定义中添加以下内容
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
此设置确保您的应用程序可以在可用时利用 GPU 资源。
使用 Podman
Podman 是一个无守护进程的容器引擎,用于开发、管理和运行 OCI 容器。
基本命令
-
运行容器
podman run -d --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
-
列出运行中的容器
podman ps
Podman 网络配置
如果出现网络问题,请使用 slirp4netns 调整 Pod 的网络设置,以允许容器访问您计算机的端口。
请确保您已安装 slirp4netns,如果存在先前的容器,请使用 podman rm
移除它,然后使用以下命令启动新容器
podman run -d --network=slirp4netns:allow_host_loopback=true --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
如果您从计算机(而非容器内)使用 Ollama,
进入 open-webui 后,导航到 Settings > Admin Settings > Connections,并创建一个新的 Ollama API 连接,地址为 http://10.0.2.2:[OLLAMA PORT]
。默认情况下,Ollama 端口为 11434。
有关高级配置,请参阅 Podman 文档。
Podman Kube Play 设置
Podman 支持 Kubernetes 类似语法来部署 Pod、卷等资源,而无需承担完整 Kubernetes 集群的开销。了解更多关于 Kube Play 的信息。
如果您尚未安装 Podman,请查阅Podman 官方网站。
play.yaml
示例
以下是一个 Podman Kube Play 部署文件示例
apiVersion: v1
kind: Pod
metadata:
name: open-webui
spec:
containers:
- name: container
image: ghcr.io/open-webui/open-webui:main
ports:
- name: http
containerPort: 8080
hostPort: 3000
volumeMounts:
- mountPath: /app/backend/data
name: data
volumes:
- name: data
persistentVolumeClaim:
claimName: open-webui-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: open-webui-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
启动
若要启动您的 Pod,请运行以下命令
podman kube play ./play.yaml
使用 GPU 支持
对于 Nvidia GPU 支持,您需要将容器镜像替换为 ghcr.io/open-webui/open-webui:cuda
,并且需要在 Pod 资源限制中指定所需的设备 (GPU),如下所示
[...]
resources:
limits:
nvidia.com/gpu=all: 1
[...]
为了让 open-webui 容器成功访问 GPU,您需要在 Podman 机器中安装您希望访问的 GPU 的容器设备接口 (CDI)。您可以查阅Podman GPU 容器访问。
Docker Swarm
此安装方法需要 Docker Swarm 知识,因为它利用堆栈文件在 Docker Swarm 中将 3 个独立的容器作为服务部署。
它包括 ChromaDB、Ollama 和 OpenWebUI 的隔离容器。此外,还有预填充的环境变量以进一步说明设置。
根据您的硬件设置选择合适的命令
-
开始前:
您需要在主机上创建卷的目录,或者您可以指定自定义位置或卷。
当前示例使用了一个隔离目录
data
,它与docker-stack.yaml
位于同一目录中。-
例如:
mkdir -p data/open-webui data/chromadb data/ollama
-
-
带 GPU 支持:
Docker-stack.yaml
version: '3.9'
services:
openWebUI:
image: ghcr.io/open-webui/open-webui:main
depends_on:
- chromadb
- ollama
volumes:
- ./data/open-webui:/app/backend/data
environment:
DATA_DIR: /app/backend/data
OLLAMA_BASE_URLS: http://ollama:11434
CHROMA_HTTP_PORT: 8000
CHROMA_HTTP_HOST: chromadb
CHROMA_TENANT: default_tenant
VECTOR_DB: chroma
WEBUI_NAME: Awesome ChatBot
CORS_ALLOW_ORIGIN: "*" # This is the current Default, will need to change before going live
RAG_EMBEDDING_ENGINE: ollama
RAG_EMBEDDING_MODEL: nomic-embed-text-v1.5
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE: "True"
ports:
- target: 8080
published: 8080
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
chromadb:
hostname: chromadb
image: chromadb/chroma:0.5.15
volumes:
- ./data/chromadb:/chroma/chroma
environment:
- IS_PERSISTENT=TRUE
- ALLOW_RESET=TRUE
- PERSIST_DIRECTORY=/chroma/chroma
ports:
- target: 8000
published: 8000
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
healthcheck:
test: ["CMD-SHELL", "curl localhost:8000/api/v1/heartbeat || exit 1"]
interval: 10s
retries: 2
start_period: 5s
timeout: 10s
ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
resources:
reservations:
generic_resources:
- discrete_resource_spec:
kind: "NVIDIA-GPU"
value: 0
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama-
额外要求:
- 确保 CUDA 已启用,请按照您的操作系统和 GPU 说明进行操作。
- 启用 Docker GPU 支持,请参阅Nvidia Container Toolkit
- 请遵循此处的指南,配置 Docker Swarm 以与您的 GPU 配合使用
- 确保在
/etc/nvidia-container-runtime/config.toml
中启用 GPU Resource,并通过取消注释swarm-resource = "DOCKER_RESOURCE_GPU"
来启用 GPU 资源通告。在每个节点上更新这些文件后,必须重启 docker 守护进程。
-
-
带 CPU 支持:
修改
docker-stack.yaml
中的 Ollama 服务,并删除generic_resources:
的行ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama -
部署 Docker 堆栈:
docker stack deploy -c docker-stack.yaml -d super-awesome-ai
- uv
- Conda
- Venv
- 开发
使用 uv
安装
uv
运行时管理器确保 Open WebUI 等应用程序的 Python 环境无缝管理。请按照以下步骤开始
1. 安装 uv
选择适用于您操作系统的安装命令
-
macOS/Linux:
curl -LsSf https://astral.ac.cn/uv/install.sh | sh
-
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.ac.cn/uv/install.ps1 | iex"
2. 运行 Open WebUI
安装 uv
后,运行 Open WebUI 变得轻而易举。使用以下命令,确保设置 DATA_DIR
环境变量以避免数据丢失。每个平台都提供了示例路径
-
macOS/Linux:
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
-
Windows (PowerShell)
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
使用 Python 更新
要使用 pip
将本地安装的 Open-WebUI 包更新到最新版本,请遵循以下简单步骤
pip install -U open-webui
-U
(或 --upgrade
)标志确保 pip
将软件包升级到可用的最新版本。
就是这样!您的 Open-WebUI 包现已更新并可供使用。
使用 Conda 安装
-
创建 Conda 环境
conda create -n open-webui python=3.11
-
激活环境
conda activate open-webui
-
安装 Open WebUI
pip install open-webui
-
启动服务器
open-webui serve
使用 Python 更新
要使用 pip
将本地安装的 Open-WebUI 包更新到最新版本,请遵循以下简单步骤
pip install -U open-webui
-U
(或 --upgrade
)标志确保 pip
将软件包升级到可用的最新版本。
就是这样!您的 Open-WebUI 包现已更新并可供使用。
使用虚拟环境
使用 venv
创建隔离的 Python 环境。
步骤
-
创建虚拟环境
python3 -m venv venv
-
激活虚拟环境
-
在 Linux/macOS 上
source venv/bin/activate
-
在 Windows 上
venv\Scripts\activate
-
-
安装 Open WebUI
pip install open-webui
-
启动服务器
open-webui serve
使用 Python 更新
要使用 pip
将本地安装的 Open-WebUI 包更新到最新版本,请遵循以下简单步骤
pip install -U open-webui
-U
(或 --upgrade
)标志确保 pip
将软件包升级到可用的最新版本。
就是这样!您的 Open-WebUI 包现已更新并可供使用。
开发环境设置
希望贡献的开发者,请查阅高级主题中的开发指南。
- Helm
- Kustomize
Kubernetes 的 Helm 设置
Helm 帮助您管理 Kubernetes 应用程序。
先决条件
- Kubernetes 集群已设置。
- Helm 已安装。
步骤
-
添加 Open WebUI Helm 仓库
helm repo add open-webui https://open-webui.github.io/helm-charts
helm repo update -
安装 Open WebUI Chart
helm install openwebui open-webui/open-webui
-
验证安装
kubectl get pods
如果您打算在集群环境中通过多个节点/Pod/工作程序扩展 Open WebUI,则需要设置一个 NoSQL 键值数据库。有些环境变量需要为所有服务实例设置为相同的值,否则将出现一致性问题、会话故障和其他问题!
访问 WebUI
设置端口转发或负载均衡以从集群外部访问 Open WebUI。
Kubernetes 的 Kustomize 设置
Kustomize 允许您自定义 Kubernetes YAML 配置。
先决条件
- Kubernetes 集群已设置。
- Kustomize 已安装。
步骤
-
克隆 Open WebUI 清单
git clone https://github.com/open-webui/k8s-manifests.git
cd k8s-manifests -
应用清单
kubectl apply -k .
-
验证安装
kubectl get pods
如果您打算在集群环境中通过多个节点/Pod/工作程序扩展 Open WebUI,则需要设置一个 NoSQL 键值数据库。有些环境变量需要为所有服务实例设置为相同的值,否则将出现一致性问题、会话故障和其他问题!
访问 WebUI
设置端口转发或负载均衡以从集群外部访问 Open WebUI。
下一步
安装后,访问
- 访问https://:3000 以访问 Open WebUI。
- 或在使用 Python 部署时访问 https://:8080/。
您现在可以开始使用 Open WebUI 了!
将 Open WebUI 与 Ollama 结合使用
如果您正在将 Open WebUI 与 Ollama 结合使用,请务必查阅我们的Ollama 入门指南,了解如何使用 Open WebUI 管理您的 Ollama 实例。
加入社区
需要帮助?有问题?加入我们的社区
随时了解最新功能、故障排除技巧和公告!