~/ / Artículos de IA / LLM locales en un VPS / Conectar Dify con Ollama en tu propio VPS
Conectar Dify con Ollama en tu propio VPS
Dify es una plataforma para crear aplicaciones de IA que puedes ejecutar en tu propio servidor. Ollama ejecuta el modelo. Este artículo conecta ambos en un solo VPS: qué tamaño tiene que tener el servidor, cómo iniciar Dify, qué campos pide el plugin de Ollama y por qué la dirección que funciona en un portátil puede fallar dentro de Docker. También dice dónde termina la documentación, para que sepas qué partes debes probar por tu cuenta.
Publicado: · 7 min de lectura · Datos comprobados con la documentación y los repositorios oficiales el 2026-10-27. Dify cambia con rapidez, así que lee las notas de la versión que instales.
Lo que necesitas antes de empezar
La guía de autoalojamiento de Dify indica el mínimo para Dify en sí. El modelo necesita su propia memoria además de eso, así que hay que sumar las dos cifras. El estimador de abajo da una cifra para el modelo. Sumarla al mínimo de Dify es una regla práctica nuestra, no una afirmación de la documentación de Dify.
| Elemento | Lo que dice la guía de Dify |
|---|---|
| CPU | CPU >= 2 Core |
| Memoria | RAM >= 4 GiB |
| Docker Compose | Dify requiere Docker Compose 2.24.0 o posterior. |
| Git, curl, jq | El comando de clonado de abajo usa git, curl y jq. |
Pruébalo: Local LLM Memory Estimator
Estimación
- Pesos del modelo
- 4.84 GiB
- Caché KV
- 0.56 GiB
- Reserva
- 1.00 GiB
- Total
- 6.41 GiB (6.88 GB)
- Tamaño de memoria habitual más pequeño que lo contiene
- 8 GiB
Es una estimación. No incluye los búferes de cálculo del runtime y supone que todas las capas tienen la misma forma de KV. Mide una ejecución real antes de elegir un plan.
Datos del modelo comprobados el 2026-10-26.
Fuentes: Ollama library · Configuración del modelo (config.json) · Ollama FAQ
Todo se ejecuta en tu navegador. No se sube nada.
Paso 1: iniciar Dify con Docker Compose
Estos son los comandos de la guía de autoalojamiento de Dify. El primero descarga de GitHub la etiqueta de la última versión publicada, de modo que partes de una versión publicada y no de una rama sin terminar. En el momento de nuestra comprobación, la última versión era la 1.18.0 (publicada el 2026-10-23).
| Paso | Comando |
|---|---|
| Clonar la última versión | git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git |
| Ir a la carpeta de Docker | cd dify/docker |
| Copiar el archivo de configuración | cp .env.example .env |
| Crear un token para el backend del agente | openssl rand -base64 32 |
| Iniciar Dify | docker compose up -d |
Antes de iniciar, pon en .env el token que imprime openssl como DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN. La guía dice que el backend del agente y su sandbox no arrancan sin él.
Paso 2: crear la cuenta de administrador
Cuando los contenedores estén en marcha, la guía indica abrir primero la página de inicialización del administrador: http://your_server_ip/install en un servidor, o http://localhost/install en tu propio ordenador. Crea allí la cuenta y después inicia sesión en http://your_server_ip.
La documentación no dice quién puede acceder a esa página antes de que exista la cuenta. Nuestra recomendación, no una afirmación de los documentos: crea la cuenta justo después de iniciar, y lee el artículo sobre cómo proteger un servidor antes de dejar Dify abierto a internet.
Paso 3: añadir el plugin de Ollama y el modelo
En la documentación actual de Dify, los proveedores de modelos se instalan desde Integrations > Model Provider o desde Marketplace, y después se hace clic en Setup en la tarjeta del proveedor. Los nombres de los menús cambian entre versiones, así que busca la lista de proveedores en tu versión. La página de Marketplace del plugin de Ollama (versión 1.0.3 en el momento de nuestra comprobación) indica instalar Ollama, ejecutar un modelo y confirmar que su API local funciona antes de añadirlo a Dify.
Estos son los campos del plugin, tomados de su README y de su página de Marketplace.
| Campo | Qué introducir |
|---|---|
| Model Name | El modelo de Ollama, por ejemplo gemma3, qwen3, deepseek-r1 o gpt-oss. |
| Base URL | La raíz del host de Ollama, http://<your-ollama-host>:11434 para un Ollama local. No incluyas /api, porque el plugin añade por sí mismo /api/chat, /api/generate y /api/embed. |
| API Key | Opcional para un Ollama local. Obligatoria solo para Ollama cloud. |
| Model Type | Chat para conversación, llamadas a herramientas y visión. La página de Marketplace también menciona los embeddings de texto y el rerank. |
| Model Context Length | Debe coincidir con la ventana de contexto del modelo. |
| Upper bound for max tokens | El valor más alto de max tokens (num_predict) que permite Dify. |
| Vision support / Function call support | Elige Yes solo para un modelo que lo admita. |
| Attach Dify app_id as request headers | Desactivado por defecto. Si se activa, Dify añade las cabeceras X-Dify-App-Id y X-Dify-Source a sus llamadas a Ollama. Ollama no las usa. |
Para saber qué modelos admiten visión y llamadas a herramientas, consulta el artículo sobre lo que pueden hacer los modelos de la biblioteca de Ollama.
Paso 4: la dirección que funciona desde dentro de Docker
Dify se ejecuta en contenedores, y Ollama se ejecuta en el propio servidor. Dentro de un contenedor, localhost es el contenedor, no el servidor. El README del plugin dice: usa una dirección de host a la que pueda llegar el contenedor de Dify, como http://host.docker.internal:11434 o una dirección IP de la LAN.
La documentación de Docker explica el nombre. La opción --add-host admite un valor especial, host-gateway, que se resuelve a la dirección IP interna del host, y es habitual usar host.docker.internal para ese nombre. También dice que Docker Desktop resuelve el nombre automáticamente. El ejemplo de la documentación es --add-host host.docker.internal=host-gateway.
| Qué comprobamos | Resultado |
|---|---|
| ¿Define el docker-compose.yaml de Dify host.docker.internal? | No. No encontramos host.docker.internal ni ninguna entrada extra_hosts en el archivo de la rama main. |
| ¿Describe la referencia de Docker Compose extra_hosts? | Sí, como asignaciones de nombres de host con la forma HOSTNAME=IP que van a /etc/hosts. La página que leímos no menciona host-gateway para extra_hosts. |
| ¿Escucha Ollama en direcciones distintas de 127.0.0.1? | No por defecto. La FAQ de Ollama dice que se enlaza a 127.0.0.1 puerto 11434, y que la variable de entorno OLLAMA_HOST cambia la dirección de enlace. |
Nuestra lectura, no una afirmación de los documentos: en un servidor Linux tú mismo añades el nombre de host, o usas la dirección del servidor, y quizá también tengas que cambiar la dirección en la que escucha Ollama. No probamos esa combinación. Si cambias OLLAMA_HOST, el puerto 11434 pasa a ser accesible desde otras máquinas, y Ollama no tiene contraseña propia, así que cierra ese puerto hacia el exterior en el firewall. Los artículos sobre cómo instalar Ollama y sobre cómo poner nginx delante describen los ajustes.
Paso 5: embeddings, y lo que el plugin no hace
La página de Marketplace del plugin dice que admite streaming, razonamiento (thinking), visión, llamadas a herramientas y embeddings de texto, y que los vectores de embedding están L2-normalized. Para los embeddings añades un segundo modelo del tipo embeddings de texto, con un modelo de embeddings de la biblioteca de Ollama.
También indica qué no está incluido. Ollama no tiene un endpoint nativo de rerank, así que un modelo de rerank necesita un servicio de rerank compatible con OpenAI. Tampoco se incluye la búsqueda web. Necesita un plugin de herramienta de Dify aparte o un flujo de trabajo externo.
Si falla la conexión
- Ejecuta ollama ps y comprueba que el modelo está cargado, y abre http://127.0.0.1:11434 en el servidor para ver que Ollama responde.
- Revisa la Base URL. Es la raíz del host, con el puerto y sin /api.
- Comprueba que los contenedores de Dify pueden llegar a la dirección. La documentación de Dify dice que sus peticiones salientes pasan por un proxy que bloquea los rangos de IP internos y privados. La página nombra los nodos HTTP y las descargas de imágenes, y no dice si las peticiones de los proveedores de modelos siguen el mismo camino. Si usas una dirección privada y es rechazada, este es un lugar donde mirar.
- Lee los registros de los contenedores con docker compose logs. No encontramos en la documentación una lista de mensajes de error.
Mantener Dify actualizado
La guía dice que los pasos de actualización varían entre versiones, así que sigue la guía de actualización de la versión a la que pasas, que está en la página Releases de Dify. Después de actualizar, compara .env.example con tu .env para ver variables nuevas o modificadas. Si cambiaste docker-compose.yaml, aplica de nuevo tus cambios al archivo de la nueva versión, porque una versión puede añadir servicios que son obligatorios.
Fuentes
- Dify documentation: Deploy with Docker Compose
- Dify documentation: Model providers
- Dify documentation: Environment variables
- Dify official plugins: Ollama plugin README
- Dify Marketplace: Ollama plugin
- Dify repository: docker-compose.yaml
- Docker documentation: docker container run (--add-host)
- Docker documentation: Compose services (extra_hosts)
- Ollama documentation: FAQ
Sigue leyendo
- Empieza con un LLM local sin un PC caro: guía para principiantes sobre cómo usar un VPS¿No tienes un PC potente? Alquila un VPS y ejecuta un LLM local pequeño desde el navegador: seis pasos, desde la estimación de memoria hasta una pantalla de chat protegida, con los límites explicados con honestidad.
- Poner nginx delante de Ollama: autenticación básica, HTTPS y ajustes para el streamingAcceder a Ollama desde fuera de forma segura: nginx como proxy, autenticación básica, HTTPS, ajustes de streaming y de tiempo de espera, y una regla de cortafuegos, según la documentación oficial.
- Open WebUI en un VPS: ejecútalo en Docker y conéctalo a OllamaEjecuta Open WebUI con Docker y conéctalo a Ollama en tu propio servidor: los comandos, la primera cuenta, los dos tipos de conexión y cómo actualizar.
- Llamar a un modelo local desde tu código: salidas estructuradas y la API compatible con OpenAI en OllamaLimita la salida de un modelo local con un JSON Schema y llama a Ollama desde clientes al estilo OpenAI: qué dice la documentación oficial y qué no se admite.