¿Estás cansado de realizar tareas repetitivas manualmente entre diferentes aplicaciones? n8n Docker Compose es la solución perfecta para automatizar tus flujos de trabajo de forma visual y sin necesidad de programar. Esta plataforma open-source te permite conectar más de 400 aplicaciones y servicios, crear automatizaciones complejas y desplegar todo con un simple archivo de configuración.
En esta guía completa aprenderás a instalar y configurar n8n Docker Compose paso a paso, desde la instalación básica hasta configuraciones avanzadas con PostgreSQL, mejores prácticas de producción y casos de uso reales que transformarán tu productividad.
¿Qué es n8n Docker Compose y por qué deberías usarlo?
n8n es una herramienta de automatización de workflows que se destaca por su interfaz visual basada en nodos, permitiendo crear flujos complejos sin escribir código extenso. A diferencia de herramientas como Zapier o Make (anteriormente Integromat), n8n es completamente open-source y puede ejecutarse en tu propia infraestructura mediante contenedores Docker.
Desplegar n8n Docker Compose ofrece ventajas significativas sobre la instalación manual o el uso de servicios cloud:
- Control total de datos: Tus flujos y credenciales permanecen en tu servidor
- Sin límites de ejecución: No pagas por número de operaciones o workflows
- Código personalizado: Puedes escribir JavaScript o Python cuando lo necesites
- Más de 400 integraciones: Conecta con aplicaciones populares como Slack, Gmail, HubSpot, Salesforce y muchas más según la documentación oficial del proyecto en GitHub
- Fair-code license: Modelo de licencia equilibrado que permite uso comercial
- Despliegue reproducible: La configuración declarativa asegura consistencia entre entornos
Docker Compose simplifica enormemente el despliegue, permitiendo definir toda la infraestructura necesaria (base de datos, red, volúmenes) en un solo archivo declarativo. Esto hace que cualquier desarrollador pueda replicar el entorno exacto en minutos.
Requisitos previos para instalar n8n Docker Compose
Antes de comenzar con la instalación, asegúrate de tener lo siguiente en tu sistema:
- Docker Engine: Versión 20.10 o superior instalada (guía oficial de instalación)
- Docker Compose: Versión 2.x recomendada (incluida con Docker Desktop)
- Sistema operativo: Linux, macOS o Windows con WSL2
- Recursos mínimos: 1GB RAM y 2GB de espacio en disco
- Recursos recomendados: 2GB RAM y 5GB de espacio para producción
- Puertos disponibles: 5678 (interfaz web) y opcionalmente 5432 (PostgreSQL)
- Conocimientos básicos: Terminal de comandos y conceptos de contenedores
Para verificar que tienes Docker y Docker Compose instalados correctamente, ejecuta:
docker --version
docker compose version
Si ambos comandos devuelven las versiones instaladas, estás listo para proceder con el setup de n8n Docker Compose.
Instalación básica de n8n Docker Compose
La forma más rápida de comenzar es con una configuración básica perfecta para desarrollo y pruebas. Crea un directorio para tu proyecto y un archivo docker-compose.yml:
mkdir n8n-automation && cd n8n-automation
nano docker-compose.yml
Aquí tienes una configuración básica completamente funcional:
version: '3.8'
volumes:
n8n_data:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
- GENERIC_TIMEZONE=Europe/Madrid
volumes:
- n8n_data:/home/node/.n8n
Para iniciar el servicio, simplemente ejecuta:
docker compose up -d
Accede a la interfaz web en http://localhost:5678 y completa el asistente de configuración inicial. Esta instalación básica utiliza SQLite como base de datos, perfecta para pruebas y entornos de desarrollo. En pocos minutos tendrás tu plataforma de automatización funcionando.
Configuración avanzada: n8n Docker Compose con PostgreSQL
Para entornos de producción, se recomienda utilizar PostgreSQL como base de datos. Esta configuración proporciona mejor rendimiento, escalabilidad y fiabilidad que SQLite. Basándonos en el repositorio oficial de n8n-hosting en GitHub, aquí está la configuración completa de producción:
version: '3.8'
volumes:
db_storage:
n8n_storage:
services:
postgres:
image: postgres:16
container_name: n8n-postgres
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=tu_password_seguro
- POSTGRES_DB=n8n
- POSTGRES_NON_ROOT_USER=n8n_user
- POSTGRES_NON_ROOT_PASSWORD=tu_password_usuario
volumes:
- db_storage:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U n8n -d n8n']
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=tu_password_usuario
- N8N_PORT=5678
- N8N_PROTOCOL=http
- GENERIC_TIMEZONE=Europe/Madrid
- N8N_ENCRYPTION_KEY=tu_clave_encriptacion_segura
- NODE_FUNCTION_ALLOW_EXTERNAL=*
ports:
- "5678:5678"
links:
- postgres
volumes:
- n8n_storage:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
Importante: Cambia las contraseñas y la clave de encriptación por valores seguros antes de desplegar. La clave N8N_ENCRYPTION_KEY es crítica porque se utiliza para cifrar credenciales almacenadas en la base de datos. Puedes generar una clave segura con:
openssl rand -hex 32
Esta configuración de n8n Docker Compose incluye healthchecks para garantizar que PostgreSQL esté completamente operativo antes de iniciar el servicio principal, evitando errores de conexión durante el arranque.
Variables de entorno esenciales para n8n Docker Compose
La configuración de variables de entorno es fundamental para personalizar el comportamiento de tu instalación. Las más importantes según la documentación oficial de n8n son:
Variables de configuración general
N8N_PORT: Puerto donde escucha el servidor (por defecto 5678)N8N_PROTOCOL: Protocolo http o httpsN8N_HOST: Dominio o IP pública del servidorWEBHOOK_URL: URL base para webhooks (crítico para integraciones externas)GENERIC_TIMEZONE: Zona horaria para programación de tareasNODE_ENV: Entorno de ejecución (production recomendado)
Variables de seguridad
N8N_ENCRYPTION_KEY: Clave para cifrar credenciales (obligatoria en producción)N8N_USER_MANAGEMENT_JWT_SECRET: Secreto para tokens JWTN8N_SECURE_COOKIE: true para HTTPS (false para desarrollo local)
Variables de base de datos
DB_TYPE: Tipo de base de datos (postgresdb, mysql, mariadb, sqlite)DB_POSTGRESDB_HOST: Host del servidor PostgreSQLDB_POSTGRESDB_PORT: Puerto de PostgreSQL (5432 por defecto)DB_POSTGRESDB_DATABASE: Nombre de la base de datosDB_POSTGRESDB_USERyDB_POSTGRESDB_PASSWORD: Credenciales de acceso
Variables avanzadas
NODE_FUNCTION_ALLOW_EXTERNAL: Permite usar módulos npm externos (muy útil para código personalizado)EXECUTIONS_PROCESS: main o own (para procesos separados)EXECUTIONS_MODE: regular o queue (con Redis para escalabilidad)N8N_LOG_LEVEL: Nivel de detalle de logs (info, debug, error)
Es buena práctica usar un archivo .env para gestionar estas variables de forma centralizada y segura:
# Crear archivo .env para n8n Docker Compose
cat > .env << 'EOF'
POSTGRES_USER=n8n
POSTGRES_PASSWORD=tu_password_seguro
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=n8n_user
POSTGRES_NON_ROOT_PASSWORD=tu_password_usuario
N8N_ENCRYPTION_KEY=tu_clave_generada_con_openssl
N8N_HOST=n8n.tudominio.com
WEBHOOK_URL=https://n8n.tudominio.com/
EOF
Configurar n8n Docker Compose con proxy reverso y SSL
Para exponer tu instalación de forma segura en internet, necesitas configurar un proxy reverso con certificados SSL. Puedes usar Nginx Proxy Manager o Traefik, herramientas perfectas para gestionar múltiples servicios containerizados.
Ejemplo de configuración con Traefik como se menciona en los ejemplos de la comunidad en GitHub:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: always
environment:
- N8N_PROTOCOL=https
- N8N_HOST=n8n.tudominio.com
- WEBHOOK_URL=https://n8n.tudominio.com/
# ... otras variables
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.tudominio.com`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
networks:
- proxy
networks:
proxy:
external: true
Esta configuración permite que Traefik gestione automáticamente los certificados SSL mediante Let’s Encrypt, proporcionando conexiones HTTPS seguras sin intervención manual.
Gestión de workflows y backups en n8n Docker Compose
Una ventaja importante del deployment con contenedores es que todos tus workflows y credenciales se almacenan en volúmenes Docker persistentes. Para realizar backups regulares de tu instalación:
# Backup de volúmenes de n8n
docker run --rm -v n8n_storage:/source -v $(pwd):/backup alpine tar czf /backup/n8n-backup-$(date +%Y%m%d).tar.gz -C /source .
# Backup de base de datos PostgreSQL
docker exec n8n-postgres pg_dump -U n8n n8n > n8n-db-backup-$(date +%Y%m%d).sql
# Restaurar backup de PostgreSQL
cat n8n-db-backup-20250129.sql | docker exec -i n8n-postgres psql -U n8n -d n8n
También puedes exportar workflows individuales desde la interfaz web en formato JSON, lo que facilita el versionado con Git y la migración entre diferentes instancias. Se recomienda programar backups automáticos diarios mediante cron jobs.
Casos de uso prácticos con n8n Docker Compose
Las posibilidades de automatización son prácticamente ilimitadas. Algunos ejemplos populares que puedes implementar inmediatamente incluyen:
Automatización de marketing digital
- Sincronizar leads de formularios web directamente a CRM (HubSpot, Salesforce, Pipedrive)
- Publicar contenido automáticamente en múltiples redes sociales simultáneamente
- Generar reportes de analíticas web y enviarlos por email semanalmente
- Crear campañas de email personalizadas basadas en comportamiento de usuarios
- Monitorizar menciones de marca y enviar notificaciones instantáneas
DevOps y desarrollo de software
- Notificaciones de Slack/Discord cuando hay nuevos commits o pull requests en GitHub
- Despliegues automáticos a producción cuando se fusionan cambios a rama principal
- Monitorización de servicios y alertas automáticas a equipos técnicos
- Backups programados de bases de datos a cloud storage (S3, Google Drive, Dropbox)
- Creación automática de issues en Jira basados en errores de aplicación
Productividad personal y organización
- Guardar artículos interesantes de feeds RSS a Notion, Evernote o Obsidian
- Sincronizar tareas automáticamente entre diferentes gestores de proyectos
- Respaldar fotos de Instagram o redes sociales automáticamente a cloud
- Crear recordatorios inteligentes basados en eventos del calendario
- Agregar automáticamente gastos desde emails a hojas de cálculo
El catálogo oficial de templates de n8n ofrece más de 900 workflows prediseñados que puedes importar directamente a tu instalación y personalizar según tus necesidades específicas.
Solución de problemas comunes en n8n Docker Compose
Aquí hay soluciones a los problemas más frecuentes al trabajar con esta tecnología:
Los webhooks no funcionan correctamente
Asegúrate de configurar correctamente WEBHOOK_URL con tu dominio público accesible desde internet. Para desarrollo local, puedes usar herramientas como ngrok o Cloudflare Tunnel:
ngrok http 5678
# Usa la URL generada (https://xxx.ngrok.io) en WEBHOOK_URL
Error de conexión a PostgreSQL
Verifica que el healthcheck de PostgreSQL está pasando correctamente antes de que se inicie el servicio principal. El depends_on con condition: service_healthy es crucial. Revisa los logs con:
docker compose logs postgres
docker compose logs n8n
Workflows no se guardan o desaparecen
Comprueba que los volúmenes están montados correctamente y que el contenedor tiene permisos de escritura adecuados:
docker volume inspect n8n_storage
docker compose exec n8n ls -la /home/node/.n8n
Alto uso de memoria o CPU
Para workflows pesados con muchas ejecuciones concurrentes, considera usar modo queue con Redis para distribuir la carga eficientemente. Ejemplo basado en el setup oficial con workers separados.
Mejores prácticas de seguridad para n8n Docker Compose
Para mantener tu instalación segura y protegida contra amenazas:
- Siempre usa HTTPS en producción con certificados SSL válidos de Let’s Encrypt
- Cambia las contraseñas por defecto y usa claves de encriptación fuertes generadas aleatoriamente
- Actualiza regularmente las imágenes Docker para recibir parches de seguridad:
docker compose pull && docker compose up -d - Limita el acceso mediante firewall, VPN o autenticación de dos factores (2FA)
- Habilita autenticación robusta con usuarios y contraseñas complejas
- Realiza backups periódicos automatizados tanto de workflows como de la base de datos
- Monitoriza logs activamente para detectar accesos no autorizados:
docker compose logs -f --tail=100 - Usa redes Docker aisladas para limitar comunicación entre contenedores
- Implementa rate limiting en tu proxy reverso para prevenir ataques DDoS
Comparativa: n8n vs alternativas del mercado
¿Cómo se compara esta solución con otras herramientas populares de automatización?
| Característica | n8n | Zapier | Make (Integromat) | Node-RED |
|---|---|---|---|---|
| Precio | Gratis (self-hosted) | Desde $20/mes | Desde $9/mes | Gratis |
| Integraciones | 400+ | 5000+ | 1500+ | Limitadas |
| Self-hosting | Sí ✅ | No ❌ | No ❌ | Sí ✅ |
| Código custom | JavaScript/Python | Muy limitado | Limitado | JavaScript |
| Interfaz | Visual moderna | Wizard paso a paso | Visual compleja | Técnica IoT |
| Curva aprendizaje | Media | Baja | Media-Alta | Alta |
| Privacidad datos | 100% control | En cloud terceros | En cloud terceros | 100% control |
La principal ventaja de n8n Docker Compose es el control total sobre datos y procesos sin costes recurrentes, ideal para equipos técnicos, empresas que priorizan privacidad y desarrolladores que necesitan flexibilidad extrema.
Escalando n8n Docker Compose para producción
Cuando tu uso crece y necesitas manejar miles de ejecuciones diarias, el modo queue con workers separados es la solución. Esta arquitectura distribuida permite procesar múltiples workflows en paralelo:
services:
redis:
image: redis:7-alpine
restart: always
n8n:
image: docker.n8n.io/n8nio/n8n
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
# ... otras variables
n8n-worker:
image: docker.n8n.io/n8nio/n8n
command: worker
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
deploy:
replicas: 3 # Múltiples workers en paralelo
Esta configuración permite escalar horizontalmente añadiendo más workers según la demanda, perfecta para organizaciones con alta carga de automatizaciones.
Preguntas frecuentes (FAQ)
¿Cuántos recursos necesita n8n Docker Compose?
Para un uso básico son suficientes 1GB de RAM y 1 CPU core. En producción con múltiples workflows activos se recomiendan al menos 2GB de RAM y 2 cores. El consumo de disco depende del número de ejecuciones almacenadas, típicamente entre 2-5GB. Para instalaciones enterprise con modo queue, considera 4GB+ de RAM.
¿Es seguro exponer n8n Docker Compose a internet?
Sí, siempre que sigas las mejores prácticas de seguridad: usa HTTPS obligatoriamente, configura autenticación robusta con contraseñas fuertes, mantén el software actualizado regularmente y considera limitar el acceso por IP mediante firewall si es posible. La aplicación incluye características de seguridad empresarial como SSO en versiones premium.
¿Puedo migrar de SQLite a PostgreSQL fácilmente?
Sí, aunque requiere exportar workflows en formato JSON desde la interfaz web, configurar la nueva instalación con PostgreSQL siguiendo esta guía e importarlos nuevamente. No existe herramienta oficial de migración directa de base de datos, por lo que es mejor empezar con PostgreSQL desde el inicio si planeas usarlo en producción a largo plazo.
¿Cómo escalo n8n para manejar alto volumen de workflows?
Para escalar horizontalmente, configura el modo queue con Redis y despliega múltiples workers como se mostró anteriormente. El setup oficial incluye ejemplos completos con workers separados que procesan ejecuciones en paralelo, perfecto para manejar miles de workflows concurrentes sin degradar el rendimiento.
¿Funciona n8n Docker Compose en Raspberry Pi?
Sí, hay imágenes Docker oficiales optimizadas para arquitectura ARM. Funciona perfectamente en Raspberry Pi 4 con 4GB de RAM o superior, aunque el rendimiento será menor que en servidores x86. Es ideal para automatizaciones domésticas, proyectos IoT y laboratorios de pruebas personales.
Conclusión
Implementar n8n Docker Compose representa la solución definitiva para quienes buscan automatizar procesos empresariales sin depender de servicios cloud de terceros ni pagar suscripciones mensuales costosas. Con más de 400 integraciones nativas, capacidad de código personalizado ilimitado y total control sobre tus datos sensibles, esta plataforma se posiciona como la alternativa open-source líder frente a opciones comerciales como Zapier, Make o Power Automate.
La instalación mediante contenedores simplifica enormemente el despliegue y mantenimiento continuo, permitiendo tener un entorno de automatización profesional completamente funcional en menos de 10 minutos. Ya sea para proyectos personales, startups tecnológicas o grandes empresas, n8n Docker Compose ofrece la flexibilidad, escalabilidad y potencia necesarias para cualquier necesidad de automatización moderna.
¿Listo para transformar tu productividad mediante automatización inteligente? Empieza hoy mismo con la configuración básica presentada en esta guía y descubre todo el potencial ilimitado de esta increíble herramienta open-source. Tu equipo y tu tiempo te lo agradecerán enormemente.
