跳到主要内容

⏱️ 快速入门

Sponsored by Dave Waring
Dave Waring
Follow along as I build my own AI powered digital brain.
重要提示:用户角色与隐私
  • 管理员创建:在 Open WebUI 上创建的第一个账户将获得管理员权限,负责用户管理和系统设置。
  • 用户注册:后续的注册用户初始状态为待审核,需要管理员批准后才能访问系统。
  • 隐私与数据安全所有数据,包括登录信息,都本地存储在您的设备上。Open WebUI 确保了严格的保密性,并避免任何外部请求,从而增强隐私和安全性。
    • 所有模型默认都是私有的。模型必须明确地通过组共享或公开才能被他人看到。如果一个模型分配给了某个组,只有该组的成员可以查看它。如果模型被设为公开,则实例上的任何人都可以看到它。

请选择您偏好的安装方式:

  • Docker官方支持且推荐给大多数用户
  • Python:适用于资源有限的环境或希望手动设置的用户
  • Kubernetes:适合需要扩展和编排的企业级部署

快速开始使用 Docker 🐳

请按照以下步骤使用 Docker 安装 Open WebUI。

第一步:拉取 Open WebUI 镜像

首先,从 GitHub 容器仓库拉取最新的 Open WebUI Docker 镜像。

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

重要标志

  • 卷映射 (-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:

http://localhost:3000

有关每个 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:手动更新

  1. 停止并移除当前容器:

    docker rm -f open-webui
  2. 拉取最新版本:

    docker pull ghcr.io/open-webui/open-webui:main
  3. 重新启动容器:

    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,在你的 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 ghcr.io/open-webui/open-webui:main
  • 列出正在运行的容器:

    podman ps

Podman 网络配置

如果遇到网络问题,您可能需要调整网络设置:

--network=slirp4netns:allow_host_loopback=true

有关高级配置,请参阅 Podman 的文档

Docker Swarm

此安装方法需要了解 Docker Swarm 的相关知识,因为它使用一个堆栈文件在 Docker Swarm 中部署三个独立的服务容器。

它包含了独立的 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
    • 额外要求

      1. 确保启用了 CUDA,并按照您操作系统和 GPU 的说明进行操作。
      2. 启用 Docker GPU 支持,请参阅 Nvidia Container Toolkit
      3. 按照这里的指南配置 Docker Swarm 以支持您的 GPU
      • 确保在 /etc/nvidia-container-runtime/config.toml 中启用了 GPU 资源,并取消注释 swarm-resource = "DOCKER_RESOURCE_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

使用 Conda 安装

  1. 创建 Conda 环境:

    conda create -n open-webui python=3.11
  2. 激活环境:

    conda activate open-webui
  3. 安装 Open WebUI:

    pip install open-webui
  4. 启动服务器:

    open-webui serve

使用 Python 更新

要使用 pip 将本地安装的 Open-WebUI 包更新到最新版本,请按照以下简单步骤操作:

pip install -U open-webui

-U(或 --upgrade)标志确保 pip 将包升级到最新可用版本。

就是这样!您的 Open-WebUI 包现已更新完毕,可以正常使用了。

使用虚拟环境

使用 venv 创建独立的 Python 环境。

步骤

  1. 创建虚拟环境:

    python3 -m venv venv
  2. 激活虚拟环境:

    • 在 Linux/macOS 上:

      source venv/bin/activate
    • 在 Windows 上:

      venv\Scripts\activate
  3. 安装 Open WebUI:

    pip install open-webui
  4. 启动服务器:

    open-webui serve

使用 Python 更新

要使用 pip 将本地安装的 Open-WebUI 包更新到最新版本,请按照以下简单步骤操作:

pip install -U open-webui

-U(或 --upgrade)标志确保 pip 将包升级到最新可用版本。

就是这样!您的 Open-WebUI 包现已更新完毕,可以正常使用了。

开发环境设置

如果您是开发者并且希望贡献代码,请查阅《高级主题》中的《开发指南》:高级主题

为 Kubernetes 设置 Helm

Helm 帮助你管理 Kubernetes 应用程序。

先决条件

  • 已设置 Kubernetes 集群。
  • 已安装 Helm。

elm-步骤

  1. 添加 Open WebUI Helm 仓库:

    helm repo add open-webui https://open-webui.github.io/helm-charts
    helm repo update
  2. 安装 Open WebUI 图表:

    helm install openwebui open-webui/open-webui
  3. 验证安装:

    kubectl get pods

Helm-访问-WebUI

设置端口转发或负载均衡,以便从集群外部访问 Open WebUI。

Kubernetes 的 Kustomize 设置

Kustomize 使您能够自定义 Kubernetes 的 YAML 配置文件。

Kubernetes-前提条件

  • 已设置 Kubernetes 集群。
  • 已安装 Kustomize。

Kubernetes-步骤

  1. 克隆 Open WebUI 清单:

    git clone https://github.com/open-webui/k8s-manifests.git
    cd k8s-manifests
  2. 应用清单:

    kubectl apply -k .
  3. 验证安装:

    kubectl get pods

Kubernetes-访问 WebUI

通过设置端口转发或负载均衡,从集群外部访问 Open WebUI。

Pinokio.computer 安装方法

若要通过 Pinokio.computer 进行安装,请访问其网站:

https://pinokio.computer/

此安装方法的支持请参考其网站。

其他第三方集成

(当有新的第三方集成时会在此添加相关信息。)

下一步

安装完成后,请访问:

现在您可以开始使用 OpenWebUI 了!

使用 OpenWebUI 与 Ollama

如果您正在使用 OpenWebUI 与 Ollama,请务必查阅我们的《Ollama 入门指南》Starting with Ollama Guide,了解如何管理您的 Ollama 实例。

加入社区

需要帮助?有问题?加入我们的社区:

获取最新的功能更新、故障排除技巧和公告!