Cómo instalar n8n con Docker: Guía completa de configuración en VPS
TUTORIAL 15 min read fordnox

Cómo instalar n8n con Docker: Guía completa de configuración en VPS

Guía paso a paso para alojar n8n en un VPS con Docker. Incluye configuración de SSL, base de datos PostgreSQL, copias de seguridad automáticas y configuración lista para producción.


Cómo instalar n8n con Docker: Guía completa de configuración en VPS

Guía paso a paso para autoalojar n8n en un VPS con Docker. Para recomendaciones de VPS, consulta nuestra guía de mejores VPS para n8n. Esta configuración lista para producción incluye certificados SSL, base de datos PostgreSQL, proxy inverso Nginx y copias de seguridad automáticas.

Lo que configurarás

Tiempo requerido: 15-20 minutos

Requisitos previos

Paso 1: Configuración inicial del servidor

Conéctate por SSH a tu VPS:

ssh root@your-server-ip

Actualiza el sistema:

apt update && apt upgrade -y

Paso 2: Instalar Docker

# Install Docker
curl -fsSL https://get.docker.com | sh

# Install Docker Compose
apt install docker-compose-plugin -y

# Verify installation
docker --version
docker compose version

Paso 3: Crear la estructura del proyecto

mkdir -p /opt/n8n
cd /opt/n8n

Crea el archivo Docker Compose:

nano docker-compose.yml

Pega lo siguiente:

version: '3.8'

services:
  n8n:
    image: n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.yourdomain.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://n8n.yourdomain.com/
      - GENERIC_TIMEZONE=Europe/London
      # Database
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=your-secure-password
      # Encryption
      - N8N_ENCRYPTION_KEY=your-32-char-encryption-key
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres
    networks:
      - n8n-network

  postgres:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=your-secure-password
      - POSTGRES_DB=n8n
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - n8n-network
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U n8n"]
      interval: 5s
      timeout: 5s
      retries: 5

volumes:
  n8n_data:
  postgres_data:

networks:
  n8n-network:

Importante: Reemplaza:

Genera una clave de cifrado:

openssl rand -hex 16

Paso 4: Instalar Nginx

apt install nginx -y

Crea la configuración de Nginx:

nano /etc/nginx/sites-available/n8n

Pega lo siguiente:

server {
    listen 80;
    server_name n8n.yourdomain.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
        proxy_read_timeout 86400;
        proxy_buffering off;
    }
}

Habilita el sitio:

ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

Paso 5: Configurar SSL con Let’s Encrypt

# Install Certbot
apt install certbot python3-certbot-nginx -y

# Get SSL certificate
certbot --nginx -d n8n.yourdomain.com

Sigue las instrucciones. Certbot configurará automáticamente Nginx para HTTPS.

Paso 6: Iniciar n8n

cd /opt/n8n
docker compose up -d

Verifica que esté en funcionamiento:

docker compose ps
docker compose logs -f n8n

Accede a n8n en: https://n8n.yourdomain.com

Paso 7: Configurar el firewall

Sigue nuestra guía de seguridad para VPS para una lista completa de protección. Como mínimo:

ufw allow ssh
ufw allow 'Nginx Full'
ufw enable

Paso 8: Configurar copias de seguridad automáticas

Crea el script de respaldo:

nano /opt/n8n/backup.sh

Pega lo siguiente:

#!/bin/bash
BACKUP_DIR="/opt/n8n/backups"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# Backup PostgreSQL
docker compose exec -T postgres pg_dump -U n8n n8n > $BACKUP_DIR/db_$DATE.sql

# Backup n8n data
docker compose exec -T n8n n8n export:workflow --all --output=/home/node/.n8n/backups/workflows_$DATE.json 2>/dev/null || true

# Keep only last 7 days
find $BACKUP_DIR -type f -mtime +7 -delete

echo "Backup completed: $DATE"

Hazlo ejecutable y prográmalo:

chmod +x /opt/n8n/backup.sh

# Add to crontab (daily at 3 AM)
crontab -e

Añade:

0 3 * * * /opt/n8n/backup.sh >> /var/log/n8n-backup.log 2>&1

Paso 9: Habilitar el inicio automático al arrancar

Los contenedores Docker con restart: always se iniciarán automáticamente. Verifica que Docker esté habilitado:

systemctl enable docker

Actualizar n8n

Para actualizar a la última versión:

cd /opt/n8n
docker compose pull
docker compose up -d

Solución de problemas

n8n no se inicia

docker compose logs n8n

Busca errores de conexión a la base de datos o variables de entorno faltantes.

Problemas con el certificado SSL

certbot renew --dry-run

Error de conexión a la base de datos

Asegúrate de que PostgreSQL esté funcionando correctamente:

docker compose exec postgres pg_isready -U n8n

Sin memoria suficiente

Actualiza tu VPS u optimiza n8n:

# In docker-compose.yml, add under n8n service:
deploy:
  resources:
    limits:
      memory: 2G

Optimización del rendimiento

1. Limpieza de ejecuciones

Elimina automáticamente las ejecuciones antiguas para ahorrar espacio. En la configuración de n8n:

2. Aumentar los workers

Para cargas de trabajo pesadas:

environment:
  - EXECUTIONS_MODE=queue
  - EXECUTIONS_PROCESS=own

3. Usar Redis para el modo de cola

Añade el servicio Redis para flujos de trabajo de alto volumen:

redis:
  image: redis:alpine
  restart: always
  networks:
    - n8n-network

Especificaciones de VPS recomendadas

Carga de trabajoRAMCPUVPS
Ligera2GB1 vCPUHostinger KVM 1
Media4GB2 vCPUHostinger KVM 2
Pesada8GB4 vCPUContabo VPS S

Conclusión

Ahora tienes una instalación de n8n lista para producción con:

✅ Base de datos PostgreSQL para mayor fiabilidad ✅ Proxy inverso Nginx para mejor rendimiento ✅ Cifrado SSL para seguridad ✅ Copias de seguridad automáticas para mayor tranquilidad ✅ Reinicio automático para disponibilidad 24/7

¡Tu n8n autoalojado está listo para automatizaciones ilimitadas! ¿Te preguntas cómo se compara n8n con las alternativas de pago? Consulta nuestra comparación n8n vs Zapier.

~/n8n-docker-setup/get-started

Ready to get started?

Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.

Get Hostinger VPS — $4.99/mo

// up to 75% off + free domain included

// related topics

n8n configuración docker autoalojar n8n n8n instalación vps n8n configuración ssl n8n postgresql

// related guides

Andrius Putna

Andrius Putna

I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.

// last updated: February 3, 2026. Disclosure: This article may contain affiliate links.