Instalar n8n autoalojado: guía para Ubuntu 24.04 con Docker y HTTPS
Instale n8n autoalojado en un VPS: Docker, Docker Compose y Caddy con HTTPS, variables de entorno, actualizaciones, copias de seguridad y seguridad.

Para alojar n8n usted mismo necesita un VPS con Ubuntu 24.04, un subdominio como n8n.su-empresa.ch, Docker con Docker Compose y un proxy inverso que obtenga el certificado HTTPS. Esta guía sigue la documentación oficial de n8n (a octubre de 2026, n8n 2.x) y usa Caddy como proxy inverso. Con algo de experiencia en Linux, n8n está en línea en una hora aproximadamente; después, las actualizaciones, las copias de seguridad y la seguridad son tarea suya.
¿Qué es n8n?
n8n es una herramienta de automatización de flujos de trabajo (workflows). En un editor gráfico conecta servicios como el correo, Google Sheets, un CRM, la contabilidad, webhooks o modelos de IA para crear procesos: un nuevo formulario de contacto llega solo al CRM, una factura se archiva en PDF, un informe sale por correo cada lunes. Donde no hay un nodo listo, ayudan las peticiones HTTP y su propio código JavaScript o Python.
¿Por qué alojar n8n por cuenta propia?
- Control de los datos: los workflows, las credenciales y los datos de ejecución se quedan en su servidor. Así es más fácil cumplir los requisitos de la Ley de Protección de Datos suiza (nLPD) y de los contratos con clientes.
- Costes: la Community Edition es gratuita. Paga el servidor, no el número de ejecuciones.
- Libertad: nodos de la comunidad propios, cualquier variable de entorno y acceso directo a sistemas internos de la misma red.
- Pero: usted es responsable del funcionamiento, las actualizaciones, las copias de seguridad y la seguridad. La propia n8n recomienda el autoalojamiento expresamente a personas con experiencia en servidores.
| Criterio | n8n Cloud | Autoalojado (VPS) |
|---|---|---|
| Funcionamiento y actualizaciones | n8n | Usted |
| Dónde están los datos | Infraestructura de n8n | Su servidor |
| Modelo de costes | Suscripción según plan, con límites de ejecuciones | Coste del servidor, sin licencia en la Community Edition |
| Límites | Límites del plan para ejecuciones y RAM | Capacidad de su servidor |
| Conocimientos necesarios | ninguno para el funcionamiento | Linux, Docker, DNS, copias de seguridad |
Requisitos
- Un servidor VPS con Ubuntu 24.04 LTS y acceso root o sudo por SSH.
- Memoria: 2 GB de RAM y de 1 a 2 vCPU bastan para empezar. Para n8n Assistant con su sandbox, la documentación indica al menos 4 GB de RAM y 2 vCPU.
- Almacenamiento: 25 GB bastan para empezar. Por defecto, n8n borra los datos de ejecución después de 336 horas (14 días); se puede cambiar con la variable EXECUTIONS_DATA_MAX_AGE.
- Un dominio cuyos registros DNS pueda gestionar, p. ej. para n8n.su-empresa.ch.
- Una dirección de correo para el certificado de Let’s Encrypt.
Paso 1: preparar el servidor y el cortafuegos
Inicie sesión por SSH, actualice el sistema y cree su propio usuario para no trabajar siempre como root:
- sudo apt update && sudo apt upgrade -y
- sudo adduser suusuario
- sudo usermod -aG sudo suusuario
- Añadir una clave SSH para el nuevo usuario y volver a iniciar sesión como suusuario.
- sudo ufw allow OpenSSH
- sudo ufw allow 80
- sudo ufw allow 443
- sudo ufw enable
Paso 2: instalar Docker y Docker Compose
Instale Docker desde el repositorio oficial de Docker, no el antiguo paquete de Ubuntu docker.io. Los comandos coinciden con la guía de docs.docker.com para Ubuntu 24.04 (Noble):
- sudo apt install ca-certificates curl git
- sudo install -m 0755 -d /etc/apt/keyrings
- sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
- sudo chmod a+r /etc/apt/keyrings/docker.asc
- Crear el archivo /etc/apt/sources.list.d/docker.sources (sudo nano /etc/apt/sources.list.d/docker.sources) con estas cinco líneas: Types: deb / URIs: https://download.docker.com/linux/ubuntu / Suites: noble / Components: stable / Signed-By: /etc/apt/keyrings/docker.asc
- sudo apt update
- sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Comprobar: docker --version y docker compose version; después, sudo docker run hello-world
Paso 3: crear el registro DNS
En su proveedor de DNS, cree un registro A para el subdominio, p. ej. n8n.su-empresa.ch, que apunte a la dirección IPv4 de su VPS. Espere a que el registro se resuelva (prueba con ping n8n.su-empresa.ch). Solo entonces Caddy puede obtener el certificado.
Paso 4: instalar n8n con Caddy
n8n ofrece un repositorio de configuración listo con Docker Compose y Caddy. Caddy obtiene y renueva automáticamente el certificado de Let’s Encrypt.
- cd ~ && git clone https://github.com/n8n-io/n8n-docker-caddy.git
- cd n8n-docker-caddy
- sudo docker volume create caddy_data
- sudo docker volume create n8n_data
- nano .env y ajustar los valores (véase abajo).
- nano caddy_config/Caddyfile y sustituir el marcador de la primera línea por n8n.su-empresa.ch.
- nano docker-compose.yml y, en el servicio n8n, cambiar la línea del puerto 5678:5678 por 127.0.0.1:5678:5678.
- sudo docker compose up -d
- Abrir https://n8n.su-empresa.ch en el navegador y crear la cuenta de propietario.
Consejo: El cambio a 127.0.0.1:5678 es importante: Docker publica los puertos saltándose el cortafuegos UFW. Sin este cambio, n8n también sería accesible sin cifrar en http://direccion-IP:5678. Caddy llega a n8n internamente por la red de Docker y no necesita ese puerto.
Las variables de entorno más importantes
- DATA_FOLDER=/home/suusuario/n8n-docker-caddy – ruta de la carpeta clonada.
- DOMAIN_NAME=su-empresa.ch y SUBDOMAIN=n8n – juntas forman la dirección https://n8n.su-empresa.ch.
- GENERIC_TIMEZONE=Europe/Zurich – zona horaria para las programaciones (Schedule Trigger).
- SSL_EMAIL=it@su-empresa.ch – dirección de contacto para el certificado.
- En docker-compose.yml, el repositorio ya define N8N_HOST, N8N_PROTOCOL=https y WEBHOOK_URL, para que las direcciones de los webhooks empiecen correctamente por https.
- Opcional, en environment: TZ=Europe/Zurich, N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true (como en la plantilla Compose oficial) y N8N_DIAGNOSTICS_ENABLED=false si no quiere enviar telemetría a n8n.
Actualizaciones: n8n y el servidor al día
n8n publica una nueva versión menor casi cada semana. La imagen sin número de versión (latest) es la versión estable para producción; la etiqueta next es una versión preliminar inestable. Para actualizar:
- Primero, hacer una copia de seguridad (véase la sección siguiente).
- cd ~/n8n-docker-caddy
- sudo docker compose pull
- sudo docker compose down
- sudo docker compose up -d
- Probar brevemente los workflows. Antes de saltos de versión grandes, leer las notas de la versión y los cambios incompatibles (breaking changes).
Ubuntu también necesita actualizaciones. Instale automáticamente las actualizaciones de seguridad con sudo apt install unattended-upgrades y compruebe con regularidad si hace falta reiniciar.
Copias de seguridad de los datos de n8n
Todo lo importante está en el volumen Docker n8n_data: la base de datos SQLite con workflows y ejecuciones, y la clave de cifrado con la que n8n cifra sus credenciales. Sin esa clave, las credenciales guardadas no sirven. Por eso, haga copias de dos maneras:
- Exportar a archivos: sudo docker compose exec -u node n8n n8n export:workflow --backup --output=/files/backup/workflows/
- sudo docker compose exec -u node n8n n8n export:credentials --backup --output=/files/backup/credentials/
- Las exportaciones quedan en el servidor, en la carpeta local_files/backup. Las credenciales siguen cifradas.
- Volumen completo: sudo docker compose stop, después sudo docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data-$(date +%F).tar.gz -C /data . y, por último, sudo docker compose start.
- Copiar las copias de seguridad a otro sistema con rsync o scp; no dejarlas solo en el VPS.
Consejo: Guarde también la clave de cifrado en su gestor de contraseñas. Está en el archivo config del volumen n8n_data (puede verla con sudo docker compose exec n8n cat /home/node/.n8n/config).
Seguridad: lo que debe proteger usted
- Cortafuegos: abrir solo los puertos 22, 80 y 443; vincular el puerto 5678 solo a 127.0.0.1.
- SSH: acceso solo con clave; en /etc/ssh/sshd_config, poner PasswordAuthentication no.
- No necesita basic auth: desde n8n 1.0, la gestión de usuarios integrada protege la interfaz. Active la autenticación de dos factores en su configuración personal.
- Actualizaciones: actualizar con regularidad la imagen de n8n, la de Caddy y Ubuntu. Las vulnerabilidades de n8n se corrigen en las nuevas versiones.
- Webhooks: proteger los webhooks de producción con comprobación de cabecera o token, ya que son accesibles sin iniciar sesión.
- Nodos de la comunidad: instalarlos solo de fuentes de confianza, porque se ejecutan con los permisos de n8n.
¿Qué servidor VPS elegir para n8n?
Para unas decenas de workflows basta un servidor pequeño. En HostOn elige Ubuntu 24.04 directamente al contratar. VPS CORE 1 (1 vCPU, 2 GB de RAM, 25 GB SSD) por CHF 11.90 al mes basta para empezar; con VPS CORE 2 (2 vCPU, 4 GB de RAM, 50 GB SSD) por CHF 19.90 al mes tiene margen para muchos workflows o para n8n Assistant. Ambos son no administrados y cancelables cada mes: usted se encarga de la instalación, las actualizaciones y las copias de seguridad de n8n, como se describe arriba.
Preguntas frecuentes sobre el tema
Sí. La Community Edition autoalojada de n8n funciona sin clave de licencia, sin coste y con casi todas las funciones. Solo paga el servidor; algunas funciones para equipos grandes forman parte de las ediciones de pago Business y Enterprise.
n8n en sí es ligero: los planes más pequeños de n8n Cloud funcionan con 320 MiB de RAM. Con el sistema operativo, Docker y el proxy inverso, 2 GB de RAM son un buen punto de partida; para muchos workflows en paralelo o para n8n Assistant (la documentación exige al menos 4 GB de RAM y 2 vCPU), prevea más.
No. Desde n8n 1.0, la gestión de usuarios está integrada y la basic auth se eliminó. En el primer acceso crea una cuenta de propietario (owner); además, conviene activar la autenticación de dos factores.
En la carpeta del proyecto, ejecute uno tras otro docker compose pull, docker compose down y docker compose up -d. Haga antes una copia de seguridad y, en saltos de versión grandes, lea las notas de la versión.
Las credenciales guardadas ya no se pueden descifrar y hay que introducirlas de nuevo. Por eso conviene guardar el volumen Docker n8n_data, o la propia clave, en un lugar seguro.
Para empezar basta la base de datos SQLite integrada. Con muchas ejecuciones, varios usuarios o si más adelante quiere usar el modo de colas (queue mode) con varios workers, PostgreSQL es la mejor opción.



