Open WebUI no es un modelo de inteligencia artificial ni un motor que genere respuestas por sí solo. Es la interfaz web desde la que puedes conversar con modelos servidos por Ollama o por una API compatible con OpenAI, entre otras opciones.
En esta guía lo instalo con Python y un entorno virtual, sin Docker. La interfaz se limitará a la propia máquina durante la prueba; el proveedor y los modelos son una decisión aparte.
Interfaz, proveedor y modelo: tres piezas distintas
Conviene separar estos términos antes de instalar nada:
- Open WebUI es la aplicación web: muestra conversaciones, administra conexiones y guarda datos de la instancia.
- El proveedor es el servicio o servidor al que Open WebUI envía las solicitudes. Puede ser Ollama, un servicio en la nube o un servidor local compatible con la API de OpenAI.
- El modelo es lo que responde a la solicitud: por ejemplo, un modelo disponible en Ollama o un identificador publicado por el proveedor de API.
Instalar Open WebUI no descarga automáticamente cualquier modelo ni garantiza que la inferencia ocurra en esta computadora. Si eliges una API remota, el proveedor recibe los mensajes que le envías. Y aunque uses Ollama, verifica si el modelo elegido se ejecuta localmente o utiliza una opción cloud.
Requisitos
- Una distribución Linux con Python 3.11 y soporte para
venvypip. - Conexión a Internet para descargar el paquete y sus dependencias.
- Un proveedor de modelos accesible para probar el chat. Puedes configurarlo después de instalar Open WebUI; puede ser local o remoto, y no es obligatorio instalar Ollama.
La documentación actual de Open WebUI indica compatibilidad con Python 3.11 y 3.12, y advierte que Python 3.13 todavía no está soportado. El README de la versión 0.9.5 recomienda Python 3.11. Para reproducir el recorrido de esa versión, 3.11 es la opción conservadora.
En Linux x86_64 sin GPU NVIDIA, la guía oficial de compatibilidad de Python advierte que la instalación de PyTorch puede incluir bibliotecas CUDA. Consulta allí la alternativa de PyTorch para CPU antes de instalar Open WebUI si no necesitas CUDA; no hace falta para todas las arquitecturas o configuraciones.
Crear el entorno e instalar Open WebUI
Comprueba primero la versión de Python:
python3.11 --version
Crea un directorio de trabajo y un entorno virtual. Si tu distribución ofrece Python 3.11 como python3, puedes sustituir el nombre del ejecutable:
mkdir -p ~/open-webui
cd ~/open-webui
python3.11 -m venv .venv
source .venv/bin/activate
Instala el paquete dentro del entorno, no en el Python global:
python -m pip install open-webui
Este comando instala la versión que publique PyPI en ese momento; no fija una versión concreta. Para reproducir específicamente la versión 0.9.5, sustituye el comando anterior por:
python -m pip install "open-webui==0.9.5"
La primera opción sigue la versión publicada más reciente; la segunda queda fijada a 0.9.5. Comprueba qué quedó instalado:
open-webui --version
Para salir del entorno virtual, usa deactivate. Cuando quieras volver a trabajar con esta instalación, entra al directorio y activa de nuevo .venv antes de ejecutar open-webui.
Primer inicio, solo en la máquina local
En el código de la versión 0.9.5, serve usa por defecto 0.0.0.0:8080, es decir, escucha en todas las interfaces de red. Como pip install open-webui puede instalar una versión posterior, no des por sentado que sus valores predeterminados serán idénticos. Para una prueba en una sola computadora, especifica el bind local explícitamente:
umask 077
mkdir -p "$HOME/.local/share/open-webui"
cd "$HOME/.local/share/open-webui"
DATA_DIR="$HOME/.local/share/open-webui" open-webui serve --host 127.0.0.1 --port 8080
Este bloque está pensado para una instalación nueva. DATA_DIR indica dónde guardar los datos; mantenerlos fuera del entorno virtual evita confundirlos con los paquetes. Si ya iniciaste Open WebUI, no cambies a otra ruta sin identificar primero la ubicación de los datos existentes y hacer una copia de seguridad: podrías arrancar con una base nueva y dejar de ver tus chats y configuración anteriores. Sin DATA_DIR, la documentación de pip sitúa los datos dentro de site-packages/open_webui/data.
El comando serve puede crear .webui_secret_key en el directorio de trabajo si no se configura una clave por otro medio. En 0.9.5 ese directorio depende de dónde ejecutes el comando. Cambiarlo puede hacer que se genere otra clave y se invaliden sesiones existentes. Para conservar una instalación previa, mantén su directorio de trabajo, clave y DATA_DIR; no uses este bloque sin comprobar antes esos valores.
La umask 077 limita los permisos de los archivos y directorios que se creen después; no cambia los permisos de una carpeta que ya existía. Mantén privado el directorio de datos y usa la misma clave en los siguientes inicios.
Deja esa terminal abierta mientras uses el servidor. Abre http://127.0.0.1:8080 en el navegador. La primera pantalla permite crear la cuenta administradora; según la configuración predeterminada documentada, el registro inicial se desactiva después de crearla. Los nombres exactos de las opciones pueden variar entre versiones.
Para detener esta ejecución local, vuelve a la terminal y pulsa Ctrl+C. No hace falta crear un servicio ni habilitar un inicio automático para probar la interfaz.
Conectar un proveedor de modelos
En la interfaz, abre Settings → Admin → Connections. Los nombres pueden aparecer traducidos según el idioma.
Ollama
Ollama es un proveedor que Open WebUI puede reconocer mediante su API. Si Ollama está instalado y funcionando en la misma máquina, la documentación indica que Open WebUI instalado con Python suele detectarlo en http://localhost:11434. No lo instales como parte de este paso si no lo necesitas: es un componente separado.
Para comprobar si un servidor Ollama local responde y qué modelos anuncia, puedes hacer una consulta de solo lectura:
curl --fail --silent --show-error http://127.0.0.1:11434/api/tags
Si devuelve una lista vacía, ese servidor no anuncia modelos disponibles. Si no conecta, comprueba primero que Ollama esté ejecutándose. En Open WebUI, revisa Manage Ollama API Connections, actualiza la lista y elige un modelo en un chat nuevo. La lista y el nombre del modelo no prueban por sí solos que la inferencia sea local: confirma cómo ofrece ese modelo el proveedor.
Servicios compatibles con la API de OpenAI
Para OpenAI o un servidor que implemente una API compatible, usa Manage OpenAI API Connections y añade una conexión. Introduce la URL base que indique el proveedor —el ejemplo oficial de OpenAI es https://api.openai.com/v1— y, si corresponde, la clave en el campo de la interfaz. No pegues la clave en un comando, en el artículo ni en el repositorio.
Open WebUI puede consultar /v1/models para descubrir modelos. Si el servicio no ofrece ese endpoint o usa una variante propia, quizá tengas que añadir manualmente sus identificadores en Model IDs. Para que el chat funcione, el servidor debe implementar el endpoint de chat compatible, normalmente /v1/chat/completions. Consulta la documentación de tu proveedor para obtener la URL, autenticación e identificadores correctos.
Las conexiones las realiza el backend de Open WebUI. Por eso, localhost significa la máquina donde corre el servidor, no necesariamente la computadora que muestra el navegador. En esta guía ambos son la misma; si el proveedor está en otro equipo, configura una dirección que el backend pueda alcanzar.
Comprobar la conexión
- En Settings → Admin → Connections, confirma que la conexión aparece habilitada.
- Comprueba si se muestran modelos. Si el proveedor no publica
/v1/models, añade un identificador válido manualmente. - Abre un chat nuevo, selecciona uno de esos modelos y envía una pregunta sencilla, por ejemplo:
Responde solo con la palabra OK. - Comprueba que aparece una respuesta y revisa qué proveedor y modelo seleccionaste.
Algunas versiones ofrecen Verify Connection para probar la URL. Esa verificación puede depender del endpoint de listado de modelos: un error allí no demuestra por sí solo que el endpoint de chat sea incompatible. La prueba final es una respuesta del modelo, junto con los registros del servidor si aparece un error.
Privacidad y exposición de red
- La interfaz no determina dónde se procesa el prompt. Si el proveedor es remoto, los mensajes enviados para inferencia pueden llegar a ese proveedor. Revisa sus condiciones y no envíes datos sensibles sin autorización.
- Local no significa automáticamente sin tráfico externo. La propia instancia puede realizar comprobaciones de versión y otras solicitudes; funciones opcionales, como búsqueda web o herramientas, también pueden comunicarse con servicios externos.
- Limita el acceso durante las pruebas. El ejemplo usa
127.0.0.1, accesible desde la misma máquina. No cambies el bind a0.0.0.0para “hacer que funcione” sin entender la exposición: otras máquinas de la red podrían alcanzar el servicio, según el firewall y la configuración. - Protege datos y credenciales. La carpeta de datos puede contener conversaciones, configuración y la base de datos. No la publiques ni la agregues a Git. Conserva la clave de sesión en un lugar privado y estable; no la compartas ni la incluyas en capturas o logs públicos.
- Revisa la autenticación antes de compartir la instancia. Una instalación personal local no equivale a una configuración endurecida para una red, un equipo o Internet.
Problemas habituales
| Síntoma | Qué revisar |
|---|---|
open-webui: command not found |
Activa el entorno virtual donde instalaste el paquete; el ejecutable está en su directorio bin. |
| El navegador no abre la página | Comprueba que la terminal siga ejecutando el servidor, que uses el puerto elegido y que la dirección coincida con el bind (127.0.0.1 en este ejemplo). |
| No aparece ningún modelo de Ollama | Comprueba http://127.0.0.1:11434/api/tags. Si Open WebUI y Ollama no corren en el mismo equipo, localhost no apunta al servidor de Ollama. |
| La conexión compatible falla con 401 o 403 | Revisa la URL, la clave y los permisos de la cuenta con el proveedor. No publiques la respuesta si contiene datos sensibles. |
| La conexión se guarda, pero no se listan modelos | Confirma si el proveedor implementa /v1/models; si no, añade un ID permitido y prueba una conversación. |
| El modelo aparece, pero no responde | Revisa el mensaje de error en la terminal de Open WebUI y confirma que el servidor proveedor esté disponible y acepte ese ID. No compartas logs sin revisar si contienen datos privados. |
Referencias oficiales
- Quick Start de Open WebUI — métodos Python, acceso inicial y conexiones.
- Instalación con pip — comando, entorno virtual y directorio de datos.
- Conexión con Ollama.
- Conexión con APIs compatibles con OpenAI.
- Errores de conexión y privacidad de datos.
- API de Ollama: listar modelos.
- README de Open WebUI 0.9.5 y código de inicio de esa versión.
Pendiente de validación práctica antes de publicar: no se ha iniciado la instalación auditada ni se ha probado en ella el bind local, el alta de la cuenta o una conexión con Ollama o una API compatible. Los comandos y el flujo se contrastaron con la documentación actual y, para
0.9.5, con el README y el código etiquetados; la prueba de extremo a extremo queda pendiente.