Automatizar tareas con n8n autoalojado y docker compose

Tiempo de lectura: 2 minutos

Vamos a utilizar n8n para automatizar tareas de forma autoalojado y gratis mediante un docker compose.

n8n es una plataforma de automatización de flujos de trabajo de código abierto. Permite conectar aplicaciones, APIs y servicios sin necesidad de programar, facilitando la creación de integraciones personalizadas y automatizaciones complejas de manera visual.

🔹 Flexible: Se puede ejecutar en la nube o en servidores propios.
🔹 Código abierto: Sin limitaciones de pago ni bloqueos de funciones.
🔹 Más de 350 integraciones con herramientas como Slack, Gmail, Notion, OpenAI, y muchas más.
🔹 Uso intuitivo: Su interfaz de arrastrar y soltar facilita la creación de flujos sin conocimientos avanzados.

Ideal para desarrolladores, empresas y creadores de contenido que buscan automatizar procesos y mejorar su productividad. 🚀

Automatic - Pexels

Lo primero qué haremos es utilizar la imagen oficial para crear un docker compose.

services:
  n8n_automatizador:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    container_name: n8n_automatizador
    ports:
      - 5678:5678
    environment:
      - N8N_PORT=5678
      - N8N_PROTOCOL=${N8N_PROTOCOL}
      - NODE_ENV=production
      - WEBHOOK_URL=${WEBHOOK_URL}
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
    volumes:
      - ./config/n8n/data:/home/node/.n8n

Y creamos el .env

# Protocolo HTTP o HTTPS
N8N_PROTOCOL=http

# URL base de los webhooks (ajústalo si usas Nginx Proxy Manager)
WEBHOOK_URL=http://localhost:5678/

# Zona horaria (ajústala según tu ubicación)
GENERIC_TIMEZONE=Europe/Madrid

Si queremos autoalojarlo fuera de localhost (en una máquina externa). Debemos cambiar el docker compose a esto:

services:
  n8n_automatizador:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    container_name: n8n_automatizador
    ports:
      - 5678:5678
    environment:
      - N8N_PORT=5678
      - N8N_PROTOCOL=${N8N_PROTOCOL}
      - NODE_ENV=production
      - WEBHOOK_URL=${WEBHOOK_URL}
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
      - N8N_HOST=${N8N_HOST}
    volumes:
      - ./config/n8n/data:/home/node/.n8n

Y creamos el .env

# Dominio donde estará n8n
N8N_HOST=miweb.com
# Protocolo HTTP o HTTPS
N8N_PROTOCOL=https
# URL pública para webhooks (cambia si usas subdominio)
WEBHOOK_URL=https://miweb.com/

# Zona horaria
GENERIC_TIMEZONE=Europe/Madrid

Y listo, ya tenemos nuestro n8n desplegado.

n8n welcome

Recomiendo desplegarlo delante de un nginx proxy manager cómo explico en este tutorial.

Deja un comentario