Cómo instalar n8n en VPS con Docker: Guía paso a paso fácil

Las herramientas de automatización no-code y low-code llegaron para salvarnos la vida. De eso no hay duda. El problema arranca cuando tus flujos de trabajo empiezan a crecer y te das cuenta de que depender de plataformas como Zapier o Make te puede fundir el presupuesto mensual.

Ahí es donde entra n8n, el gigante de código abierto que te permite automatizar prácticamente todo de forma visual, pero sin pagar de más.

Ahora bien, cuando la gente busca ahorrar, el primer instinto suele ser intentar meter n8n en un hosting compartido. Al fin y al cabo, es barato. Pero te lo digo de entrada para que no pierdas tiempo: no se la banca.

La solución de verdad es levantar un Servidor Privado Virtual (VPS). Con un VPS tenés control absoluto, recursos que son solo tuyos y una IP limpia para que tus integraciones no fallen nunca.

1. El “sweet spot” de hardware: Requisitos para n8n en producción

No necesitás gastar una fortuna en un servidor gigante para empezar, pero tampoco te quedes corto. Para que tus Webhooks no tengan demoras y la base de datos de ejecuciones no se sature, este es el punto de partida ideal:

  • Sistema Operativo: Ubuntu 22.04 o 24.04 LTS (instalación limpia).
  • Procesador (vCPU): 1 vCPU como mínimo absoluto. Si tus flujos corren en paralelo constantemente, 2 vCPUs es lo ideal.
  • Memoria RAM: 2 GB de RAM si hacés flujos sencillos. Si vas a procesar archivos pesados (como PDFs, imágenes o planillas de Excel gigantes), estirate a 4 GB para dormir tranquilo.
  • Disco: 20 GB de espacio en SSD o NVMe. n8n escribe un registro de cada tarea que hace, así que la velocidad de lectura y escritura del disco es clave.

2. Instalación paso a paso con Docker Compose

Docker Compose es, por lejos, la forma más limpia de manejar n8n. Te permite actualizar la herramienta en dos minutos y mantiene tu servidor VPS ordenado y libre de conflictos de dependencias.

Paso 1: Actualizar el VPS e instalar Docker

Conectate a tu servidor por SSH. Lo primero es asegurarnos de que todo esté al día:

sudo apt update && sudo apt upgrade -y

 

Ahora instalamos Docker junto con Docker Compose de un solo tirón:

sudo apt install docker.io docker-compose -y

 

Habilitamos el servicio para que, si el VPS se reinicia por algún motivo, Docker vuelva a arrancar solo:

sudo systemctl enable --now docker

 

Paso 2: Crear el espacio de trabajo

Vamos a crear una carpeta dedicada para n8n dentro del directorio /opt:

sudo mkdir -p /opt/n8n/data

cd /opt/n8n

 

Paso 3: Configurar las variables de entorno (.env)

A n8n le gusta que le pasemos sus configuraciones a través de un archivo de variables de entorno. Vamos a crearlo:

sudo nano .env

 

Pegá el siguiente bloque de texto. Recordá cambiar n8n.tu-dominio.com por el subdominio real que tengas apuntado a la dirección IP de tu VPS:

# Configuración esencial de n8n

N8N_HOST=n8n.tu-dominio.com

N8N_PORT=5678

N8N_PROTOCOL=https

NODE_ENV=production

WEBHOOK_URL=https://n8n.tu-dominio.com/

# Cuidado del disco (Clave para que no se llene el VPS)

EXECUTIONS_DATA_PRUNE=true

EXECUTIONS_DATA_MAX_AGE=168

 

Un tip de oro: La variable EXECUTIONS_DATA_PRUNE=true le dice a n8n que borre el historial de tareas que tengan más de 168 horas (7 días). Si no activás esto, tu base de datos va a crecer hasta comerse todo el espacio en disco de tu servidor. Si querés profundizar en esto, mirá esta guía para optimizar los recursos de tu VPS.

Paso 4: Armar el archivo docker-compose.yml

Es hora de definir cómo va a correr nuestro contenedor. Creamos el archivo:

sudo nano docker-compose.yml

 

Pegá esto adentro:

version: '3.8'

services:

  n8n:

    image: docker.n8n.io/n8nio/n8n:latest

    container_name: n8n_app

    restart: always

    ports:

      - "127.0.0.1:5678:5678"

    env_file:

      - .env

    volumes:

     - /opt/n8n/data:/home/node/.n8n


(Fijate que mapeamos el puerto como
127.0.0.1:5678:5678. Esto es por seguridad: hace que n8n solo sea accesible internamente. Nadie va a poder entrar desde afuera usando directamente tu dirección IP pública sin pasar por el proxy que configuraremos ahora).

Ya podemos darle vida al contenedor:

sudo docker-compose up -d

 

3. Configuración de Nginx y SSL (Tu conexión segura)

Para que n8n reciba Webhooks de forma segura y puedas entrar al panel sin que el navegador te grite que el sitio es peligroso, necesitamos un certificado SSL gratuito de Let’s Encrypt y un proxy inverso con Nginx.

Paso 1: Instalar las herramientas

sudo apt install nginx certbot python3-certbot-nginx -y

 

Paso 2: Crear el archivo de configuración para Nginx

Creamos un bloque de servidor para decirle a Nginx cómo redirigir el tráfico:

sudo nano /etc/nginx/sites-available/n8n

 

Copia y pega la siguiente configuración (no te olvides de reemplazar n8n.tu-dominio.com con tu subdominio):

server {
    listen 80;
    server_name n8n.tu-dominio.com;

    location / {
        proxy_pass http://127.0.0.1:5678;
        proxy_set_header Connection '';
        proxy_http_version 1.1;
        chunked_transfer_encoding off;
        proxy_buffering off;
        proxy_cache off;
        
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Soporte para WebSockets (Esto es vital para que la interfaz de n8n no se desconecte)
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
}


Activamos la configuración y reiniciamos el servicio:

sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/

sudo nginx -t

sudo systemctl restart nginx

 

Paso 3: Generar el certificado SSL gratis

Le pedimos a Certbot que se encargue de todo el papeleo del SSL por nosotros:

sudo certbot --nginx -d n8n.tu-dominio.com

 

Seguí los pasos en la pantalla (te va a pedir un mail y que aceptes los términos). Certbot va a reescribir tu archivo de Nginx automáticamente para forzar que todo vaya siempre por HTTPS.

4. Primeros pasos y mejores prácticas de seguridad

¡Excelente! Si ahora entrás en https://n8n.tu-dominio.com, vas a ver la pantalla de creación del usuario administrador para configurar tu cuenta.

[Image of Panel de configuración inicial de n8n con SSL activo]

Antes de empezar a tirar cables virtuales como loco, te recomiendo tener en cuenta esto:

  • Activá el doble factor (2FA) al toque: Recordá que tu instancia de n8n va a guardar tokens de acceso a tus herramientas de email, CRMs, Slack, etc. Si alguien entra ahí, tiene las llaves de tu negocio. Cuidalo.
  • Vigilá el consumo de RAM: Si creás flujos gigantes con loops interminables, entrá de vez en cuando a tu panel de control de LatinCloud para chequear que el consumo de recursos de tu VPS esté bajo control.
  • Hacé una prueba rápida de velocidad: Creá un flujo simple con un trigger de Webhook y un nodo que te mande un mensaje a Telegram o Discord. Vas a ver que la respuesta de tu VPS local es prácticamente instantánea. Nada que ver con servidores saturados del otro lado del mapa.

Poné tus automatizaciones en piloto automático hoy

Configurar n8n por tu cuenta te da la libertad que necesitás, pero entendemos perfectamente que tu tiempo vale oro y querés que todo funcione a la primera.

Si querés saltearte la terminal, las IPs y las consolas de comando para empezar a crear flujos estables con soporte en tu idioma:

Probá un VPS LatinCloud con soporte local y la potencia que tus automatizaciones necesitan para escalar sin límites.