Guía de Configuración de n8n con Docker Compose
Desbloqueando la Automatización con n8n y Docker Compose
n8n es una herramienta increíble que permite a los usuarios automatizar tareas entre diferentes aplicaciones, actuando como una alternativa gratuita a Zapier. Sin embargo, requiere autoalojamiento, lo que puede ser complejo para aquellos sin una amplia experiencia técnica. Afortunadamente, usar Docker Compose simplifica este proceso, permitiendo que cualquiera aloje n8n en un entorno en contenedores. Vamos a profundizar en cómo configurar n8n con Docker Compose y explorar su potencial.
¿Qué es n8n?
n8n es esencialmente una herramienta de automatización de flujos de trabajo que permite a los usuarios conectar diferentes servicios y aplicaciones, automatizando tareas que de otro modo requerirían intervención manual. Soporta una amplia gama de servicios y APIs, lo que la convierte en una herramienta versátil tanto para necesidades de automatización personal como profesional.
¿Por qué Autoalojar n8n?
Autoalojar n8n proporciona control total sobre tus datos y automatizaciones, permitiendo personalización más allá de lo que los servicios en la nube podrían ofrecer. Sin embargo, requiere un entendimiento básico de la gestión de servidores y la contenedorización, que es donde entra en juego Docker Compose.
Configurando n8n con Docker Compose
Docker Compose facilita la gestión de n8n y sus dependencias al definir servicios y configuraciones en un solo archivo. Aquí te mostramos cómo puedes comenzar:
Requisitos Previos:
- Asegúrate de tener Docker y Docker Compose instalados.
- Familiarízate con la red de Docker y la gestión de contenedores.
Crea un Archivo de Docker Compose (
docker-compose.yml
):
Este archivo contendrá todas las configuraciones para tu configuración de n8n. A continuación se muestra una plantilla básica, que incluye una base de datos PostgreSQL para la persistencia de datos y un servicio n8n.version: '3' services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER=user - N8N_BASIC_AUTH_PASSWORD=password - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=db - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=n8n - NODE_FUNCTION_ALLOW_EXTERNAL=axios,qs depends_on: - db restart: unless-stopped db: image: postgres:12 volumes: - db-data:/var/lib/postgresql/data environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=n8n - POSTGRES_DB=n8n restart: unless-stopped volumes: db-data:
Inicia n8n:
Ejecutadocker-compose up -d
para iniciar tus contenedores en modo desacoplado. Este comando inicia tanto el servicio n8n como la base de datos PostgreSQL.Accede a n8n:
Abre tu navegador web y navega a http://localhost:5678. Se te pedirá que crees una cuenta, y luego podrás comenzar a diseñar tus flujos de trabajo de automatización.
Configurando Características Avanzadas
Asegurando Tu Configuración
Para entornos de producción, considera usar un proxy inverso seguro como Traefik con certificados TLS. Esto asegura que tu configuración sea accesible a través de HTTPS. Puedes configurar Traefik en tu archivo de Docker Compose de la siguiente manera:
traefik:
image: traefik:v2.2
command: --log.level=ERROR --api.first=true
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /letsencrypt:/letsencrypt
depends_on:
- n8n
Esta configuración permite el acceso seguro a n8n a través de HTTPS. Asegúrate de configurar tus ajustes de DNS y obtener certificados TLS utilizando herramientas como Let's Encrypt.
Integrando con Otros Contenedores
Si tienes otros contenedores ejecutándose en el mismo host (como una API), y deseas que n8n acceda a ellos, asegúrate de que todos los contenedores compartan la misma red. Docker Compose simplifica esto al crear automáticamente una red para los servicios definidos en el mismo archivo.
Sin embargo, si necesitas acceder a contenedores fuera de tu configuración actual de Docker Compose, considera usar la dirección IP de la máquina host o configurar una red compartida.
Mejorando las Capacidades del Flujo de Trabajo
Para mejorar tus flujos de trabajo, es posible que necesites bibliotecas externas como Axios para realizar solicitudes HTTP. n8n