Cómo instalar n8n en un VPS paso a paso (Docker, HTTPS y copias)

Guía completa para instalar n8n en tu propio VPS con Docker y HTTPS automático: requisitos, docker-compose, PostgreSQL, actualizaciones, copias de seguridad y los errores más habituales.

Equipo de Rackmarkt4 min de lectura
Cómo instalar n8n en un VPS paso a paso (Docker, HTTPS y copias)
En este artículo
  1. Lo que necesitas
  2. Paso 1: prepara el servidor
  3. Paso 2: instala Docker
  4. Paso 3: el docker-compose
  5. Paso 4: arranca
  6. ¿SQLite o PostgreSQL?
  7. Actualizar n8n
  8. Copias de seguridad
  9. Errores habituales (y cómo arreglarlos)
  10. ¿Qué VPS elegir?

n8n es probablemente la herramienta de automatización que más ha crecido en el último año, y gran parte de culpa la tienen los agentes de IA. Puedes usarlo en su nube, que se paga por ejecuciones, o instalarlo en tu propio servidor y olvidarte de los límites. Esta guía es la segunda opción, hecha como la haríamos nosotros en un VPS limpio.

20 minde principio a fin si el DNS ya apunta al servidor
2 GBde RAM como mínimo recomendado
0 €de licencia con la Community Edition

Lo que necesitas

  • Un VPS con Ubuntu 24.04 o Debian 12, con al menos 2 vCPU y 2 GB de RAM. Con agentes de IA o muchos flujos, mejor 4 GB.
  • Acceso root por SSH.
  • Un subdominio (por ejemplo n8n.tuempresa.es) con un registro A apuntando a la IP del VPS. Si no sabes cómo, te lo contamos en qué son los DNS.
Atajo

Si no quieres hacerlo tú, en nuestro VPS para n8n te lo entregamos instalado. Tienes acceso root igualmente, así que puedes seguir esta guía para entender qué hay montado.

Paso 1: prepara el servidor

apt update && apt upgrade -y
apt install -y ufw
ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable

Si es un VPS recién estrenado, dedica cinco minutos a lo básico de seguridad (claves SSH, actualizaciones automáticas). Lo tienes en lo primero que hay que hacer al estrenar un VPS.

Paso 2: instala Docker

curl -fsSL https://get.docker.com | sh
docker compose version

Si es la primera vez que usas Docker, aquí tienes una explicación sin tecnicismos de qué es Docker y para qué sirve.

Paso 3: el docker-compose

Vamos a levantar n8n con Caddy delante. Caddy hace de proxy y pide y renueva el certificado SSL él solo, sin Certbot ni cron.

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

Fichero docker-compose.yml (cambia el dominio):

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    environment:
      - N8N_HOST=n8n.tuempresa.es
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.tuempresa.es/
      - GENERIC_TIMEZONE=Europe/Madrid
      - TZ=Europe/Madrid
      - NODE_ENV=production
    volumes:
      - n8n_data:/home/node/.n8n

  caddy:
    image: caddy:2
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config

volumes:
  n8n_data:
  caddy_data:
  caddy_config:

Y el Caddyfile:

n8n.tuempresa.es {
    reverse_proxy n8n:5678
}

Paso 4: arranca

docker compose up -d
docker compose logs -f caddy

Cuando veas en los logs que el certificado se ha obtenido, entra en https://n8n.tuempresa.es y crea la cuenta de propietario. Usa una contraseña larga y activa la verificación en dos pasos desde tu perfil: n8n va a estar en internet y va a guardar credenciales de tus otras herramientas.

¿SQLite o PostgreSQL?

Por defecto n8n guarda todo en SQLite, dentro del volumen. Para una empresa pequeña con unos cuantos flujos va perfecto. Pásate a PostgreSQL si vas a tener muchas ejecuciones al día, quieres guardar el historial de ejecuciones mucho tiempo o piensas escalar con varios workers. Basta con añadir un servicio postgres al compose y las variables DB_TYPE=postgresdb, DB_POSTGRESDB_HOST, DB_POSTGRESDB_USER y DB_POSTGRESDB_PASSWORD.

Consejo

Configura la limpieza del historial de ejecuciones (EXECUTIONS_DATA_PRUNE=true y EXECUTIONS_DATA_MAX_AGE=336, en horas). Si no, la base de datos crece sin parar y un día te quedas sin disco.

Actualizar n8n

cd /opt/n8n
docker compose pull
docker compose up -d
docker image prune -f

n8n saca versiones casi cada semana. No hace falta estar siempre en la última, pero no te quedes meses atrás: lee las notas de versión antes de un salto grande y haz una copia antes.

Copias de seguridad

Flujos, credenciales y la clave de cifrado viven en el volumen n8n_data:

docker run --rm -v n8n_n8n_data:/data -v /root/backups:/backup alpine \
  tar czf /backup/n8n-$(date +%F).tar.gz -C /data .

Programa ese comando en el cron y saca las copias del servidor. Y apunta aparte la clave de cifrado (está en el fichero config del volumen): sin ella, una copia restaurada en otro servidor no puede descifrar tus credenciales.

Errores habituales (y cómo arreglarlos)

Error

EACCES: permission denied, open '/home/node/.n8n/config'

Usaste una carpeta del host en vez de un volumen. Dale propiedad al usuario de n8n: chown -R 1000:1000 ./n8n_data.

Error

Los webhooks devuelven una URL con localhost

Falta WEBHOOK_URL o no tiene la barra final. Corrígelo y recrea el contenedor.

Error

Caddy no consigue el certificado

El DNS aún no apunta al VPS o los puertos 80 y 443 están cerrados. Comprueba con dig n8n.tuempresa.es.

Error

«Connection lost» en el editor

El proxy no deja pasar websockets. Con Caddy no pasa; con Nginx, añade las cabeceras Upgrade y Connection.

¿Qué VPS elegir?

UsoRecursos
Empezar, flujos sencillos2 vCPU · 2 GB RAM
Muchos flujos, webhooks frecuentes, agentes de IA4 vCPU · 4 GB RAM
n8n con PostgreSQL y otras aplicaciones4 vCPU · 8 GB RAM

No necesitas GPU: los agentes de IA de n8n usan los modelos de OpenAI, Anthropic o Google a través de su API. Si te interesa ese tema, tienes nuestra guía para crear un agente de IA con n8n.

Equipo de Rackmarkt

Escrito por el equipo técnico que administra nuestra plataforma de hosting, VPS y servidores. Conoce a nuestro soporte.

Preguntas frecuentes

Sigue leyendo

Atención al cliente

Soporte premiado

Estamos para ayudarte

Nuestro objetivo es brindarte la mejor experiencia de atención al cliente, por eso el equipo de Rackmarkt está listo para ayudarte en cualquier momento. No dudes en ponerte en contacto con nosotros; estaremos encantados de resolver tus consultas y ofrecerte un servicio de calidad.