Open WebUI: interfaz similar a ChatGPT para Ollama
Open WebUI Ollama es hoy la combinación más práctica para tener una interfaz tipo ChatGPT en tu propia máquina, sin depender de la nube. Esta pila completamente autoalojada convierte tu servidor Ollama en una aplicación web multiusuario, con historial de conversaciones, gestión de modelos y RAG documental. Esta guía detalla la instalación de Open WebUI Ollama mediante Docker, la configuración de red, los modelos compatibles según tu VRAM, las funciones avanzadas (RAG, multiusuario, MCP) y las limitaciones que debes conocer antes de un despliegue interno en producción.
¿Qué es Open WebUI y por qué asociarlo con Ollama?
Open WebUI (anteriormente Ollama WebUI) es un front-end de código abierto escrito en SvelteKit + FastAPI, publicado bajo licencia BSD-3 en github.com/open-webui/open-webui. Ofrece una interfaz conversacional equivalente a ChatGPT, pero conectada a un backend de inferencia local. Ollama desempeña este papel de backend: un demonio que carga modelos GGUF cuantizados y expone una API HTTP compatible con OpenAI en el puerto 11434.
La combinación de los dos da una interfaz para LLM locales completa:
- Frontend : Open WebUI en el puerto 8080 (chat, historial, prompts de sistema, funciones en Python)
- Backend : Ollama en el puerto 11434 (gestión de memoria GPU, cuantización, streaming)
- Almacenamiento : SQLite o PostgreSQL para conversaciones y embeddings
A diferencia de LM Studio, que es para un solo usuario y funciona únicamente como aplicación de escritorio, Open WebUI gestiona cuentas, grupos, permisos por modelo y un modo RAG con una base de datos vectorial ChromaDB integrada. Es la opción preferible para compartir un servidor de inferencia entre varios colaboradores.
Instalación mediante Docker: el método recomendado
L'installation WebUI Docker es el método con soporte del equipo de Open WebUI. Evita los conflictos entre dependencias de Python y permite actualizaciones atómicas.
Prerrequisitos :
- Docker 24+ y Docker Compose v2
- Ollama instalado en el sistema anfitrión o en un contenedor (ver ollama.com/download)
- GPU NVIDIA con drivers ≥ 535 y nvidia-container-toolkit, o CPU para modelos pequeños
Comando mínimo (Ollama ya instalado en el anfitrión) :
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
La interfaz está luego disponible en http://localhost:3000. La primera cuenta creada recibe automáticamente el rol de administrador.
Stack docker-compose todo en uno (Ollama + WebUI + GPU NVIDIA) : ver el archivo de referencia en docs.openwebui.com/getting-started/quick-start. El servicio ollama debe montar un volumen persistente /root/.ollama para conservar los modelos descargados entre reinicios; de lo contrario, volverás a descargar varios cientos de gigaoctetos en cada docker compose down.
Para AMD ROCm, usa la imagen ghcr.io/open-webui/open-webui:main combinada con ollama/ollama:rocm. El rendimiento de la RX 7900 XTX equivale aproximadamente al 70-80 % del de una RTX 4090 en Q4_K_M (cifra estimada, depende del modelo).
Elegir el modelo adecuado para tu hardware
Open WebUI muestra todos los modelos presentes en el registro local de Ollama. El factor limitante sigue siendo la VRAM. Aquí tienes tres niveles acordes con el hardware de consumo y profesional.
Una RTX 4090 (24 GB de VRAM) es adecuada para modelos de 30 a 70B en Q4 con descarga parcial a la CPU:
- Qwen 2.5 72B Instruct (72B, Qwen License) — VRAM Q4 ~42 GB, ctx 131072. Requiere offload a CPU o tarjeta secundaria.
- Llama 3.3 70B Instruct (70B, Llama 3.3 Community) — VRAM Q4 ~40 GB. Idem, se requiere offload.
- DeepSeek R1 Distill Llama 70B — buen rendimiento en razonamiento, puntuación MMLU competitiva con los mejores modelos de 70B (por confirmar según la versión).
Una estación de trabajo con 2× RTX 6000 Ada (96 GB en total) permite plantearse usar modelos MoE compactos:
- gpt-oss 120B (117B, Apache 2.0, OpenAI) — VRAM Q4 ~70 GB, ctx 128000. Modelo abierto de OpenAI, integración nativa con Ollama.
- Mistral Small 4 (119B, Apache 2.0) — ctx 256000, excelente equilibrio para el uso en francés.
- Qwen 3.5 122B-A10B — MoE con 10B de parámetros activos, latencia muy baja para su tamaño.
Un servidor con 8× H100 (640 GB) o un clúster Abre las fronteras:
- DeepSeek V3.2 (685B, MIT) — VRAM Q4 ~410 GB
- Kimi K2.6 (1000B, Modified MIT) — VRAM Q4 ~600 GB, contexto 256000
- DeepSeek V4 Pro 1.6T — MoE de vanguardia, contexto de 1M tokens
Para un dimensionamiento preciso según tu tarjeta, utiliza el configurador de quelllm.fr que combina la VRAM disponible, la cuantización deseada y la longitud de contexto objetivo.
Funcionalidades avanzadas: RAG, funciones, MCP
Open WebUI va más allá del simple chat. Hay tres funciones que merece la pena configurar desde la instalación.
RAG integrado : sube PDF, DOCX, TXT o URLs a una «Colección». Open WebUI los divide (tamaño de chunk por defecto 1500, superposición 100), genera embeddings mediante sentence-transformers/all-MiniLM-L6-v2 localmente o a través de Ollama (nomic-embed-text), y almacena en ChromaDB. En la inferencia, los chunks relevantes se introducen en el contexto. Para bases voluminosas, cambia a PostgreSQL + pgvector mediante la variable VECTOR_DB=pgvector.
Las funciones Python (Pipelines) : Open WebUI permite ejecutar código arbitrario en preprocesamiento o postprocesamiento. Ejemplo: redirigir automáticamente los prompts que contengan «code» hacia Qwen3-Coder-Next 80B-A3B, y los demás a Mistral Medium 3.5 128B. Los pipelines funcionan en un contenedor separado en el puerto 9099, aislamiento útil para la seguridad.
El soporte del protocolo MCP (Model Context Protocol) : desde la versión 0.6, Open WebUI utiliza servidores MCP. Consulta la especificación oficial para los servidores disponibles (filesystem, GitHub, Postgres, etc.).
Comparación detallada de los frontends en quelllm.fr/compare/open-webui-vs-lm-studio.
Rendimiento y tokens por segundo observados
Las velocidades dependen del par modelo/GPU. Algunas mediciones de referencia con Ollama 0.5+ y Open WebUI 0.6+ en Q4_K_M:
- Llama 3.1 70B en 2× RTX 4090 (paralelismo tensorial experimental de Ollama): aproximadamente 18-22 tokens/s en generación (estimado)
- gpt-oss 120B en H100 80GB: 60-80 tokens/s (a confirmar según offload)
- Qwen 3 235B-A22B en 4× A100 80GB: 45-55 tokens/s gracias a la arquitectura MoE que activa solo 22B
El streaming WebSocket de Open WebUI añade una latencia imperceptible (<10 ms). El cuello de botella sigue siendo la propia inferencia. Para optimizar, activa OLLAMA_FLASH_ATTENTION=1 et OLLAMA_KV_CACHE_TYPE=q8_0 dentro del entorno del contenedor Ollama: ahorro de memoria del 30-40 % en el contexto (ver github.com/ollama/ollama/blob/main/docs/faq.md).
Para modelos de razonamiento como DeepSeek R1 671B, calcula que se generarán entre 3 y 10 veces más tokens por solicitud (cadena de pensamiento interna), lo que supone tiempos de respuesta de varios minutos incluso en una infraestructura potente.
Seguridad y despliegue multiusuario
En el ámbito empresarial, hay que tomar tres precauciones:
- Proxy inverso TLS : coloca Traefik o Caddy delante de Open WebUI. El puerto 8080 por defecto no tiene cifrado.
- Autenticación SSO : Open WebUI soporta OIDC (Keycloak, Authentik) a través de las variables
OAUTH_*. Desactiva el registro abierto de cuentas conENABLE_SIGNUP=false. - RBAC por modelo : desde la interfaz de administración, restringe los modelos pesados (>40 GB VRAM) a los grupos sénior para evitar que un usuario sature la cola de espera.
Audita regularmente los logs /app/backend/data/audit.log que registran los prompts y las cargas de archivos.
FAQ
P: ¿Funciona Open WebUI sin Ollama?
Sí. Open WebUI acepta cualquier API compatible con OpenAI: vLLM, servidor llama.cpp, LiteLLM, TGI. Configura la URL en Configuración → Conexiones. Ollama sigue siendo la vía más sencilla para comenzar porque su CLI gestiona automáticamente la descarga, la cuantización GGUF y la memoria. Para un despliegue de alto rendimiento con paralelismo tensorial maduro, vLLM o SGLang son preferibles.
P: ¿Qué tamaño mínimo de VRAM es necesario para comenzar?
Con 8 GB de VRAM (RTX 3060, 4060), puedes ejecutar cómodamente modelos de 7-8B, como variantes destiladas ligeras. Para 12-16 GB, busca modelos de 13-14B. La regla empírica: VRAM ≈ parámetros × 0,6 en Q4_K_M, más 1-2 GB para el contexto 8K. Consulta quelllm.fr/guide/vram-quantification para el detalle por cuantización (Q4, Q5, Q8, FP16).
P: ¿Cómo instalar Open WebUI sin Docker?
Via pip install open-webui puis open-webui serve. Este método está documentado pero menos aislado: posibles conflictos con otros entornos Python, actualizaciones más delicadas. Resérvalo para máquinas de desarrollo. Para un puesto de trabajo de un solo usuario, LM Studio o Jan pueden ser más sencillos; compáralos en quelllm.fr/compare/lm-studio-vs-jan.
Q: ¿Se puede conectar Open WebUI a varios servidores Ollama?
Sí. En Configuración → Conexiones, añade varias URL de Ollama (p. ej. http://gpu-01:11434, http://gpu-02:11434). Open WebUI agrupa los modelos disponibles. El enrutamiento es manual (el usuario elige el modelo); para un balanceo de carga automático, intercala LiteLLM como proxy. Útil para distribuir Mixtral 8x22B Instruct en un nodo y Llama 3.1 405B Instruct en otro.
P: ¿Las conversaciones están cifradas en reposo?
No por defecto. La base SQLite /app/backend/data/webui.db almacena los mensajes en texto plano. Para el cifrado en reposo, utiliza un volumen de Docker en un sistema de archivos cifrado (LUKS, cifrado nativo de ZFS) o migra a PostgreSQL con Transparent Data Encryption. El tráfico de red, por su parte, puede cifrarse mediante el proxy inverso TLS mencionado anteriormente.
P: ¿Open WebUI admite visión e imágenes?
Sí, con los modelos multimodales. Sube una imagen a la conversación: Open WebUI la codifica en base64 y la envía a Ollama si el modelo soporta la modalidad de visión. Modelos compatibles en el catálogo: Qwen 2.5 VL 72B, Qwen 3 VL 235B-A22B, LLaVA-OneVision 72B et Molmo 72B.
Conclusión
Open WebUI Ollama constituye la pila de referencia para ofrecer una interfaz similar a ChatGPT en un entorno autoalojado, desde un portátil hasta un clúster de GPU. La instalación con Docker lleva quince minutos; añadir la configuración de RBAC y RAG requiere unas horas. La elección del modelo sigue siendo el factor determinante: ajusta con precisión los parámetros, la cuantización y la VRAM disponible. Para explorar los 249 modelos indexados según las limitaciones de tu hardware, consulta el catálogo completo de quelllm.fr o deja el configurador recomendar la combinación óptima de modelo y cuantización para tu GPU.