n8n auto‑hosted en Docker: la guía práctica que todo dueño de pyme necesita
Facundo Cercuetti 31 de agosto de 2026 8 min de lectura 0 vistasEl problema que vi en la calle
Artículos relacionados
Hace un par de años, mientras atendía a una peluquería de Salta que usaba Almaiti, me di cuenta de que el mayor dolor de cabeza de la dueña no era la falta de clientes, sino la forma en que gestionaba los mensajes de WhatsApp. Cada vez que el salón estaba lleno, los clientes que enviaban consultas quedaban en “visto” durante varios minutos. El personal terminaba respondiendo a mano, anotando turnos en papel y, al final del día, perdía entre 30 y 40 % de las oportunidades de venta.
Ese mismo patrón lo encontré en farmacias, clínicas y pequeños comercios: WhatsApp es el canal de venta, pero nadie tiene tiempo para contestar. La solución que me salvó fue montar un agente de IA en n8n, pero para que fuera fiable necesitaba que la herramienta estuviera siempre disponible, sin depender de servicios externos que pudieran caerse o cobrar por cada ejecución.
La respuesta fue n8n auto‑hosted en Docker. En este artículo te cuento paso a paso cómo lo hice, los errores que cometí, los números que obtuve y por qué, en mi experiencia, esta combinación es la mejor inversión para cualquier pyme que quiera automatizar sus procesos sin romper el presupuesto.
Nota: Cada paso está pensado para dueños de negocio que no son programadores. Si alguna palabra suena técnica, la explico en términos simples y siempre indico cuánto cuesta y cuánto tiempo te ahorra.
¿Qué es n8n y por qué usar Docker?
n8n en una frase
n8n (pronunciado “n‑eight‑n”) es una plataforma de automatización de flujos de trabajo que permite conectar aplicaciones (WhatsApp, Google Sheets, CRM, etc.) sin escribir código. Es “open source”, lo que significa que podés instalarlo donde quieras y modificarlo a tu medida.
Docker: la caja mágica
Docker es una herramienta que empaqueta una aplicación y todo lo que necesita (librerías, configuraciones) en un contenedor. Ese contenedor se ejecuta igual en cualquier servidor, sea una laptop, una VPS en Argentina o un droplet en DigitalOcean. La ventaja principal para los dueños de negocio es la estabilidad: una vez que el contenedor está levantado, no hay sorpresas de versiones incompatibles.
Comparativa rápida (mi opinión)
| Característica | n8n auto‑hosted (Docker) | Zapier (SaaS) |
|----------------|--------------------------|---------------|
| Costo mensual | $10 USD / €9 (servidor VPS) | $20‑$125 USD según plan |
| Control de datos | 100 % en tu servidor (RGPD) | En la nube de Zapier |
| Flexibilidad de flujos | Ilimitado, puedes crear nodos propios | Limitado a plantillas |
| Escalabilidad | Depende del VPS, pero barato | Escala automáticamente, pero caro |
En mi experiencia, n8n con Docker gana en costo y privacidad, y la curva de aprendizaje no es mayor que la de Zapier. Además, al ser auto‑hosted podés cumplir con la normativa de protección de datos (RGPD en España, LOPDGDD) sin complicaciones.
Paso a paso: montar n8n en Docker desde cero
A continuación, describo la instalación tal como la realicé para Almaiti y para Mi Kiosquito. Cada paso incluye la herramienta, su costo aproximado y el tiempo que te ahorra.
1. Elegir el servidor
| Opción | Precio (USD) | Precio (EUR) | Comentario |
|--------|--------------|--------------|------------|
| VPS básico (1 vCPU, 1 GB RAM, 25 GB SSD) – DigitalOcean | $5/mes | €4,5 | Suficiente para 50‑100 flujos diarios |
| VPS con backup automático – Hetzner | $8/mes | €7,5 | Mejor soporte y discos SSD más rápidos |
| Servidor propio (Raspberry Pi 4) | $0 (solo energía) | €0 | Ideal para pruebas, pero menos fiable 24/7 |
Para una pyme típica, el VPS de $5‑$8 al mes es la opción más segura. Yo uso Hetzner porque su panel permite crear snapshots diarios, lo que evita perder datos si algo falla.
2. Instalar Docker y Docker‑Compose
En la mayoría de los VPS Linux, Docker se instala con dos comandos:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER
Luego, Docker‑Compose (que permite lanzar varios contenedores a la vez) se instala así:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Tiempo invertido: 10 minutos.
Costo: Gratis (Docker es open source).
Tip: Si tu VPS ya tiene Docker preinstalado (por ejemplo, en los “droplets” de DigitalOcean), saltate este paso y ahorrá tiempo.
3. Crear el archivo `docker‑compose.yml`
Este archivo define los contenedores que vamos a levantar: n8n y una base de datos PostgreSQL (requerida para guardar los flujos). Aquí tienes la versión mínima que uso en producción:
version: "3.8"
services:
postgres:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: CambiaEstaClaveSegura
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=CambiaEstaClaveSegura
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=OtraClaveSegura
- N8N_HOST=tu-dominio.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
depends_on:
- postgres
volumes:
- n8n_data:/home/node/.n8n
volumes:
postgres_data:
n8n_data:
Qué hace cada línea:
postgres: crea la base de datos. El volumen
postgres_dataguarda los datos en el disco del VPS, así no se pierden si el contenedor se reinicia.n8n: levanta la aplicación en el puerto 5678. Las variables
N8N_BASIC_AUTH_*habilitan una autenticación básica (usuario/contraseña) para que nadie pueda entrar sin permiso.volumes: persisten la configuración y los flujos de n8n.
Tiempo invertido: 5 minutos (solo copiar y pegar).
Costo: Gratis, salvo el espacio en disco (menos de 1 GB para la mayoría de los casos).
4. Configurar dominio y certificado SSL
Para que tus clientes confíen, el panel de n8n debe estar bajo HTTPS. Si ya tenés un dominio (por ejemplo, whatsapp.tuempresa.com), podés usar Caddy o Traefik como proxy inverso que genera certificados automáticamente con Let’s Encrypt.
Ejemplo con Caddy (añadí al docker‑compose.yml):
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- caddy_data:/data
- caddy_config:/config
- ./Caddyfile:/etc/caddy/Caddyfile
depends_on:
- n8n
volumes:
caddy_data:
caddy_config:
Y el Caddyfile:
whatsapp.tuempresa.com {
reverse_proxy n8n:5678
tls [email protected]
}
Con esto, en menos de 3 minutos tendrás HTTPS activo y renovado automáticamente.
5. Lanzar los contenedores
docker compose up -d
El flag -d ejecuta los contenedores en segundo plano. Podés verificar que todo está corriendo con:
docker compose ps
Si todo está OK, abre tu navegador en https://whatsapp.tuempresa.com y verás la pantalla de login de n8n.
Tiempo total de puesta en marcha: ~20 minutos (incluyendo dominio y SSL).
Primer flujo: responder WhatsApp en 30 segundos
Una vez que n8n está corriendo, el siguiente paso es crear el flujo que realmente genera valor. Aquí describo el flujo que implementé para Almaiti, el CRM de peluquerías, y que luego reutilicé en una farmacia.
1. Conectar la API de WhatsApp Business
Para que n8n pueda leer y enviar mensajes, usamos la WhatsApp Business API de Twilio (costo ~ $0,005 USD por mensaje). En n8n, añadí el nodo Twilio y configuré las credenciales con el Account SID y Auth Token.
Tip: Si tu negocio está en España, puedes usar la API oficial de Meta (costo similar) y la configuración es idéntica.
2. Crear el nodo “Trigger”
El nodo Webhook de n8n actúa como punto de entrada: cada vez que llega un mensaje a tu número de WhatsApp, la API envía una petición POST a la URL que n8n genera (por ejemplo, https://whatsapp.tuempresa.com/webhook).
3. Clasificar la intención con IA
Para entender si el cliente está pidiendo un precio, una cita o una queja, conecté el nodo OpenAI (usé el modelo gpt‑3.5‑turbo). El prompt que utilizo es:
“Clasifica el siguiente mensaje de cliente en una de estas categorías: cita, precio, consulta, queja. Devuelve solo la categoría.”
El resultado del nodo es una cadena que usamos en los siguientes pasos.
4. Responder automáticamente
Según la categoría, n8n envía una respuesta predefinida:
| Categoría | Mensaje automático |
|-----------|--------------------|
| cita | “¡Genial! ¿Qué día y hora te viene bien? Respondé con el formato DD/MM HH:MM.” |
| precio | “Nuestro corte de cabello cuesta $15 USD (≈ 13 EUR). ¿Querés reservar?” |
| consulta | “Te paso el número de nuestro especialista, ¿te parece?” |
| queja | “Lamentamos la molestia. Un agente te contactará en los próximos 15 min.” |
5. Guardar la conversación en el CRM
El último nodo escribe la conversación en Supabase (una base PostgreSQL en la nube). Cada registro incluye: número de teléfono,
🤖 Herramienta recomendada: N8N Desde 0 Diciembre
Curso práctico para crear agentes de IA que venden, atienden clientes y automatizan procesos. De cero a tener un agente funcional en WhatsApp que responde, envía catálogos y cierra ventas 24/7....
Beneficios clave:
- Agente de IA en WhatsApp funcional desde cero
- Respuestas automáticas, catálogos y cierre de ventas 24/7
- Automatización de procesos de atención y venta
- Metodología práctica, paso a paso, sin conocimientos previos
Precio: $150 USD
👉 Ver producto y obtener acceso{.btn-affiliate target="_blank" rel="noopener noreferrer"}
Este enlace es de afiliado. Si lo usás, podés ayudar el blog sin costo extra para vos.