- Implementación de Ollama como motor de inferencia local para ejecutar modelos de lenguaje sin depender de la nube.
- Configuración de LibreChat a través de archivos YAML y Docker para crear una interfaz de usuario avanzada y privada.
- Comparativa de ecosistemas compatibles incluyendo Open WebUI, AnythingLLM y LobeChat para optimizar el flujo de trabajo.
- Uso de técnicas de RAG para interactuar con documentos locales mediante embeddings y bases de datos vectoriales.
El mercado de la inteligencia artificial está repleto de modelos y plataformas, pero buena parte de ellas procesa las conversaciones en servidores externos. Esto puede resultar cómodo, aunque también plantea dudas cuando se trabaja con documentos privados, código interno o información confidencial.
Una alternativa consiste en combinar Ollama y LibreChat. Ollama se encarga de ejecutar los modelos en el ordenador o servidor, mientras que LibreChat proporciona una interfaz web avanzada desde la que mantener conversaciones, adjuntar archivos, administrar usuarios y cambiar entre diferentes modelos.
Con esta combinación puedes construir una experiencia parecida a la de ChatGPT utilizando tu propio hardware. Además, una vez descargados los contenedores y los modelos necesarios, el sistema puede funcionar sin enviar las conversaciones a un proveedor de IA externo.
No obstante, instalar ambas aplicaciones no basta. LibreChat debe poder alcanzar la API de Ollama, y la dirección correcta cambia según ejecutes Ollama en el sistema anfitrión, dentro de Docker o en otro equipo de tu red.
Qué son Ollama y LibreChat

Ollama es una herramienta que facilita la descarga, administración y ejecución de modelos de lenguaje. Proporciona una interfaz de línea de comandos y una API local que normalmente escucha en el puerto 11434.
También incorpora compatibilidad con parte de la API de OpenAI. Gracias a ella, una aplicación preparada para comunicarse con un endpoint compatible puede enviar solicitudes a una dirección como http://localhost:11434/v1/ y utilizar un modelo instalado en Ollama.
El rendimiento dependerá principalmente del modelo, su cuantización y el hardware disponible. Ollama puede aprovechar diferentes tipos de aceleración, incluidas determinadas GPU de Nvidia y AMD, además de los chips de Apple compatibles. Sin embargo, la compatibilidad concreta varía según el sistema operativo y el dispositivo.
LibreChat, por su parte, es una interfaz de conversación autohospedada. Su aspecto recuerda al de ChatGPT, pero está diseñada para conectar distintos proveedores y endpoints desde una misma instalación. Puede trabajar con servicios comerciales, servidores compatibles con OpenAI y modelos locales ejecutados mediante Ollama.
Además del chat, LibreChat incorpora funciones como agentes, herramientas, carga de archivos, presets, búsqueda de conversaciones, compatibilidad con MCP y diferentes opciones de administración. Por eso, resulta más apropiado describirlo como una plataforma multiproveedor de inteligencia artificial que como una simple interfaz para Ollama.
Instalar Ollama y descargar un modelo local
El primer paso consiste en instalar Ollama utilizando el método correspondiente a Windows, macOS o Linux. También puedes ejecutarlo en un contenedor de Docker, algo especialmente útil si quieres mantener toda la infraestructura aislada y administrarla mediante Compose.
Después de iniciar Ollama, puedes comprobar que su API responde abriendo en el navegador la dirección:
http://localhost:11434/api/tags
Si el servicio está funcionando, devolverá información en formato JSON sobre los modelos instalados. También puedes consultar la lista desde una terminal con:
ollama list
Antes de conectar LibreChat necesitarás descargar al menos un modelo. El nombre exacto debe comprobarse en la biblioteca de Ollama, ya que las versiones disponibles cambian con el tiempo. El comando general es:
ollama pull nombre-del-modelo
Para realizar una primera prueba conviene elegir un modelo pequeño que pueda ejecutarse cómodamente con la memoria disponible. Una vez comprobada la conexión, podrás descargar una variante más grande o con una cuantización diferente.
Si Ollama se ejecuta en un contenedor denominado ollama, puedes descargar el modelo sin entrar manualmente en él:
docker exec -it ollama ollama pull nombre-del-modelo
Los modelos deben almacenarse en un volumen persistente. De lo contrario, podrían desaparecer al eliminar y volver a crear el contenedor.
Elegir la dirección de Ollama según la instalación
Uno de los errores más habituales consiste en utilizar localhost sin tener en cuenta desde dónde se realiza la conexión. Dentro del contenedor de LibreChat, localhost hace referencia al propio contenedor de LibreChat, no al ordenador anfitrión ni al contenedor de Ollama.
La dirección correcta depende de la arquitectura:
| Ubicación de Ollama | Dirección habitual desde LibreChat |
|---|---|
| Ollama y LibreChat en el mismo sistema, sin Docker | http://localhost:11434/v1/ |
| LibreChat en Docker y Ollama en Windows o macOS | http://host.docker.internal:11434/v1/ |
| Ambos en la misma red de Docker | http://ollama:11434/v1/ |
| Ollama en otro ordenador de la red | http://IP_DEL_SERVIDOR:11434/v1/ |
El nombre ollama del tercer ejemplo debe coincidir con el nombre del servicio definido en el archivo de Docker Compose.
En Docker Desktop, host.docker.internal suele estar disponible automáticamente. En una instalación de Docker sobre Linux puede ser necesario añadir esta entrada al servicio de LibreChat:
extra_hosts:
- "host.docker.internal:host-gateway"
De este modo, el contenedor podrá resolver ese nombre y alcanzar el sistema anfitrión.
Permitir que LibreChat acceda al servidor de Ollama

Ollama escucha normalmente en la interfaz local. Esto es suficiente cuando la aplicación cliente se ejecuta en el mismo sistema, pero puede impedir que LibreChat acceda desde un contenedor o desde otro ordenador.
En Linux, si Ollama se administra como un servicio de systemd, puedes crear una configuración adicional con:
sudo systemctl edit ollama
Dentro del editor añade:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Después aplica los cambios y reinicia el servicio:
sudo systemctl daemon-reload
sudo systemctl restart ollama
La dirección 0.0.0.0 hace que Ollama escuche en todas las interfaces de red. Esto puede resolver la comunicación, pero también amplía la superficie de exposición del servidor.
La API local de Ollama no requiere autenticación para este tipo de acceso. Por tanto, no deberías publicar el puerto 11434 directamente en Internet. Limita su acceso mediante el firewall, una red privada de Docker, una VPN o un proxy con autenticación.
Si Ollama y LibreChat se ejecutan dentro del mismo Compose, normalmente resulta más seguro mantener Ollama accesible únicamente en la red interna de Docker y evitar publicar el puerto hacia el exterior.
Configurar Ollama en el archivo librechat.yaml

LibreChat permite añadir Ollama como un endpoint personalizado compatible con la API de OpenAI. Para ello debes crear o editar el archivo librechat.yaml situado en la raíz del proyecto.
Una configuración básica para LibreChat en Docker y Ollama instalado en el sistema anfitrión sería la siguiente:
version: 1.3.13
cache: true
endpoints:
custom:
- name: "Ollama"
apiKey: "ollama"
baseURL: "http://host.docker.internal:11434/v1/"
models:
default:
- "nombre-del-modelo"
fetch: true
titleConvo: true
titleModel: "current_model"
summarize: false
summaryModel: "current_model"
modelDisplayLabel: "Ollama"
El número indicado en version corresponde a la versión del esquema de configuración, no a la versión instalada de LibreChat. Conviene utilizar el valor mostrado en el ejemplo oficial incluido con la versión que estés desplegando.
Aunque Ollama ignora la clave de API para las solicitudes locales, LibreChat espera que el campo apiKey exista. Por eso puede utilizarse simplemente el valor ollama como marcador.
En models.default debes introducir el nombre exacto que aparece al ejecutar ollama list. Con fetch: true, LibreChat también puede consultar los modelos disponibles en el servidor. Para que esta detección funcione, el nombre del endpoint debe comenzar por Ollama.
El valor current_model permite utilizar el modelo de la conversación para generar su título, evitando cargar un segundo modelo local únicamente para esta tarea.
Montar la configuración y reiniciar LibreChat

Cuando LibreChat se ejecuta en Docker, no es suficiente con guardar librechat.yaml en el ordenador. El archivo debe montarse dentro del contenedor de la API.
Puedes copiar el archivo de ejemplo incluido en el proyecto:
cp docker-compose.override.yml.example docker-compose.override.yml
Después comprueba que docker-compose.override.yml contiene este volumen:
services:
api:
volumes:
- type: bind
source: ./librechat.yaml
target: /app/librechat.yaml
Si utilizas Docker sobre Linux y Ollama está instalado en el anfitrión, puedes incorporar también la resolución de host.docker.internal:
services:
api:
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- type: bind
source: ./librechat.yaml
target: /app/librechat.yaml
Para aplicar la configuración es preferible recrear los servicios:
docker compose down
docker compose up -d
Al abrir LibreChat, Ollama debería aparecer en el selector de endpoints o modelos. Si no aparece, revisa los registros de la API:
docker compose logs api
Los fallos más comunes son una indentación incorrecta en el YAML, un modelo cuyo nombre no coincide, una URL inaccesible desde el contenedor o un archivo que no ha sido montado correctamente.
Alternativas a LibreChat para utilizar Ollama
LibreChat resulta especialmente interesante para quienes desean combinar modelos locales y proveedores externos en una interfaz parecida a ChatGPT. Sin embargo, no es la única herramienta compatible con Ollama.
Open WebUI ofrece una integración muy directa con Ollama y añade usuarios, bases de conocimiento, RAG, herramientas, agentes y opciones administrativas. Es una alternativa especialmente completa si Ollama va a ser el centro de la instalación.
AnythingLLM está orientado al trabajo con documentos y espacios de conocimiento. Permite importar archivos, crear áreas separadas y utilizar diferentes proveedores de modelos y embeddings. La calidad de las respuestas dependerá de cómo se procesen los documentos y de los modelos configurados, por lo que no conviene asumir que siempre citará el fragmento exacto.
Page Assist funciona como una extensión de navegador y permite comunicarse con modelos locales mientras navegas. Es una opción más ligera para uso individual, aunque no proporciona todas las funciones administrativas de una plataforma instalada en un servidor.
LobeChat también puede conectarse con Ollama y destaca por su interfaz y su ecosistema de herramientas. Cuando la comunicación se realiza directamente desde el navegador puede ser necesario configurar correctamente los orígenes permitidos mediante OLLAMA_ORIGINS. Este ajuste es diferente de OLLAMA_HOST: el primero controla los orígenes web autorizados y el segundo determina en qué interfaces escucha el servidor.
Privacidad y seguridad de una instalación local
Conectar LibreChat con Ollama permite mantener la inferencia en el equipo propio, pero esto no garantiza por sí solo que toda la plataforma funcione de manera privada.
Si añades APIs comerciales, búsquedas web, modelos remotos de embeddings, herramientas externas o servicios de reconocimiento, parte de la información puede abandonar tu infraestructura. Para mantener el procesamiento dentro de la red debes revisar todos los componentes utilizados, no únicamente el modelo principal.
También es necesario proteger las cuentas de LibreChat, actualizar los contenedores, limitar los puertos expuestos y realizar copias de seguridad de los volúmenes. En una instalación accesible desde Internet conviene utilizar HTTPS, autenticación robusta y un proxy inverso correctamente configurado.
Una vez protegida la infraestructura, la combinación de LibreChat y Ollama ofrece un entorno muy flexible. Ollama proporciona la capa de inferencia local y LibreChat añade la experiencia de usuario, la administración y la posibilidad de trabajar con varios modelos desde un mismo lugar.
El resultado es una plataforma de IA controlada por el usuario, capaz de funcionar sin una suscripción mensual y, después de descargar todos los recursos necesarios, sin depender permanentemente de una conexión a Internet.
Soy un apasionado de la tecnología que ha convertido sus intereses «frikis» en profesión. Llevo más de 10 años de mi vida utilizando tecnología de vanguardia y trasteando todo tipo de programas por pura curiosidad. Ahora me he especializado en tecnología de ordenador y videojuegos. Esto es por que desde hace más de 5 años que trabajo redactando para varias webs en materia de tecnología y videojuegos, creando artículos que buscan darte la información que necesitas con un lenguaje entendible por todos.
Si tienes cualquier pregunta, mis conocimientos van desde todo lo relacionado con el sistema operativo Windows así como Android para móviles. Y es que mi compromiso es contigo, siempre estoy dispuesto a dedicarte unos minutos y ayudarte a resolver cualquier duda que tengas en este mundo de internet.