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.