Skip to main content

n8n self-hosted conforme a la DSGVO 2026: guía paso a paso con Hetzner

Opera n8n conforme a la DSGVO en servidores europeos: configura un Hetzner Cloud CX22 en 30 minutos, con Docker Compose, TLS automático mediante Caddy, backups diarios en una Hetzner Storage Box y monitorización continua, desde 5 EUR al mes y sin dependencia de la nube estadounidense.

El self-hosting de n8n significa operar la plataforma open source de automatización de flujos de trabajo n8n en tu propio servidor: bajo tu control total, en un centro de datos de la UE y sin que los datos de tus flujos ni las credenciales abandonen jamás el servidor de un tercero.

¿Por qué alojar n8n por tu cuenta? DSGVO, costes y control de los datos

Para las empresas que canalizan datos personales a través de automatizaciones (contactos de clientes, facturas, datos de RR. HH.), la cuestión del alojamiento no es meramente técnica: es una cuestión de cumplimiento. n8n Cloud y plataformas SaaS competidoras como Zapier o Make.com almacenan los datos de ejecución de los flujos en servidores fuera de la UE, lo que, con datos sensibles, exige un contrato de encargo de tratamiento conforme al art. 28 de la DSGVO y, en algunos casos, puede resultar problemático.

El self-hosting resuelve este problema por completo: todos los datos de los flujos, las credenciales y los registros de ejecución permanecen en tu servidor, en un centro de datos europeo de Hetzner Cloud, certificado según la ISO 27001 y conforme a la DSGVO. El Compendio BSI IT-Grundschutz, módulo OPS.1.1.7 (automatización de procesos operativos) recomienda expresamente operar los procesos automatizados que manejan datos personales o relevantes para la seguridad bajo control organizativo pleno e introducir conceptos de autorización separados.

La segunda ventaja es de naturaleza económica: la n8n Community Edition no tiene costes de licencia (licencia MIT). Solo pagas el servidor de Hetzner, desde 5 EUR al mes por un Hetzner CX22. Con él puedes operar hasta 100 flujos activos con cientos de ejecuciones diarias. En comparación, Zapier cuesta entre 99 y 299 USD al mes para un volumen de ejecución equivalente.

El control total de los datos es el tercer aspecto: tú decides cuánto tiempo se conservan los datos de ejecución, qué personas tienen acceso a las credenciales y cómo se configuran los backups y los planes de contingencia. Según el art. 32 de la DSGVO (seguridad del tratamiento), estas medidas técnicas y organizativas son en cualquier caso obligatorias, y el self-hosting facilita su aplicación y su demostrabilidad.

5 EUR/mes servidor Hetzner

Coste de infraestructura para un setup de n8n listo para producción (Hetzner CX22)

Quelle: Lista de precios de Hetzner Cloud 2025, 2025
30 min de instalación

De un servidor vacío a una instancia de n8n en funcionamiento con TLS

Quelle: Valor empírico de Wito AI (n=12 proyectos self-hosted), 2025
92 % de cumplimiento de la DSGVO

con self-hosting, frente al 61 % de un uso de la nube sin regular

Quelle: Guía Bitkom sobre uso de la nube conforme a la DSGVO 2024, 2024
100 % de soberanía de los datos

con self-hosting: sin tratamiento de datos por terceros (art. 28 de la DSGVO)

Quelle: Art. 28 de la DSGVO — Encargado del tratamiento, 2024

Requisitos de hardware: ¿qué servidor de Hetzner es suficiente?

Para la mayoría de los entornos de pyme con hasta 100 flujos activos, un Hetzner CX22 (2 vCPU, 4 GB de RAM, 40 GB de SSD) es totalmente suficiente. Este tipo de servidor cuesta 5 EUR al mes y gestiona sin problemas varios miles de ejecuciones de flujos al día, sin degradación del rendimiento.

Los requisitos mínimos para n8n con backend de PostgreSQL y cola de Redis en modo queue son: 2 vCPU, 4 GB de RAM y 40 GB de SSD. Con entre 50 y 100 ejecuciones simultáneas de flujos conviene ampliar a un Hetzner CX32 (4 vCPU, 8 GB de RAM, 80 GB de SSD, aprox. 10 EUR/mes). Una instancia de Redis para el modo queue ocupa entre 50 y 100 MB de RAM, y PostgreSQL, normalmente, entre 300 y 500 MB.

Recomendación sobre la ubicación del servidor: nbg1 (Núremberg) o fsn1 (Falkenstein), ambos centros de datos situados en Alemania, certificados según la ISO 27001 y sujetos exclusivamente al derecho alemán y de la UE. Al aprovisionar, evita las ubicaciones estadounidenses como los centros de datos de Hetzner en Ashburn (us-east), aunque parezcan más económicos: están sujetos al derecho estadounidense y a la Cloud Act.

  • Hetzner CX22 (2 vCPU / 4 GB / 40 GB): 5 EUR/mes — hasta 100 flujos, ~5.000 ejecuciones/día
  • Hetzner CX32 (4 vCPU / 8 GB / 80 GB): 10 EUR/mes — hasta 300 flujos, ~50.000 ejecuciones/día
  • Hetzner CCX23 (4 vCPU dedicadas / 16 GB): 22 EUR/mes — para setups críticos de producción y alto volumen

Instalación de n8n self-hosted en 6 pasos: del aprovisionamiento a la monitorización

Schritt 1

Paso 1: aprovisionar el servidor de Hetzner

Abre la consola de Hetzner Cloud (console.hetzner.cloud) y crea un nuevo proyecto. Elige el tipo de servidor CX22, la imagen "Ubuntu 24.04 LTS" y la ubicación "nbg1" (Núremberg, Alemania). Añade tu clave SSH. Crea reglas de firewall: puerto 22 (SSH, solo desde tu propia IP), puertos 80 y 443 (HTTP/HTTPS, públicos). La IP flotante es opcional, para una dirección fija. Duración: 5 minutos.

Schritt 2

Paso 2: instalar Docker y Docker Compose

Conéctate al servidor por SSH. Instala Docker Engine mediante el script de instalación oficial de pkg.docker.com (curl -fsSL https://get.docker.com | sh). El plugin de Docker Compose viene incluido desde Docker 23 (docker compose en lugar de docker-compose). Añade tu usuario al grupo docker (usermod -aG docker $USER). Aplica las actualizaciones del sistema (apt update && apt upgrade). Activa el servicio de Docker (systemctl enable docker). Duración: 10 minutos.

Schritt 3

Paso 3: arrancar los contenedores de n8n y PostgreSQL

Utiliza como plantilla el docker-compose.yml de la documentación oficial de n8n (docs.n8n.io/hosting/installation/server-setups/docker-compose/). Servicios: n8n (última versión), postgres:16-alpine, redis:7-alpine. Externaliza las variables de entorno a un archivo .env: N8N_ENCRYPTION_KEY (cadena aleatoria de 32 bytes), DB_TYPE=postgresdb, DB_POSTGRESDB_*, QUEUE_BULL_REDIS_HOST. El puerto de n8n queda interno en el 5678, sin mapeo directo de puertos al exterior (de ello se encarga el proxy inverso). Duración: 10 minutos.

Schritt 4

Paso 4: TLS mediante Caddy o Traefik

Caddy es la opción más sencilla para TLS automático mediante Let's Encrypt: basta un Caddyfile de dos líneas (dominio + reverse_proxy n8n:5678). Como alternativa, Traefik como otro servicio de Docker con etiquetas en el contenedor de n8n. Configura el registro DNS del dominio de n8n apuntando a la IP del servidor de Hetzner. Caddy o Traefik solicitan automáticamente un certificado de Let's Encrypt y lo renuevan cada 60 días. Importante: sin TLS no deben almacenarse credenciales reales en n8n. Duración: 10 minutos.

Schritt 5

Paso 5: configurar los backups (Hetzner Storage Box)

Configura una Hetzner Storage Box BX11 (1 TB, 3,81 EUR/mes) como destino de los backups. Cronjob diario en el servidor: volcado de PostgreSQL mediante pg_dump más compresión, y subida vía rclone o rsync a la Hetzner Storage Box por SFTP/Samba. Asegura además la carpeta /home/node/.n8n (puede contener datos locales). Política de retención: 7 días a diario y 4 semanas de forma semanal. El BSI IT-Grundschutz OPS.1.1.7 recomienda un RPO máximo de 24 horas para automatizaciones críticas para el negocio. Duración: 15 minutos.

Schritt 6

Paso 6: monitorización y actualizaciones automáticas

Uptime Kuma (gratuito, self-hosted, también mediante Docker) para la monitorización de disponibilidad: comprobación HTTP de la URL de n8n cada 60 segundos y alerta por correo electrónico o Telegram en caso de caída. Activa el error workflow propio de n8n: ante cada flujo de producción fallido, un mensaje de Slack o un correo a los responsables. Actualizaciones: un contenedor Watchtower para actualizar de forma automática las imágenes de Docker, o un script de actualización manual (docker compose pull && docker compose up -d) mensual, dentro de la ventana de mantenimiento. Duración: 15 minutos.

Configuración de Docker Compose: el setup completo

La documentación oficial de n8n en docs.n8n.io/hosting/installation/server-setups/docker-compose/ proporciona una plantilla completa de `docker-compose.yml`. El setup listo para producción para pymes incluye cuatro servicios: n8n (motor de flujos), postgres (almacenamiento persistente de datos), redis (backend de cola para ejecuciones en paralelo) y caddy (proxy inverso con TLS automático).

El elemento más crítico de la configuración es la N8N_ENCRYPTION_KEY: esta clave de 32 bytes cifra todas las credenciales almacenadas en n8n (claves de API, tokens de OAuth, contraseñas) dentro de la base de datos de PostgreSQL. Debe generarse antes del primer arranque (`openssl rand -hex 32`), guardarse de forma segura en el archivo `.env` y respaldarse por separado, idealmente en un gestor de contraseñas como Bitwarden o 1Password. Sin esta clave, las credenciales almacenadas quedan inservibles tras un cambio de servidor.

Para la configuración de protección de datos conforme a la DSGVO, dos variables de entorno de n8n son especialmente relevantes: `N8N_EXECUTIONS_DATA_PRUNE=true` limita el almacenamiento de los datos de ejecución de los flujos, y `N8N_EXECUTIONS_DATA_MAX_AGE=720` fija el tiempo máximo de conservación en 30 días. Para flujos con datos especialmente sensibles (datos de salud, datos financieros) se recomienda además `N8N_EXECUTIONS_DATA_SAVE_ON_SUCCESS=none`, para no persistir las ejecuciones correctas.

Ejemplo de configuración del archivo `.env` (campos obligatorios):

N8N_ENCRYPTION_KEY=<cadena-hex-de-32-bytes> | DB_TYPE=postgresdb | DB_POSTGRESDB_HOST=postgres | DB_POSTGRESDB_DATABASE=n8n | DB_POSTGRESDB_USER=n8n | DB_POSTGRESDB_PASSWORD=<contraseña-segura> | QUEUE_BULL_REDIS_HOST=redis | N8N_HOST=n8n.tu-dominio.es | N8N_PROTOCOL=https | N8N_EXECUTIONS_DATA_PRUNE=true | N8N_EXECUTIONS_DATA_MAX_AGE=720

Todas las imágenes de Docker deberían fijarse a etiquetas de versión explícitas (p. ej., `n8nio/n8n:1.85.0` en lugar de `n8nio/n8n:latest`) para evitar breaking changes inesperados por actualizaciones automáticas. Una ventana de actualización mensual y manual, con verificación previa de los backups, es la estrategia de mantenimiento recomendada.

Los flujos de trabajo automatizados requieren conceptos de autorización separados y auditorías periódicas. En los sistemas que tratan de forma automatizada datos personales o confidenciales, el registro, el control de acceso y un plan de contingencia documentado son componentes obligatorios del concepto de seguridad.
Bundesamt für Sicherheit in der Informationstechnik (BSI), IT-Grundschutz Kompendium — Baustein OPS.1.1.7: Automatisierung von Betriebsprozessen, BSI — Bundesamt für Sicherheit in der Informationstechnik, 2024

TLS, backups y monitorización: las tres partes obligatorias

TLS automático mediante Caddy o Traefik

Caddy es la opción más sencilla para quien se inicia en el self-hosting: un `Caddyfile` de dos líneas (`n8n.tu-dominio.es { reverse_proxy n8n:5678 }`) basta para un TLS automático completo mediante Let's Encrypt. Caddy renueva los certificados de forma automática antes de que caduquen. Traefik es la alternativa para setups más complejos con varios servicios en el mismo servidor, configurable exclusivamente mediante etiquetas de Docker en el contenedor de n8n. Ambas soluciones son gratuitas, están muy extendidas y están documentadas en la comunidad de n8n.

Backups diarios de PostgreSQL en la Hetzner Storage Box

Los datos más críticos de un setup de n8n son la base de datos de PostgreSQL (definiciones de los flujos, historial de ejecuciones, credenciales) y el archivo `.env` con la clave de cifrado. Un cronjob diario (`pg_dump | gzip | rclone copy`) respalda la base de datos en la Hetzner Storage Box BX11 (1 TB, 3,81 EUR/mes). Retención: 7 backups diarios y 4 semanales. Nunca dejes la clave de cifrado únicamente en el servidor: guárdala siempre por separado en un gestor de contraseñas.

Monitorización mediante Uptime Kuma

Uptime Kuma es un servicio de monitorización gratuito y self-hosted que se ejecuta como contenedor de Docker en el mismo servidor de Hetzner. Comprobación HTTP de la URL de n8n cada 60 segundos y alerta por correo electrónico, Telegram o Slack en caso de caída. Combinado con el error workflow propio de n8n (mensaje de Slack ante flujos de producción fallidos), se obtiene un setup de monitorización completo sin costes adicionales de SaaS.

Lista de verificación de cumplimiento antes del go-live

Antes de que la primera instancia de n8n con datos personales pase a producción, deberían cumplirse todos los puntos de esta lista de verificación. Se orienta a los requisitos del art. 32 de la DSGVO (medidas técnicas y organizativas) y a las recomendaciones del BSI IT-Grundschutz OPS.1.1.7.

  • Contrato de encargo de tratamiento firmado con Hetzner — conforme al art. 28 de la DSGVO (gratuito, disponible en el área de cliente de Hetzner)
  • Clave de cifrado de n8n guardada de forma segura — en un gestor de contraseñas (Bitwarden, 1Password), no solo en el archivo .env del servidor
  • TLS activo y verificado — el test de SSL Labs (ssllabs.com/ssltest) da al menos una calificación A
  • Restauración de backup probada — al menos una restauración manual ejecutada y verificada la integridad del backup
  • Historial de ejecuciones limitado — N8N_EXECUTIONS_DATA_PRUNE=true, tiempo de conservación fijado en 30 días
  • Formación del personal documentada — quién puede acceder a n8n y quién no; gestión de credenciales regulada
  • Plan de contingencia disponible — por escrito: ¿qué ocurre ante una caída del servidor? ¿Cuánto dura la recuperación? ¿Quién es responsable?
  • Evaluación de impacto relativa a la protección de datos revisada — en flujos con datos especialmente sensibles (salud, finanzas, datos de empleados) puede ser necesaria una EIPD conforme al art. 35 de la DSGVO

Häufige Fragen zum n8n Self-Hosted DSGVO-Setup

n8n Cloud es una opción válida si no quieres operar tu propia infraestructura de TI. Desde 2024, n8n Cloud cuenta con centros de datos en la UE en Fráncfort y ofrece un acuerdo de tratamiento de datos (DPA) conforme al art. 28 de la DSGVO, lo que hace que la variante en la nube sea suficiente para muchas pymes. No obstante, el self-hosting es preferible cuando: (1) tus requisitos de la DSGVO son especialmente estrictos (p. ej., sanidad o servicios financieros), (2) no quieres costes recurrentes de nube (n8n Cloud desde 20 EUR/mes), o (3) necesitas el máximo control sobre los plazos de conservación de los datos y los derechos de acceso.
Para hasta 100 flujos activos y ~5.000 ejecuciones diarias, un Hetzner CX22 (2 vCPU, 4 GB de RAM, 40 GB de SSD, 5 EUR/mes) es totalmente suficiente. Con entre 50 y 300 flujos o un volumen de ejecución mayor, recomendamos el Hetzner CX32 (4 vCPU, 8 GB de RAM, aprox. 10 EUR/mes). Para setups críticos de producción con requisitos de SLA estrictos, son adecuados los tipos de servidor dedicados como el CCX23. La ubicación del servidor debería fijarse siempre en Alemania (nbg1 o fsn1) para garantizar la conformidad con la DSGVO.
n8n publica versiones nuevas cada semana. Para las instalaciones en producción recomendamos una ventana de actualización mensual: docker compose pull && docker compose up -d tras una comprobación previa de los backups. Los parches de seguridad deberían aplicarse con prontitud (en un plazo de 24 a 72 horas). Consejo: suscríbete al boletín de la comunidad de n8n o sigue el repositorio de GitHub (github.com/n8n-io/n8n/releases) para estar al tanto de las versiones importantes.
Costes de infraestructura: Hetzner CX22 (5 EUR/mes) + Hetzner Storage Box BX11 para los backups (3,81 EUR/mes) + dominio (~1 EUR/mes) = aprox. 10 EUR/mes. A esto se suma el esfuerzo único de instalación: en torno a 4-8 horas si lo haces tú, o desde unos 1.500 EUR netos si encargas a un proveedor un setup completo y listo para producción. En comparación: n8n Cloud para 100 flujos desde 50 EUR/mes; Zapier, para un volumen de ejecución equivalente, desde 99 USD/mes.
Medidas inmediatas ante una brecha de datos: (1) detén de inmediato la instancia de n8n (docker compose stop n8n) para impedir más tratamiento de datos. (2) Evalúa el alcance de la brecha: ¿qué flujos, qué datos y qué periodo? (3) Comprueba la obligación de notificación: las brechas con riesgo para los afectados deben comunicarse, conforme al art. 33 de la DSGVO, en un plazo de 72 horas a la autoridad de control competente (en España, la Agencia Española de Protección de Datos, AEPD). (4) Informa a los afectados si existe un riesgo elevado (art. 34 de la DSGVO). ¿Tienes un plan de contingencia por escrito? Deberías haberlo elaborado antes del go-live.
Un delegado de protección de datos es obligatorio conforme al art. 37 de la DSGVO cuando la actividad principal de tu empresa consiste en un tratamiento a gran escala de datos personales (p. ej., tratamiento profesional de datos o datos de salud), o cuando se realiza un tratamiento a gran escala de categorías especiales de datos. La normativa española (LOPDGDD) detalla además supuestos concretos de designación obligatoria. Para la mayoría de las pymes que usan n8n en procesos internos no es imprescindible un DPD, aunque sí recomendable. Incluso sin DPD obligatorio, recomendamos realizar antes del go-live una evaluación de impacto relativa a la protección de datos (EIPD) para los flujos con datos sensibles.
La instalación técnica (servidor, Docker, n8n) la resuelve en 30-60 minutos una persona con conocimientos básicos de Linux y esta guía. Son más exigentes: la configuración conforme a la DSGVO (contrato de encargo de tratamiento, plazos de conservación, concepto de autorización), la configuración de la monitorización y el mantenimiento continuo (actualizaciones, verificación de los backups). Wito AI ofrece un setup gestionado de n8n completo: aprovisionamiento del servidor, configuración conforme a la DSGVO, monitorización, contrato de encargo de tratamiento y mantenimiento continuo, desde 1.500 EUR netos en un único pago, opcionalmente con un servicio gestionado mensual desde 150 EUR.
La clave de cifrado de n8n cifra todas las credenciales almacenadas en n8n (claves de API, contraseñas, tokens de OAuth) dentro de la base de datos de PostgreSQL. Al cambiar de servidor, esta clave debe transferirse obligatoriamente al nuevo servidor; de lo contrario, todas las credenciales almacenadas quedan ilegibles de forma permanente y hay que reconfigurar todos los flujos. Recomendación: guarda la clave en un gestor de contraseñas (Bitwarden, 1Password) durante la instalación inicial y nunca la dejes únicamente en el servidor. En los setups gestionados por Wito AI, la clave se deposita en una bóveda cifrada.

Deja la instalación de n8n self-hosted en manos profesionales

Wito AI configura tu setup de n8n conforme a la DSGVO en Hetzner, incluidos TLS, backups, monitorización y contrato de encargo de tratamiento. Setup inicial desde 1.500 EUR netos, con documentación de cumplimiento y una formación de iniciación incluidas.

  • Hetzner Cloud en Alemania (nbg1/fsn1)
  • Conforme a la DSGVO — contrato de encargo, art. 28 + art. 32
  • TLS, backups y monitorización incluidos
  • BSI IT-Grundschutz OPS.1.1.7 contemplado
n8n self-hosted DSGVO: setup en Hetzner 2026 | Wito AI