Cómo instalar n8n con Ollama en Ubuntu

n8n con Ollama en Ubuntu es una excelente combinación para automatizar tareas utilizando inteligencia artificial sin depender de servicios en la nube ni pagar por cada consulta a una API. Con n8n puedes conectar diferentes aplicaciones y crear flujos de trabajo, mientras que Ollama se encarga de ejecutar los modelos de IA directamente en tu ordenador o servidor.

Esta combinación permite construir automatizaciones en las que los datos pueden permanecer dentro de tu propia infraestructura. Por ejemplo, puedes utilizar un modelo local para clasificar textos, resumir documentos, analizar información o generar respuestas dentro de un flujo de n8n.

En este tutorial veremos cómo instalar n8n mediante Docker en Ubuntu y conectarlo con una instalación de Ollama que se ejecuta directamente en el sistema.

Importante: n8n y Ollama no tienen que ejecutarse necesariamente en el mismo entorno. En este tutorial n8n estará dentro de Docker, mientras que Ollama se ejecutará directamente en Ubuntu. Esto requiere configurar correctamente la comunicación entre el contenedor y el sistema anfitrión.

Qué necesitas

Antes de comenzar, necesitas:

  • Un PC o servidor con Ubuntu.
  • Docker y Docker Compose instalados.

Si todavía no tienes Docker instalado en Ubuntu, puedes consultar nuestra guía sobre cómo instalar Docker en Ubuntu.

  • Ollama instalado y funcionando.

Si aún no tienes Ollama instalado y funcionando en Ubuntu, consulta nuestra guía sobre cómo instalar Ollama en Ubuntu.

  • Al menos un modelo descargado en Ollama.
  • Acceso a una terminal con permisos para ejecutar Docker.

Antes de elegir un modelo, conviene comprobar los requisitos para ejecutar IA local, especialmente la cantidad de RAM y VRAM necesaria según el tamaño del modelo.

Cómo funciona la arquitectura

Antes de instalar nada conviene entender cómo se comunicarán los componentes.

La arquitectura será:

┌───────────────────────────────┐
│            Ubuntu             │
│                               │
│   ┌───────────────────────┐   │
│   │        Ollama         │   │
│   │   Puerto 11434        │   │
│   └───────────┬───────────┘   │
│               │               │
│               │ HTTP API      │
│               │               │
│   ┌───────────▼───────────┐   │
│   │       Docker          │   │
│   │                       │   │
│   │   ┌───────────────┐   │   │
│   │   │      n8n      │   │   │
│   │   │   Puerto 5678  │   │   │
│   │   └───────────────┘   │   │
│   └───────────────────────┘   │
└───────────────────────────────┘

El punto importante es que localhost dentro del contenedor de n8n no es el mismo localhost de Ubuntu.

Arquitectura de n8n y Ollama en Ubuntu: n8n en Docker conectado a la API local de Ollama mediante HTTP

Por eso, si Ollama está instalado en Ubuntu y n8n dentro de Docker, debemos utilizar una dirección que permita al contenedor acceder al sistema anfitrión.


Paso 1: Comprobar que Ollama funciona

Antes de instalar n8n, verifica que Ollama esté funcionando correctamente.

Puedes comprobar los modelos instalados con:

ollama list

Deberías obtener una lista similar a:

NAME              ID              SIZE
llama3.2:latest   xxxxxxxx        2.0 GB

También puedes comprobar que la API de Ollama responde:

curl http://127.0.0.1:11434/api/tags

Si Ollama está funcionando, devolverá información en formato JSON con los modelos disponibles.

También puedes realizar una prueba directa:

ollama run llama3.2

Sustituye llama3.2 por el modelo que tengas instalado.

Si esta prueba funciona, Ollama está preparado para recibir peticiones.


Paso 2: Crear el directorio de n8n

Crea un directorio independiente para la instalación:

mkdir -p ~/n8n-docker
cd ~/n8n-docker

A continuación, crea el archivo de Docker Compose:

nano docker-compose.yml

Paso 3: Crear el docker-compose.yml

Introduce esta configuración:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped

    ports:
      - "5678:5678"

    extra_hosts:
      - "host.docker.internal:host-gateway"

    environment:
      - GENERIC_TIMEZONE=America/Santiago
      - TZ=America/Santiago

    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:
Configuración del archivo docker-compose.yml para instalar n8n en Ubuntu con Docker y conectar Ollama

Guarda el archivo con:

Ctrl + O

Pulsa Enter y después:

Ctrl + X

¿Qué hace esta configuración?

Hay varios elementos importantes.

image

image: docker.n8n.io/n8nio/n8n

Utiliza la imagen oficial de n8n.

restart

restart: unless-stopped

Hace que Docker vuelva a iniciar n8n después de un reinicio del sistema, salvo que hayas detenido el contenedor manualmente.

ports

ports:
  - "5678:5678"

Expone el puerto 5678 del contenedor en el mismo puerto del sistema anfitrión.

Por eso podrás acceder posteriormente a:

http://localhost:5678

volumes

volumes:
  - n8n_data:/home/node/.n8n

Este punto es fundamental.

Los datos de n8n se almacenan en un volumen persistente para que los workflows, credenciales y configuración no desaparezcan cuando el contenedor se reinicie o se vuelva a crear.

extra_hosts

extra_hosts:
  - "host.docker.internal:host-gateway"

Esta configuración permite que el contenedor pueda resolver host.docker.internal hacia el sistema anfitrión.

Es precisamente lo que necesitamos para que n8n pueda comunicarse con Ollama instalado fuera de Docker.


Paso 4: Iniciar n8n

Desde el directorio ~/n8n-docker, ejecuta:

docker compose up -d

Docker descargará la imagen de n8n si todavía no está disponible localmente y creará el contenedor.

Comprueba su estado:

docker ps

Deberías encontrar un contenedor llamado n8n con el puerto 5678 publicado.

También puedes revisar los registros:

docker compose logs -f n8n

Para salir de los registros sin detener n8n, pulsa:

Ctrl + C

Paso 5: Abrir n8n

En el mismo equipo donde has instalado n8n, abre:

http://localhost:5678

Si accedes desde otro ordenador de la red local, puedes utilizar la dirección IP del servidor:

http://IP_DEL_SERVIDOR:5678

Por ejemplo:

http://192.168.1.50:5678

Advertencia de seguridad: no deberías exponer directamente el puerto 5678 a Internet sin una configuración de seguridad adecuada. Para una instalación pública conviene utilizar HTTPS, un dominio y un proxy inverso, además de las medidas de autenticación correspondientes.


Paso 6: Comprobar que n8n puede acceder a Ollama

Aquí está la parte que suele provocar problemas cuando n8n y Ollama están instalados en entornos diferentes.

Desde Ubuntu, Ollama normalmente escucha su API en:

http://127.0.0.1:11434

Pero desde el contenedor de n8n no debes utilizar localhost:11434.

En nuestra configuración utilizaremos:

http://host.docker.internal:11434

La diferencia es importante:

localhost

significa el propio contenedor de n8n.

En cambio:

host.docker.internal

permite llegar al sistema anfitrión donde está ejecutándose Ollama. Para conocer más sobre este tipo de comunicación entre contenedores y el sistema anfitrión, consulta la documentación oficial sobre redes de Docker.


Paso 7: Configurar Ollama para aceptar conexiones desde Docker

Dependiendo de cómo esté configurado Ollama, puede ser necesario hacer que su servidor escuche en una interfaz accesible desde el contenedor.

Comprueba primero cómo está funcionando actualmente:

ss -lntp | grep 11434

Si Ollama está escuchando solamente en:

127.0.0.1:11434

el contenedor podría no conseguir conectarse.

En ese caso, debes configurar Ollama para escuchar en una dirección accesible desde Docker.

Si utilizas Ollama como servicio de systemd, puedes configurar la variable:

OLLAMA_HOST=0.0.0.0:11434

Después reinicia Ollama:

sudo systemctl restart ollama

Y vuelve a comprobar:

ss -lntp | grep 11434

Importante: escuchar en 0.0.0.0 hace que Ollama pueda aceptar conexiones en las interfaces de red disponibles. Si el equipo es accesible desde otras redes, revisa el firewall y evita exponer innecesariamente el puerto 11434 a Internet.

Conexión HTTP entre n8n en Docker y Ollama instalado en Ubuntu mediante host.docker.internal:11434

Paso 8: Conectar n8n con Ollama

Ahora podemos configurar n8n con Ollama en Ubuntu. Crea un nuevo Workflow y añade el nodo relacionado con Ollama dentro de las funciones de IA de n8n.

Crea un nuevo Workflow y añade el nodo relacionado con Ollama dentro de las funciones de IA de n8n.

Dependiendo de la versión de n8n, la interfaz y la ubicación exacta del nodo pueden cambiar. Lo importante es seleccionar la integración de Ollama como proveedor del modelo.

Cuando n8n solicite la dirección del servidor, utiliza:

http://host.docker.internal:11434

No utilices:

http://localhost:11434

cuando n8n esté ejecutándose dentro del contenedor.

A continuación, selecciona el modelo disponible en Ollama.

Por ejemplo:

llama3.2

o cualquier otro modelo que hayas descargado.


Paso 9: Crear una primera automatización con IA local

Una vez establecida la conexión, puedes crear un workflow sencillo para comprobar que todo funciona.

Una arquitectura básica podría ser:

Trigger
   ↓
Entrada de texto
   ↓
Ollama
   ↓
Procesamiento de la respuesta
   ↓
Salida

Por ejemplo:

Manual Trigger
      ↓
     Ollama
      ↓
   Resultado

El objetivo inicial no debería ser construir un agente complejo, sino comprobar que la comunicación entre n8n y Ollama funciona correctamente.

Una vez validada la conexión puedes añadir otros servicios y nodos.


Qué puedes automatizar con n8n + Ollama

La combinación de automatización y modelos locales permite crear flujos bastante más interesantes que una simple conversación con un chatbot.

Algunos ejemplos son:

Clasificar información

Puedes recibir textos y pedir a Ollama que los clasifique según determinadas categorías.

Entrada
   ↓
Ollama
   ↓
Clasificación
   ↓
Acción correspondiente

Resumir documentos

Un workflow puede recibir contenido, enviarlo al modelo local y generar un resumen.

Documento
   ↓
Extracción de texto
   ↓
Ollama
   ↓
Resumen

Procesar correos electrónicos

n8n puede recibir mensajes de correo, extraer su contenido y utilizar un modelo local para clasificarlos o generar una respuesta preliminar.

La respuesta puede quedar posteriormente pendiente de revisión humana antes de enviarse.

Automatizar tareas con WordPress

También puedes combinar n8n con WordPress mediante su API para crear flujos relacionados con contenidos, análisis o gestión del sitio.

Por ejemplo:

Nueva información
       ↓
     Ollama
       ↓
Clasificación/análisis
       ↓
    WordPress

En este tipo de automatizaciones es recomendable separar la generación de contenido de la publicación automática, especialmente cuando se trabaja con un sitio que depende del tráfico orgánico.


n8n + Ollama: ventajas y limitaciones

La principal ventaja de esta arquitectura es que puedes combinar la automatización de n8n con la ejecución local de modelos de IA.

Ventajas

  • Los modelos pueden ejecutarse en tu propia infraestructura.
  • No necesitas enviar cada prompt a una API externa.
  • Puedes evitar costes variables por token de determinadas APIs.
  • Los workflows de n8n permiten conectar numerosos servicios.
  • Puedes utilizar diferentes modelos locales según la tarea.
  • Es una arquitectura especialmente interesante para servidores Linux y laboratorios de IA local.

Limitaciones

La IA local tampoco es gratuita en sentido absoluto.

Necesitas hardware capaz de ejecutar el modelo y ese hardware consume electricidad. Además, los modelos grandes pueden requerir cantidades considerables de RAM o VRAM.

El rendimiento también depende directamente de tu CPU, GPU, memoria y almacenamiento.

Por eso, antes de elegir un modelo conviene comprobar los requisitos de hardware.


¿Qué ocurre si n8n y Ollama están ambos dentro de Docker?

Existe otra arquitectura posible: ejecutar n8n y Ollama como contenedores dentro de la misma red Docker.

En ese caso no utilizarías:

http://host.docker.internal:11434

sino el nombre del servicio Docker, por ejemplo:

http://ollama:11434

si el servicio de Ollama se llama ollama.

La ventaja de esta arquitectura es que ambos servicios pueden comunicarse directamente a través de la red interna de Docker.

Sin embargo, para un primer despliegue en Ubuntu puede resultar más sencillo mantener Ollama instalado directamente en el sistema y n8n dentro de Docker, como hemos hecho en este tutorial.


Solución de problemas

n8n no abre en el navegador

Comprueba que el contenedor está ejecutándose:

docker ps

Si no aparece, consulta los registros:

docker compose logs n8n

También puedes comprobar si el puerto está abierto:

ss -lntp | grep 5678

n8n no consigue conectarse con Ollama

El primer punto que debes comprobar es la URL.

Si n8n está dentro de Docker y Ollama está instalado en Ubuntu, prueba:

http://host.docker.internal:11434

No:

http://localhost:11434

Comprueba también que Ollama está ejecutándose:

systemctl status ollama

Y que responde desde Ubuntu:

curl http://127.0.0.1:11434/api/tags

Si responde desde Ubuntu pero no desde n8n, revisa la dirección de escucha de Ollama y la configuración de red de Docker.


El modelo no aparece en n8n

Comprueba primero que el modelo realmente está instalado:

ollama list

Si no aparece, descarga uno:

ollama pull llama3.2

Después vuelve a seleccionar o introducir el modelo desde la configuración de Ollama en n8n.


Seguridad: no expongas Ollama directamente a Internet

La API de Ollama no debería publicarse directamente en Internet sin una razón concreta y una capa de seguridad apropiada.

Una configuración doméstica o de laboratorio debería mantener la comunicación dentro de la máquina o de la red privada siempre que sea posible.

Si vas a convertir n8n en un servicio accesible desde Internet, considera como mínimo:

  • HTTPS.
  • Un dominio.
  • Un proxy inverso.
  • Autenticación.
  • Firewall.
  • Actualizaciones periódicas.
  • Copias de seguridad de los datos de n8n.
  • Restricción de los puertos expuestos.

n8n también dispone de mecanismos para auditar determinados riesgos de seguridad de una instancia, incluyendo credenciales, nodos potencialmente peligrosos, configuración y webhooks.


Conclusión

n8n + Ollama + Ubuntu es una combinación especialmente interesante para construir automatizaciones con inteligencia artificial sin depender necesariamente de una API externa para cada operación.

n8n se encarga de coordinar los workflows y conectar servicios, mientras que Ollama proporciona el modelo de IA que procesa los datos localmente. La documentación oficial de n8n contempla tanto el despliegue mediante Docker como la construcción de funcionalidades de IA y agentes.

La clave para que esta arquitectura funcione correctamente es entender la red de Docker: si Ollama está instalado en Ubuntu y n8n está dentro de un contenedor, localhost no representa el sistema anfitrión.

Una vez resuelta esa comunicación, puedes ampliar el workflow progresivamente y conectar correo electrónico, WordPress, bases de datos, APIs, almacenamiento y otros servicios.

El resultado es una infraestructura de automatización capaz de utilizar IA local, Linux y software autoalojado en un mismo entorno.

Deja un comentario