⏱️ 快速开始
- 管理员创建: 在 Open WebUI 上创建的第一个账户获得管理员权限,控制用户管理和系统设置。
- 用户注册: 后续注册以待定状态开始,需要管理员批准才能访问。
- 隐私和数据安全: 您的所有数据,包括登录详细信息,都本地存储在您的设备上。Open WebUI 确保严格保密和无外部请求,以增强隐私和安全性。
- 所有模型默认都是私有的。 模型必须通过群组明确共享或设为公开。如果模型分配给群组,只有该群组的成员可以看到它。如果模型设为公开,实例上的任何人都可以看到它。
选择您首选的安装方法:
- Docker: 官方支持并推荐给大多数用户
- Python: 适用于低资源环境或希望手动设置的用户
- Kubernetes: 适用于需要扩展和编排的企业部署
- Docker
- Python
- Kubernetes
- 第三方
- Docker
- Docker Compose
- Podman
- Docker Swarm
使用 Docker 快速开始 🐳
按照以下步骤使用 Docker 安装 Open WebUI。
步骤 1:拉取 Open WebUI 镜像
首先从 GitHub 容器注册表拉取最新的 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
):在本地机器的端口 3000 上公开 WebUI。
使用 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 的示例配置文件:
version: '3'
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 后,导航到设置 > 管理员设置 > 连接,并创建一个新的 Ollama API 连接到 http://10.0.2.2:[OLLAMA PORT]
。默认情况下,Ollama 端口是 11434。
有关高级配置,请参阅 Podman 文档。
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: "*" # 这是当前默认值,在上线前需要更改
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 资源,并通过取消注释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 Stack:
docker stack deploy -c docker-stack.yaml -d super-awesome-ai
- uv
- Conda
- Venv
- Development
使用 uv
安装
uv
运行时管理器确保 Open WebUI 等应用程序的无缝 Python 环境管理。按照以下步骤开始:
1. 安装 uv
为您的操作系统选择合适的安装命令:
-
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/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 更新
要将本地安装的 Open-WebUI 包更新到最新版本,请使用 pip
按照以下简单步骤操作:
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 更新
要将本地安装的 Open-WebUI 包更新到最新版本,请使用 pip
按照以下简单步骤操作:
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 更新
要将本地安装的 Open-WebUI 包更新到最新版本,请使用 pip
按照以下简单步骤操作:
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/worker 扩展 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/worker 扩展 Open WebUI,您需要设置 NoSQL 键值数据库。 有一些环境变量需要为所有服务实例设置为相同的值,否则会出现一致性问题、错误会话和其他问题!
访问 WebUI
设置端口转发或负载均衡以从集群外部访问 Open WebUI。
下一步
安装后,访问:
- http://localhost:3000 访问 Open WebUI。
- 或在使用 Python 部署时访问 http://localhost:8080/。
您现在可以开始使用 Open WebUI 了!
与 Ollama 一起使用 Open WebUI
如果您正在使用 Open WebUI 与 Ollama,请务必查看我们的Ollama 入门指南,了解如何使用 Open WebUI 管理您的 Ollama 实例。
加入社区
需要帮助?有疑问?加入我们的社区:
及时了解最新功能、故障排除技巧和公告!