跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    Open WebUI(原名 Ollama WebUI)是一个功能丰富的大语言模型 Web 前端界面。它提供了类似 ChatGPT 的对话体验,支持连接 Ollama 和 OpenAI 兼容 API,具备多用户管理、对话历史、模型切换、RAG 文档问答等功能,非常适合在团队或企业内部部署私有化 AI 对话平台。

    • 类 ChatGPT 的现代化界面
    • 支持多模型切换(Ollama、OpenAI、vLLM 等)
    • 多用户管理与权限控制
    • 对话历史保存与搜索
    • RAG(检索增强生成)文档问答
    • 模型自定义与 Modelfile 管理
    • Markdown 渲染、代码高亮
    • 支持语音输入和 TTS
    • CentOS Stream 9 & 10 / AlmaLinux 9 & 10 / Rocky Linux 9 & 10
    • Docker 或 Podman
    • 已部署的 Ollama 服务或其他 OpenAI 兼容 API(参考 Ollama 本地大模型)

    如果尚未安装 Docker:

    安装 Docker(EL 9 / EL 10)
    sudo dnf install -y dnf-plugins-core
    sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
    sudo systemctl enable --now docker
    sudo usermod -aG docker $(whoami)

    重新登录以使组变更生效。

    部署 Open WebUI(连接本机 Ollama)

    Section titled “部署 Open WebUI(连接本机 Ollama)”

    如果 Ollama 运行在同一台机器上:

    Terminal window
    docker run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    --add-host=host.docker.internal:host-gateway \
    -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
    ghcr.io/open-webui/open-webui:main

    访问 http://your-server-ip:3000 即可打开界面。

    部署 Open WebUI(连接远程 Ollama)

    Section titled “部署 Open WebUI(连接远程 Ollama)”

    如果 Ollama 运行在其他服务器上:

    Terminal window
    docker run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    -e OLLAMA_BASE_URL=http://192.168.1.100:11434 \
    ghcr.io/open-webui/open-webui:main

    如果使用 vLLM 或其他兼容 OpenAI API 的后端:

    Terminal window
    docker run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    -e OPENAI_API_BASE_URL=http://192.168.1.100:8000/v1 \
    -e OPENAI_API_KEY=not-needed \
    ghcr.io/open-webui/open-webui:main

    创建 docker-compose.yml 文件,同时部署 Ollama 和 Open WebUI:

    Terminal window
    mkdir -p /opt/open-webui && cd /opt/open-webui
    cat > docker-compose.yml <<'EOF'
    services:
    ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: always
    volumes:
    - ollama-data:/root/.ollama
    ports:
    - "11434:11434"
    # 如有 GPU,取消注释以下配置
    # deploy:
    # resources:
    # reservations:
    # devices:
    # - driver: nvidia
    # count: all
    # capabilities: [gpu]
    open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: always
    depends_on:
    - ollama
    ports:
    - "3000:8080"
    volumes:
    - open-webui-data:/app/backend/data
    environment:
    - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
    ollama-data:
    open-webui-data:
    EOF

    启动服务:

    Terminal window
    docker compose up -d

    在 Ollama 容器中拉取模型:

    Terminal window
    docker exec -it ollama ollama pull qwen2.5
    docker exec -it ollama ollama pull llama3.1

    EL9 系统自带 Podman,无需额外安装 Docker。

    Terminal window
    podman run -d \
    --name open-webui \
    --restart always \
    -p 3000:8080 \
    -v open-webui-data:/app/backend/data \
    --network=host \
    -e OLLAMA_BASE_URL=http://localhost:11434 \
    ghcr.io/open-webui/open-webui:main
    Terminal window
    # 生成 systemd 服务文件
    mkdir -p ~/.config/systemd/user
    podman generate systemd --name open-webui --new > ~/.config/systemd/user/open-webui.service
    # 启用开机自启(用户级服务)
    systemctl --user daemon-reload
    systemctl --user enable open-webui.service
    # 启用 lingering 以在用户未登录时也运行
    sudo loginctl enable-linger $(whoami)

    首次访问 Open WebUI 时,需要注册第一个账户。第一个注册的账户将自动成为管理员。

    1. 打开浏览器访问 http://your-server-ip:3000
    2. 点击 “Sign up” 注册
    3. 填写用户名、邮箱和密码
    4. 注册完成后自动登录

    登录后点击左下角头像进入设置。

    用户管理:管理员可以在 Admin Panel 中:

    • 查看和管理所有用户
    • 设置用户注册策略(开放注册 / 需要审批 / 关闭注册)
    • 修改用户角色(管理员 / 普通用户)
    Admin Panel > Settings > General > Enable New Sign Ups

    模型管理:

    • 选择对用户可见的模型
    • 设置默认模型
    • 创建自定义模型(基于 Modelfile)

    在管理员设置中配置后端连接:

    Ollama 连接:

    Admin Panel > Settings > Connections > Ollama API
    URL: http://host.docker.internal:11434

    OpenAI API 连接:

    Admin Panel > Settings > Connections > OpenAI API
    URL: http://your-vllm-server:8000/v1
    API Key: your-api-key

    Open WebUI 支持通过环境变量进行配置。以下是常用的环境变量:

    环境变量说明默认值
    OLLAMA_BASE_URLOllama API 地址http://localhost:11434
    OPENAI_API_BASE_URLOpenAI 兼容 API 地址-
    OPENAI_API_KEYOpenAI API 密钥-
    WEBUI_AUTH是否启用认证true
    WEBUI_SECRET_KEYJWT 密钥自动生成
    DEFAULT_MODELS默认选中的模型-
    ENABLE_SIGNUP是否允许注册true
    ENABLE_RAG_WEB_SEARCH启用 RAG 网络搜索false

    Open WebUI 的数据存储在容器内的 /app/backend/data 目录。通过 Docker Volume 持久化这些数据:

    Terminal window
    # 查看 volume 信息
    docker volume inspect open-webui-data
    # 备份数据
    docker run --rm \
    -v open-webui-data:/data \
    -v $(pwd):/backup \
    alpine tar czf /backup/open-webui-backup.tar.gz -C /data .
    # 恢复数据
    docker run --rm \
    -v open-webui-data:/data \
    -v $(pwd):/backup \
    alpine tar xzf /backup/open-webui-backup.tar.gz -C /data
    Terminal window
    # Docker 方式
    docker pull ghcr.io/open-webui/open-webui:main
    docker stop open-webui
    docker rm open-webui
    # 重新运行 docker run 命令(数据已通过 volume 持久化)
    # Docker Compose 方式
    cd /opt/open-webui
    docker compose pull
    docker compose up -d
    Terminal window
    sudo firewall-cmd --permanent --add-port=3000/tcp
    sudo firewall-cmd --reload

    确认 Ollama 监听地址正确:

    Terminal window
    # 检查 Ollama 是否监听
    curl http://localhost:11434/api/tags
    # 如果 Docker 容器无法访问宿主机的 Ollama
    # 确保 Ollama 监听在 0.0.0.0
    sudo systemctl edit ollama
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0"
    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl restart ollama
    Terminal window
    # 查看容器日志
    docker logs open-webui
    # 常见原因:端口冲突
    # 更换端口
    docker run -d --name open-webui -p 8080:8080 ...
    Terminal window
    # 进入容器重置
    docker exec -it open-webui bash
    # 在容器内执行(具体命令视版本而定)
    # 或者删除 volume 重新初始化(会丢失所有数据)
    docker stop open-webui
    docker rm open-webui
    docker volume rm open-webui-data
    # 重新创建容器