Open WebUI
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 部署
Section titled “使用 Docker 部署”安装 Docker
Section titled “安装 Docker”如果尚未安装 Docker:
sudo dnf install -y dnf-plugins-coresudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-pluginsudo systemctl enable --now dockersudo usermod -aG docker $(whoami)重新登录以使组变更生效。
部署 Open WebUI(连接本机 Ollama)
Section titled “部署 Open WebUI(连接本机 Ollama)”如果 Ollama 运行在同一台机器上:
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 运行在其他服务器上:
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连接 OpenAI 兼容 API(如 vLLM)
Section titled “连接 OpenAI 兼容 API(如 vLLM)”如果使用 vLLM 或其他兼容 OpenAI API 的后端:
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
Section titled “使用 Docker Compose”创建 docker-compose.yml 文件,同时部署 Ollama 和 Open WebUI:
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启动服务:
docker compose up -d在 Ollama 容器中拉取模型:
docker exec -it ollama ollama pull qwen2.5docker exec -it ollama ollama pull llama3.1使用 Podman 部署
Section titled “使用 Podman 部署”EL9 系统自带 Podman,无需额外安装 Docker。
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使用 systemd 管理 Podman 容器
Section titled “使用 systemd 管理 Podman 容器”# 生成 systemd 服务文件mkdir -p ~/.config/systemd/userpodman generate systemd --name open-webui --new > ~/.config/systemd/user/open-webui.service
# 启用开机自启(用户级服务)systemctl --user daemon-reloadsystemctl --user enable open-webui.service
# 启用 lingering 以在用户未登录时也运行sudo loginctl enable-linger $(whoami)创建管理员账户
Section titled “创建管理员账户”首次访问 Open WebUI 时,需要注册第一个账户。第一个注册的账户将自动成为管理员。
- 打开浏览器访问
http://your-server-ip:3000 - 点击 “Sign up” 注册
- 填写用户名、邮箱和密码
- 注册完成后自动登录
登录后点击左下角头像进入设置。
用户管理:管理员可以在 Admin Panel 中:
- 查看和管理所有用户
- 设置用户注册策略(开放注册 / 需要审批 / 关闭注册)
- 修改用户角色(管理员 / 普通用户)
Admin Panel > Settings > General > Enable New Sign Ups模型管理:
- 选择对用户可见的模型
- 设置默认模型
- 创建自定义模型(基于 Modelfile)
在管理员设置中配置后端连接:
Ollama 连接:
Admin Panel > Settings > Connections > Ollama APIURL: http://host.docker.internal:11434OpenAI API 连接:
Admin Panel > Settings > Connections > OpenAI APIURL: http://your-vllm-server:8000/v1API Key: your-api-keyOpen WebUI 支持通过环境变量进行配置。以下是常用的环境变量:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
OLLAMA_BASE_URL | Ollama API 地址 | http://localhost:11434 |
OPENAI_API_BASE_URL | OpenAI 兼容 API 地址 | - |
OPENAI_API_KEY | OpenAI API 密钥 | - |
WEBUI_AUTH | 是否启用认证 | true |
WEBUI_SECRET_KEY | JWT 密钥 | 自动生成 |
DEFAULT_MODELS | 默认选中的模型 | - |
ENABLE_SIGNUP | 是否允许注册 | true |
ENABLE_RAG_WEB_SEARCH | 启用 RAG 网络搜索 | false |
Open WebUI 的数据存储在容器内的 /app/backend/data 目录。通过 Docker Volume 持久化这些数据:
# 查看 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更新 Open WebUI
Section titled “更新 Open WebUI”# Docker 方式docker pull ghcr.io/open-webui/open-webui:maindocker stop open-webuidocker rm open-webui# 重新运行 docker run 命令(数据已通过 volume 持久化)
# Docker Compose 方式cd /opt/open-webuidocker compose pulldocker compose up -dsudo firewall-cmd --permanent --add-port=3000/tcpsudo firewall-cmd --reload无法连接到 Ollama
Section titled “无法连接到 Ollama”确认 Ollama 监听地址正确:
# 检查 Ollama 是否监听curl http://localhost:11434/api/tags
# 如果 Docker 容器无法访问宿主机的 Ollama# 确保 Ollama 监听在 0.0.0.0sudo systemctl edit ollama[Service]Environment="OLLAMA_HOST=0.0.0.0"sudo systemctl daemon-reloadsudo systemctl restart ollama容器启动失败
Section titled “容器启动失败”# 查看容器日志docker logs open-webui
# 常见原因:端口冲突# 更换端口docker run -d --name open-webui -p 8080:8080 ...忘记管理员密码
Section titled “忘记管理员密码”# 进入容器重置docker exec -it open-webui bash
# 在容器内执行(具体命令视版本而定)# 或者删除 volume 重新初始化(会丢失所有数据)docker stop open-webuidocker rm open-webuidocker volume rm open-webui-data# 重新创建容器