Cómo instalar N8N en Synology NAS con Docker (2025)

IA
nas synology n8n

N8N es una herramienta de automatización de flujos de trabajo que podemos auto-hospedar fácilmente en un NAS Synology mediante contenedores Docker. A continuación, explico cómo instalar n8n en un Synology NAS utilizando la aplicación Container Manager (antes conocida como Docker en DSM), cubriendo los requisitos previos, la configuración de volúmenes para persistir datos, las variables de entorno necesarias, recomendaciones de seguridad/rendimiento y problemas comunes con sus soluciones.

Índice de contenidos

Requisitos previos en el NAS

Modelo y sistema

Asegúrate de tener un Synology compatible con Docker. El DS1522+ (CPU AMD64) soporta contenedores, y es recomendable que tengas DSM 7 o superior. Instala la aplicación Container Manager desde el Centro de Paquetes de Synology si aún no la has instalado.

Privilegios

Utiliza una cuenta de administrador en tu NAS para realizar la instalación. A partir de DSM 7, Container Manager te permite desplegar contenedores directamente sin necesidad de herramientas externas.

Almacenamiento

Crea o identifica un volumen de almacenamiento (por ejemplo, volume1) con suficiente espacio para los datos de n8n. Te recomiendo crear una carpeta dedicada, por ejemplo docker/n8n, donde se guardarán todos los datos persistentes de n8n.

Red y puertos

Verifica que el puerto 5678 (por defecto en n8n) esté libre. Si quieres acceder a n8n desde fuera de tu red local, configura el firewall de tu NAS o tu enrutador para permitir el tráfico en ese puerto. Si planeas usar HTTPS mediante un proxy inverso, obtén o genera un certificado válido (por ejemplo, un certificado synology.me o Let’s Encrypt) y un hostname/DDNS para tu NAS. Así podrás acceder de forma segura a tu n8n a través de un dominio en lugar de la IP.


Pasos detallados para instalar n8n en Docker (Container Manager)

1. Preparar Container Manager

Abre Container Manager en tu Synology. Si es la primera vez que lo usas, revisa la configuración predeterminada. Normalmente, la red en modo NAT/bridge por defecto es suficiente.

2. Descargar la imagen de n8n

  1. En la pestaña Registro (Registry) de Container Manager, busca la imagen oficial de n8n (por ejemplo, escribe “n8n” o “n8nio/n8n”).
  2. Selecciona la imagen oficial y pulsa Download.
  3. Elige la etiqueta deseada (se recomienda latest para obtener la versión estable más reciente).
  4. Espera a que finalice la descarga.

3. Crear el contenedor

  1. Ve a la pestaña Contenedor (Container) y haz clic en Crear.
  2. Selecciona la imagen de n8n descargada.
  3. Asígnale un nombre al contenedor (por ejemplo, “n8n”).

General

Marca la opción de reinicio automático para que n8n se inicie con el NAS (por ejemplo, “siempre” o “si falla”).

Configuración de CPU/RAM (opcional)

Puedes limitar los recursos si lo deseas, aunque para un rendimiento óptimo es mejor dejarlos por defecto.

Puertos

En Configuración de puertos/Port Settings, mapea el puerto interno 5678 de n8n al puerto 5678 del host (o al que prefieras si 5678 ya está en uso).

Nota: si piensas usar un proxy inverso HTTPS, el puerto 5678 puede mantenerse accesible solo internamente, exponiendo externamente solo el 443 del NAS.

4. Configurar volúmenes (persistencia de datos)

Este paso es esencial para no perder tus flujos y configuraciones al actualizar. En la sección Volúmenes:

  1. Añade un Mount Volume.
  2. Selecciona la carpeta del NAS que creaste, por ejemplo volume1/docker/n8n.
  3. Asigna el Mount path dentro del contenedor a /home/node/.n8n.

De esta forma, la base de datos SQLite de n8n, las credenciales cifradas y otros ajustes se guardarán de manera permanente en tu NAS.

Si la interfaz no te deja seleccionar /home/node/.n8n, escribe manualmente la ruta.

Si quieres separar distintos tipos de datos (por ejemplo, ficheros binarios o certificados), puedes crear subcarpetas en docker/n8n y montarlas en rutas como /files o similares.

Asegúrate de que el usuario del contenedor (por defecto, “node” con UID 1000) tenga permisos de escritura en esa carpeta. Si no, puedes modificar los permisos en el NAS o ejecutar el contenedor temporalmente como root (UID 0). Sin embargo, por seguridad es preferible ajustar los permisos para el usuario 1000.

5. Variables de entorno

En Configuración de entorno/Environment, añade las siguientes variables para configurar n8n:

  • N8N_HOST: Dominio o subdominio que n8n usará para generar URLs (por ejemplo, n8n.tudominio.synology.me).
  • N8N_PORT: Puerto interno de n8n (normalmente 5678).
  • N8N_PROTOCOL: "https" si vas a usar HTTPS, o "http" si sólo lo usarás en LAN sin cifrado.
  • WEBHOOK_URL: URL completa que usará n8n para los webhooks externos (ejemplo: https://n8n.tudominio.synology.me).
  • GENERIC_TIMEZONE y TZ: Zona horaria (por ejemplo, "Europe/Madrid") para que tus flujos cron y registros coincidan con tu horario local.
  • NODE_ENV: Pon "production" para indicar que es un entorno de producción.

Variables de seguridad (recomendadas)

  • N8N_BASIC_AUTH_ACTIVE: Establécela a "true" para proteger la interfaz con autenticación básica. Luego añade N8N_BASIC_AUTH_USER y N8N_BASIC_AUTH_PASSWORD con el usuario y contraseña que prefieras.
  • N8N_ENCRYPTION_KEY: Clave de cifrado para credenciales. Si no la pones, n8n genera una al arrancar.
  • N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: Si la pones en "true", n8n aplica permisos estrictos al archivo de configuración.
  • N8N_SECURE_COOKIE: Pon "true" si accedes por HTTPS, para que las cookies de sesión sean seguras.

(Opcional) Base de datos externa

Por defecto, n8n usa SQLite. Si necesitas un entorno más robusto (multiusuario o muchos flujos), considera desplegar PostgreSQL y configurar variables como DB_TYPE=postgresdb, DB_POSTGRESDB_HOST, DB_POSTGRESDB_DATABASE, etc. Si no, puedes seguir con SQLite.

(Opcional) Otros ajustes

n8n ofrece muchas más variables, como N8N_DIAGNOSTICS_ENABLED=false (para desactivar telemetría) o N8N_PERSONALIZATION_ENABLED=false (para desactivar sugerencias en la interfaz). Ajusta según tus preferencias.

6. Revisar y lanzar el contenedor

Comprueba en el resumen que los puertos, volúmenes y variables de entorno estén correctos. Haz clic en Aplicar/Guardar y enciende el contenedor.

7. Verificación inicial

Abre los registros (logs) del contenedor para confirmar que n8n arranca sin errores. Si todo va bien, verás que escucha en el puerto 5678.

8. Acceder a n8n

  • En red local: En tu navegador, pon http://IP_de_tu_NAS:5678 (o el puerto que configuraste).
  • Con dominio y HTTPS: Configura un Proxy Inverso en tu NAS (en el Portal de Aplicaciones o Web Station) para mapear tu dominio (ejemplo: https://n8n.tudominio.synology.me) a http://localhost:5678. Habilita WebSocket y, si lo deseas, HTTP/2 y compresión para mayor rendimiento.

9. Inicialización de n8n

Cuando entres por primera vez, n8n te pedirá crear una cuenta o usar las credenciales definidas. Si activaste la autenticación básica, tu navegador solicitará usuario/contraseña. Después de acceder, verás el panel de n8n listo para que empieces a crear flujos.


Configuración de volúmenes y persistencia de datos

Persistencia de flujos y datos

Como se explicó, es crucial montar la carpeta /home/node/.n8n en tu NAS para no perder los flujos y credenciales al actualizar. Verifica que, tras el primer arranque, se hayan creado archivos como database.sqlite (base de datos) y config (con la clave de cifrado) en la carpeta del NAS.

Permisos

Si aparecen errores de “permission denied” o no se guardan los datos, asigna permisos adecuados a la carpeta en tu NAS. Una opción sencilla (aunque menos segura) es dar permisos totales a todos los usuarios. Lo ideal es configurar permisos para el UID 1000 (usuario “node” dentro del contenedor). Otra alternativa es ejecutar el contenedor como root (UID 0), aunque no es lo más seguro.

Archivos binarios y certificados

Si tus flujos guardan archivos o quieres usar certificados TLS propios dentro de n8n, considera montar una carpeta extra en /files. Así cualquier archivo o certificado quedará en tu NAS.

Actualizaciones

Para actualizar n8n, basta con parar el contenedor, descargar la nueva imagen y recrearlo, asegurándote de mantener el mismo volumen montado. No perderás nada si la carpeta persiste en tu NAS. Aun así, haz copias de seguridad periódicas de la carpeta de datos.


Variables de entorno necesarias y su uso

  • N8N_HOST / N8N_PORT / N8N_PROTOCOL: Definen la URL base que n8n usa para webhooks y enlaces internos.
  • WEBHOOK_URL: Forza la URL pública de los webhooks, útil si estás detrás de un proxy inverso o si tu dominio difiere de la configuración interna.
  • GENERIC_TIMEZONE / TZ: Ajustan la zona horaria para flujos Cron y logs.
  • NODE_ENV=production: Evita mensajes de debug y habilita optimizaciones de producción.
  • N8N_BASIC_AUTH_ACTIVE: Protege tu instancia con usuario/contraseña.
  • N8N_ENCRYPTION_KEY: Cifra las credenciales API dentro de n8n. Es vital no perder esta clave.
  • Variables de base de datos (opcional): Configura PostgreSQL o similares si deseas una base de datos externa.
  • Otras variables: Existen más opciones para desactivar telemetría, configurar notificaciones por correo, separar procesos de ejecución, etc.

Recomendaciones de seguridad y rendimiento

Mantén n8n actualizado

Las nuevas versiones suelen incluir mejoras y parches de seguridad. Haz siempre copia de la carpeta de datos antes de actualizar la imagen.

Autenticación y acceso restringido

No expongas n8n sin protección. Si no habilitas autenticación básica, asegúrate de restringir el acceso a la red local o usa el sistema de usuarios incorporado en versiones recientes de n8n.

Proxy inverso con HTTPS

Usar un proxy inverso con un certificado SSL te proporciona cifrado TLS y la posibilidad de tener un dominio personalizado. Configura el puerto 443 externo apuntando a 5678 interno y habilita HSTS para mayor seguridad. No olvides permitir WebSockets para que la interfaz muestre en tiempo real las ejecuciones de los flujos.

Ejecutar con privilegios mínimos

Evita ejecutar el contenedor como root si puedes. Ajusta los permisos de la carpeta para que UID 1000 (usuario “node”) tenga acceso de lectura/escritura. Además, si tu NAS lo soporta, activa opciones de seguridad adicionales en Container Manager (como no-new-privileges).

Aislamiento de red

Crea una red Docker bridge personalizada si vas a usar más contenedores (por ejemplo, PostgreSQL). Así mantienes los contenedores aislados, sin necesidad de exponer puertos más allá de los necesarios.

Rendimiento – base de datos

SQLite funciona bien para usos moderados. Si planeas tener muchos flujos activos o un uso intensivo, considera usar PostgreSQL. Tu DS1522+ puede manejarlo sin problemas.

Rendimiento – ajustes de Synology

Activa HTTP/2 y la compresión HTTP en el proxy inverso para acelerar la carga de la interfaz de n8n.

Recursos del NAS

El DS1522+ viene con 8 GB de RAM (ampliables). Si tus flujos son muy exigentes, supervisa el uso de CPU y RAM en el Monitor de Recursos. Ajusta límites en Container Manager si lo consideras necesario.

Logs y mantenimiento

Elimina ejecuciones antiguas para que la base de datos no crezca indefinidamente. Programa copias de seguridad de la carpeta de datos de n8n. Mantén un ojo en los logs y, si crecen mucho, limpia o rota los registros.


Posibles problemas y soluciones comunes

1. El contenedor se ejecuta pero pierdo mis workflows al reiniciar

Sucede si no has montado correctamente la carpeta de datos. Asegúrate de que la carpeta del NAS se mapee a /home/node/.n8n en el contenedor. Si no puedes usar esa ruta, define la variable N8N_USER_FOLDER a otra (por ejemplo, /data) y mapea allí el volumen.

2. No puedo mapear el volumen a /home/node/.n8n

La interfaz de Container Manager puede no mostrar rutas del sistema. Escribe manualmente la ruta en el campo de montaje o usa un archivo docker-compose para mayor control.

3. La interfaz de n8n no muestra el progreso de ejecución o fallan los webhooks

Generalmente es un problema de WebSockets o de URL. Revisa que hayas configurado el proxy inverso con soporte WebSocket y que las variables N8N_HOST, N8N_PROTOCOL y WEBHOOK_URL apunten a la ruta HTTPS correcta.

4. Obtengo la página por defecto de “Web Station” o error 400

Significa que tu petición está llegando al puerto web por defecto del NAS. Comprueba que el proxy inverso mapee tu dominio en el puerto 443 hacia http://localhost:5678. Asegúrate de haber asignado el certificado correcto en Seguridad > Certificado.

5. Errores de certificado o avisos de seguridad

Si no has configurado un certificado válido, el navegador mostrará alertas. Lo ideal es usar Let’s Encrypt o un certificado de confianza. Asegúrate de acceder siempre por HTTPS y, si tienes N8N_SECURE_COOKIE=true, necesitas un entorno cifrado.

6. El contenedor no inicia (se reinicia constantemente)

Verifica los logs en Container Manager. Las causas más frecuentes son variables mal configuradas (por ejemplo, un host de base de datos inexistente) o puertos en conflicto. Si 5678 está en uso, mapea otro puerto local y ajusta las variables en consecuencia.

7. Problemas de rendimiento o bloqueos

Si n8n va lento o consume muchos recursos, revisa si hay flujos en bucle o demasiadas ejecuciones simultáneas. Amplía la RAM si lo necesitas o cierra otros servicios. En casos de muchas escrituras, SQLite puede bloquearse; valora migrar a PostgreSQL.

8. No puedo acceder con las credenciales después de actualizar

Si tras actualizar n8n te pide crear una cuenta nueva, puede que no hayas montado la carpeta correctamente y hayas perdido la base de datos. Verifica que database.sqlite y ~/.n8n/config siguen en tu volumen. Por eso es fundamental montar el volumen desde el principio y hacer copias de seguridad.

Daniel Pajuelo
Daniel Pajuelo es ingeniero informático y SEO Senior, actualmente trabajando en Guruwalk e impartiendo clases en BIG School (antes BIGSEO Academy). Ver más
Categorías IA

Continua leyendo

comparativa windsurf cursor vscode

Windsurf Editor: Comparativa con Cursor y VS Code

Windsurf Editor, es un IDE asistido por IA que está ganando popularidad entre desarrolladores. Aquí lo comparo con Cursor y VS Code.

Cómo crear agentes IA

En este artículo te enseño los principios para codificar agentes IA, así como herramientas para desarrollarlos más rápido.

¿Cómo se hackean los LLMs? Prompt hacking y más

Para prevenir usos indebidos, los LLMs implementan “guardarraíles” o restricciones de seguridad que les impiden generar contenido dañino, sesgado o inapropiado. Sin embargo, atacantes y entusiastas han desarrollado técnicas ingeniosas para “hackear” o jailbreakear estos modelos, es decir, para burlar sus alineamientos de seguridad y lograr que produzcan salidas prohibidas.