VPS

Cómo instalar n8n en un VPS paso a paso

n8n conecta APIs, correo, hojas de cálculo, bases de datos y modelos de IA con flujos visuales. Puedes pagar su nube, pero autoalojarlo en un VPS tiene dos ventajas claras: tus datos y credenciales se quedan en tu servidor, y el precio no depende del número de ejecuciones.

Aquí lo instalamos con Docker y lo publicamos con HTTPS, listo para producción.

Lo que necesitas

  • Un VPS con Ubuntu 24.04 (o Debian). Para empezar sobra con 1-2 vCores y 2 GB de RAM; podrás ampliar después sin reinstalar.
  • Un subdominio apuntando a la IP del VPS (por ejemplo n8n.tudominio.com, registro DNS tipo A).
  • Acceso SSH como root.

Paso 1: instala Docker

apt update && apt install -y docker.io
systemctl enable --now docker

Paso 2: arranca n8n

docker volume create n8n_data
docker run -d --name n8n --restart unless-stopped \
  -p 127.0.0.1:5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_HOST=n8n.tudominio.com \
  -e WEBHOOK_URL=https://n8n.tudominio.com/ \
  -e GENERIC_TIMEZONE=Europe/Madrid \
  docker.n8n.io/n8nio/n8n

Fíjate en el detalle de 127.0.0.1:5678: n8n solo escucha en la propia máquina. Nunca lo expongas directamente a internet sin HTTPS delante.

Paso 3: HTTPS con Caddy

Caddy es el proxy inverso más simple: obtiene y renueva el certificado SSL solo.

apt install -y caddy

Edita /etc/caddy/Caddyfile y déjalo así:

n8n.tudominio.com {
    reverse_proxy 127.0.0.1:5678
}

Recarga y listo:

systemctl reload caddy

Recuerda tener abiertos los puertos 80 y 443 en el firewall del servidor (en un VPS de GINERNET, desde la sección Firewall del Manager).

Paso 4: primer acceso

Abre https://n8n.tudominio.com, crea la cuenta de administrador y empieza a montar flujos. Los webhooks (la razón de que n8n necesite un servidor siempre encendido con IP pública) ya funcionan: cualquier servicio externo puede llamar a https://n8n.tudominio.com/webhook/... a cualquier hora.

Actualizar n8n

n8n publica versiones constantemente. Para actualizar sin perder nada (los datos viven en el volumen n8n_data):

docker pull docker.n8n.io/n8nio/n8n
docker stop n8n && docker rm n8n

…y vuelve a lanzar el docker run del paso 2.

Copias de seguridad

Todo el estado (flujos, credenciales cifradas, histórico) está en el volumen de Docker. Un backup sencillo:

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

Prográmalo en un cron semanal y guarda una copia fuera del servidor.

Si tus flujos crecen (muchos nodos de IA, scraping, colas…), amplía la RAM del VPS en caliente desde el Manager: Con 4 GB de RAM n8n va más holgado.