Open WebUI是一个可扩展的、功能丰富且用户友好的自托管AI平台,旨在完全离线运行。它支持各种LLM运行器,如Ollama和与OpenAI兼容的API,内置RAG推理引擎,使其成为强大的AI部署解决方案。
基础环境#
- Docker
- Docker Compose
- Traefik【可选】
部署步骤#
- 创建
compose.yml文件
mkdir /usr/local/src/open-webui
touch /usr/local/src/open-webui/compose.yml
- compose.yml文件内容
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
environment:
# 时区
- TZ=Asia/Shanghai
# ollama 服务地址
- OLLAMA_BASE_URL=http://ollama:11434
# SECRET_KEY: openssl rand -base64 16
- WEBUI_SECRET_KEY='xRHMr/hogOJBfvEm86+fFg=='
ports:
- "8080:8080"
volumes:
- /usr/local/src/open-webui/data:/app/backend/data
networks:
- service
deploy:
resources:
limits:
memory: 8192m
cpus: "4.0"
networks:
service:
external: true
- 启动容器
docker compose up -d
代理配置【可选】#
labels:
# Traefik 服务发现和路由配置
# 启用 Traefik 对此服务进行发现
- "traefik.enable=true"
# 指定 Traefik 应该监听哪个网络来发现此服务
- "traefik.docker.network=service"
# Router (路由器) 配置
# 定义路由规则:匹配域名 oi.artoio.com
- "traefik.http.routers.oi.rule=Host(`oi.artoio.com`)"
# 指定此路由只监听 'websecure' 入口点(通常是 443 端口)
- "traefik.http.routers.oi.entrypoints=websecure"
# 为此路由启用 TLS (HTTPS)
- "traefik.http.routers.oi.tls=true"
# 使用名为 'letsencrypt' 的证书解析器(需要在 Traefik 配置中定义)
- "traefik.http.routers.oi.tls.certresolver=letsencrypt"
# Service (服务) 配置
# 指定此路由要转发到哪个 Traefik 服务(与下面的服务名一致)
- "traefik.http.routers.oi.service=oi"
# oi 容器内部监听的端口
- "traefik.http.services.oi.loadbalancer.server.port=8080"
# WAF
- "traefik.http.routers.oi.middlewares=chaitin@file"
数据持久【强制】#
数据持久将 oi 数据持久化到 /usr/local/src/open-webui/data:/app/backend/data 目录。
volumes:
- /usr/local/src/open-webui/data:/app/backend/data
参考:


