DOCKER - N8N

 

🧩  Implementación de n8n con Docker y PostgreSQL

En esta práctica, implementaremos n8n, una potente herramienta de automatización de flujos de trabajo (workflow automation), utilizando Docker como entorno de despliegue y PostgreSQL como base de datos principal. A través de esta configuración, aprenderemos a gestionar de forma estructurada las variables de entorno mediante un archivo .env, así como a automatizar la preparación del entorno con un script setup.sh que definirá las credenciales y configuraciones necesarias para el correcto funcionamiento de la plataforma.

Además, configuraremos el entorno con parámetros adaptados a un entorno de laboratorio, donde deshabilitaremos temporalmente el uso obligatorio de cookies seguras (permitiendo conexiones HTTP), habilitaremos la versión Community Edition (CE) de n8n y activaremos la autenticación en dos pasos (2FA) para fortalecer la seguridad en el acceso a la interfaz administrativa.

🎯 Objetivo de la práctica

  • Implementar n8n dentro de contenedores Docker para lograr una instalación modular y fácilmente gestionable.

  • Configurar PostgreSQL como base de datos persistente para almacenar las configuraciones, flujos y credenciales de n8n.

  • Utilizar un archivo .env para definir variables de entorno de forma centralizada y segura.

  • Automatizar la creación de contraseñas y parámetros con un setup.sh autogenerado.

  • Ajustar las opciones de seguridad y conexión para un entorno controlado de pruebas.

🧠 Introducción al entorno n8n y su arquitectura

n8n (pronunciado en-eight-en) es una herramienta de automatización de código abierto que permite crear flujos de trabajo visuales que integran aplicaciones, APIs y servicios mediante nodos conectados entre sí.
Su arquitectura modular facilita su despliegue tanto en servidores físicos como en contenedores Docker, permitiendo la integración con bases de datos externas, sistemas de autenticación y plataformas cloud.

En este caso, se empleará Docker para simplificar la instalación y aislamiento del entorno, garantizando una ejecución consistente.
El uso de PostgreSQL como base de datos aporta estabilidad y rendimiento en la gestión de la información persistente de n8n, evitando pérdidas de configuración en caso de reinicios o actualizaciones.

⚙️ Configuración mediante .env y setup.sh

🔹 Archivo .env

El archivo .env contendrá todas las variables de entorno necesarias para la configuración de n8n y PostgreSQL.
Entre ellas se incluirán:

  • Datos de conexión al servidor de base de datos (usuario, contraseña, host, puerto, nombre de base).

  • Parámetros de acceso al servicio web de n8n (puerto, URL pública, entorno de ejecución).

  • Opciones de seguridad y configuración (cookies, autenticación, etc.).

El uso del archivo .env permite separar la lógica de despliegue de la configuración sensible, facilitando la portabilidad y reduciendo errores manuales durante el proceso de implementación.

🔹 Script setup.sh

El script setup.sh se encargará de inicializar el entorno generando automáticamente contraseñas seguras y exportando las variables necesarias al archivo .env.
Este enfoque garantiza que cada despliegue cuente con credenciales únicas, evitando el uso de valores por defecto o inseguros.

Además, este script automatiza la preparación del entorno para Docker Compose, creando los archivos de configuración con los permisos y formatos correctos.

🧱 Integración con PostgreSQL

Durante la práctica, PostgreSQL actuará como la base de datos principal donde n8n almacenará:

  • Los flujos de trabajo creados.

  • Las credenciales encriptadas de conexión a servicios externos.

  • Los logs y metadatos de ejecución de nodos.

Esta integración proporciona persistencia y escalabilidad, lo que permite que los flujos y configuraciones de n8n se mantengan incluso si el contenedor se reinicia o se migra a otro entorno.

🔐 Configuración de seguridad en entorno de laboratorio

Dado que la práctica se realizará en un entorno controlado de laboratorio, se aplicarán ciertos ajustes que faciliten la conexión y prueba del sistema:

  • Deshabilitar cookies seguras (Secure Cookies = false):
    Esto permitirá conexiones mediante HTTP sin exigir certificados SSL, útil para entornos de desarrollo o pruebas internas.

  • Activar n8n Community Edition (CE):
    Se habilita la versión gratuita y abierta de la plataforma, ideal para entornos académicos o experimentales.

  • Habilitar la autenticación en dos pasos (2FA):
    Esta medida refuerza la seguridad en el acceso al panel de administración de n8n, combinando una contraseña con un código temporal (TOTP), incluso en entornos de laboratorio.

Estos ajustes equilibran flexibilidad y seguridad, manteniendo un entorno funcional pero sin comprometer la integridad del sistema.

🔍 Importancia de esta práctica

La implementación de n8n con Docker y PostgreSQL ofrece una visión completa sobre cómo desplegar aplicaciones automatizadas modernas con buenas prácticas de seguridad y modularidad.
Esta práctica introduce al estudiante o administrador en conceptos clave como:

  • La gestión centralizada de configuraciones con archivos .env.

  • La automatización de despliegues mediante scripts en Bash.

  • El uso de Docker Compose para orquestar múltiples contenedores interconectados.

  • La aplicación de parámetros de seguridad y persistencia de datos en entornos reales.

Además, trabajar con n8n abre la puerta a la creación de flujos de integración entre servicios como APIs REST, plataformas de mensajería, bases de datos, servidores de correo o herramientas DevOps, todo desde una interfaz visual.

✅ Resultados esperados

  • Contenedores Docker de n8n y PostgreSQL correctamente configurados y ejecutándose.

  • Archivo .env funcional con todas las variables de entorno definidas.

  • Script setup.sh operativo, generando contraseñas seguras y exportando valores.

  • n8n accesible desde el navegador en modo HTTP.

  • Versión CE habilitada y autenticación 2FA activa.

  • Persistencia de los datos en PostgreSQL confirmada tras reinicio de los contenedores.

💡 Aplicación práctica

Esta práctica sienta las bases para el despliegue de infraestructuras de automatización profesional, aplicables tanto a entornos de laboratorio como a entornos empresariales.
Al comprender el flujo de trabajo de n8n con Docker, PostgreSQL y variables de entorno, los estudiantes adquieren competencias esenciales en:

  • DevOps y administración de contenedores.

  • Seguridad y gestión de credenciales.

  • Integración continua y automatización de procesos.

El resultado final es un sistema modular, seguro y fácilmente replicable, ideal para desarrollar, probar y escalar flujos de trabajo automatizados en redes locales o entornos de producción controlados.

DESCARGAR COMANDOS

Comentarios

Entradas populares