Open WebUI
Interfaz de chat para los modelos publicados por LiteLLM. Ollama está deshabilitado explícitamente; este despliegue usa únicamente la API compatible con OpenAI.
Arquitectura
Open WebUI se une a proxy, desde donde Traefik lo publica y puede alcanzar litellm:4000. Los chats, usuarios y ajustes se guardan en OPENWEBUI_DATA_PATH.
Configuración
| Variable | Uso |
|---|---|
OPENAI_API_BASE_URL |
http://litellm:4000/v1 para tráfico interno |
OPENAI_API_KEY |
Valor de LITELLM_MASTER_KEY, no una credencial de Codex |
WEBUI_SECRET_KEY |
Firma sesiones; debe ser aleatoria y estable |
OPENWEBUI_DOMAIN, WEBUI_URL |
URL pública detrás de Traefik |
ENABLE_SIGNUP |
Debe desactivarse salvo durante un alta controlada |
ENABLE_LOGIN_FORM |
Mantiene o elimina el login local según la estrategia SSO |
WEBUI_AUTH_TRUSTED_*_HEADER |
Cabeceras de identidad entregadas por el proxy autenticado |
Las cabeceras de usuario sólo son seguras si Open WebUI no puede alcanzarse evitando Traefik y si el proxy elimina cualquier cabecera equivalente enviada por el cliente. WEBUI_SECRET_KEY no debe cambiarse en cada recreación porque invalidaría sesiones.
Relación con Codex
Open WebUI nunca monta ni lee auth.json. Envía una petición OpenAI-compatible a LiteLLM; LiteLLM valida su clave, selecciona el alias y, si corresponde, usa su proveedor Codex. Esto limita la exposición del refresh token a un único contenedor.
Despliegue
cd openwebui
docker compose --env-file .env config
docker compose --env-file .env up -d
Verificación
docker compose --env-file .env ps
docker compose --env-file .env logs -f openwebui
Si no aparecen modelos, prueba primero /v1/models contra LiteLLM con la misma clave. Si los modelos aparecen pero fallan sólo los alias Codex, revisa el montaje y renovación de auth.json en LiteLLM.