⏱️ 快速入门
- 管理员创建: 在 Open WebUI 上创建的第一个账户将获得管理员权限,控制用户管理和系统设置。
- 用户注册: 后续注册的用户初始状态为待处理(Pending),需要管理员批准才能访问。
- 隐私和数据安全: 您的所有数据,包括登录详情,都本地存储在您的设备上。Open WebUI 确保严格保密,并且不会向外部发送请求,以增强隐私和安全。
- 所有模型默认都是私有的。 模型必须通过群组或设置为公开来显式共享。如果模型被分配到群组,则只有该群组成员才能看到它。如果模型被设置为公开,则该实例上的任何人都可以看到它。
请在下方选择您的首选安装方法
- Docker: 官方支持,推荐给大多数用户
- Python: 适用于资源受限的环境或需要手动设置的用户
- Kubernetes: 适合需要扩展和编排的企业部署
- Docker
- Python
- Kubernetes
- 第三方
- Docker
- Docker Compose
- Podman
- 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 支持,将 --gpus all
添加到 docker run
命令中
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 后,导航至 设置 > 管理设置 > 连接(Settings > Admin Settings > Connections),并创建一个新的 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: "*" # 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 Stack:
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.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 更新
要使用 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
使用 Helm 设置 Kubernetes
Helm 帮助您管理 Kubernetes 应用程序。
先决条件
- Kubernetes 集群已设置。
- Helm 已安装。
步骤
-
添加 Open WebUI Helm Repository
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。
使用 Kustomize 设置 Kubernetes
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。
下一步
安装后,访问
- http://localhost:3000 以访问 Open WebUI。
- 或者在部署 Python 时访问 http://localhost:8080/。
现在您已准备好开始使用 Open WebUI!
将 Open WebUI 与 Ollama 结合使用
如果您正在将 Open WebUI 与 Ollama 结合使用,请务必查看我们的使用 Ollama 开始指南,了解如何使用 Open WebUI 管理您的 Ollama 实例。
加入社区
需要帮助?有问题?加入我们的社区
随时了解最新功能、故障排除技巧和公告!