Ubuntu 24.04 本地部署 Open WebUI 与 Ollama
介绍在 Ubuntu 24.04 系统上通过 Docker Compose 本地部署 Open WebUI 并连接 Ollama 服务的方法。内容包括环境配置、模型管理、SearXNG 联网搜索集成及常见问题处理。主要涉及修改.env 和 docker-compose.yml 文件配置 Ollama 地址,以及 Caddy 反向代理设置。

介绍在 Ubuntu 24.04 系统上通过 Docker Compose 本地部署 Open WebUI 并连接 Ollama 服务的方法。内容包括环境配置、模型管理、SearXNG 联网搜索集成及常见问题处理。主要涉及修改.env 和 docker-compose.yml 文件配置 Ollama 地址,以及 Caddy 反向代理设置。

使用 Docker Compose 封装运行。
修改 Ollama 配置:宿主机 Ollama 服务地址为 http://host.docker.internal:11434。
查看本地模型 ID:
管理员面板 / 设置 / 外部连接:
运行页面:
修改配置文件:由于本地已经运行了 Ollama 服务,所以需要修改 docker-compose.yaml 以及.env 文件中关于 Ollama 的配置。
cd open-webui
cp .env.example .env
# .env
# Ollama URL for the backend to connect The path '/ollama' will be redirected to the specified # backend URL
OLLAMA_BASE_URL='http://host.docker.internal:11434'
# AUTOMATIC1111_BASE_URL="http://localhost:7860"
# For production, you should only need one host as # fastapi serves the svelte-kit built frontend and backend from the same host and port.
# To test with CORS locally, you can set something like
# CORS_ALLOW_ORIGIN='http://localhost:5173;http://localhost:8080'
CORS_ALLOW_ORIGIN='*'
# For production you should set this to match the proxy configuration (127.0.0.1)
FORWARDED_ALLOW_IPS='*'
# DO NOT TRACK SCARF_NO_ANALYTICS=true
DO_NOT_TRACK=true
ANONYMIZED_TELEMETRY=false
# docker-compose.yml
services:
open-webui:
build:
context: .
dockerfile: Dockerfile
image: ghcr.io/open-webui/open-webui:${WEBUI_Docker_TAG-main}
container_name: open-webui
volumes:
- open-webui:/app/backend/data
ports:
- ${OPEN_WEBUI_PORT-3000}:8080
environment:
- 'OLLAMA_BASE_URL=http://host.docker.internal:11434'
- 'WEBUI_SECRET_KEY='
extra_hosts:
- host.docker.internal:host-gateway
restart: unless-stopped
volumes:
ollama: {}
open-webui: {}
Git 拉取项目:
git clone https://github.com/open-webui/open-webui.git
注意:
开启联网搜索功能。配置宿主机中的 SearXNG 访问地址:http://host.docker.internal:8080/search?q=<query>;否则在对话窗口中无法开启联网搜索、无法连接到 SearXNG 的服务。
配置 docker-compose.yaml 中的 Caddy 端口映射以及取消 host 网络模式,否则被 Firefox 浏览器占用端口。
# docker-compose.yaml
caddy:
container_name: caddy
image: docker.io/library/caddy:2-alpine
# network_mode: host
restart: unless-stopped
ports:
- "8081:8081"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data:rw
- caddy-config:/config:rw
environment:
- SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost}
- SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal}
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
管理员面板/设置 中管理。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online