📚 Guía Completa de n8n con Docker

Sistema: elementary OS 8 x86_64 | Kernel: 6.14.0-36-generic | Docker: 28.2.2 | Usuario: dtecno

🐳 Conceptos Básicos

¿Qué es Docker?

Docker es el motor/plataforma que ejecuta contenedores. Es como el motor de un auto que siempre está corriendo en segundo plano.

Características:
  • Servicio del sistema (siempre corriendo)
  • Permite ejecutar aplicaciones en contenedores
  • Aisla aplicaciones del sistema host
  • Facilita la portabilidad de aplicaciones

¿Qué es n8n?

n8n es una aplicación de automatización de flujos de trabajo que corre dentro de un contenedor Docker.

Ventajas de n8n:
  • Automatización visual sin código
  • Más de 400 integraciones
  • Versión gratuita completa (Community Edition)
  • Auto-hospedado - tus datos bajo tu control

Diferencia Clave

Aspecto Docker n8n
Tipo Plataforma/Motor Aplicación/Contenedor
Estado Siempre corriendo Se inicia/detiene
Función Ejecuta contenedores Automatiza workflows

📦 Instalación

1. Verificar Docker

Primero verifica si Docker ya está instalado:

docker --version
Salida esperada:
Docker version 28.2.2, build 28.2.2-0ubuntu1~24.04.1
2. Instalar Docker (si no está instalado)
# Actualizar el sistema
sudo apt update

# Instalar Docker
sudo apt install docker.io -y

# Iniciar y habilitar Docker
sudo systemctl start docker
sudo systemctl enable docker

# Verificar estado
sudo systemctl status docker
3. Agregar usuario al grupo Docker

Esto permite usar Docker sin sudo:

# Agregar usuario al grupo
sudo usermod -aG docker $USER

# Aplicar cambios
newgrp docker

# Verificar grupos
groups
Debes ver en la salida: dtecno adm cdrom sudo dip plugdev users lpadmin docker
4. Crear carpeta para n8n
mkdir -p ~/.n8n

Explicación:

  • mkdir = crear carpeta
  • -p = crea carpetas intermedias si faltan
  • ~ = tu home (/home/dtecno)
  • .n8n = carpeta oculta
5. Ejecutar n8n
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n
Primera vez: Descargará la imagen (~500-700 MB). Tardará 2-5 minutos.
Acceder: Abre tu navegador en http://localhost:5678

🎮 Comandos Esenciales

Gestión de Docker

Ver estado de Docker
sudo systemctl status docker
Iniciar Docker
sudo systemctl start docker
Detener Docker
sudo systemctl stop docker

Gestión de n8n

Iniciar n8n
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n
Detener n8n

Opción 1: En la terminal presiona Ctrl + C

Opción 2:

docker stop n8n
Ver contenedores activos
docker ps
Ver todos los contenedores
docker ps -a
Ver imágenes descargadas
docker images

📊 Mapeo de Puertos

El parámetro -p crea un "túnel" entre tu computadora y el contenedor.

Sintaxis: -p PUERTO_HOST:PUERTO_CONTENEDOR

Flujo de Datos

🌐 Navegador
localhost:5678
🐳 Docker
n8n:5678

Ejemplos de mapeo alternativo

# Acceder en puerto 8080
-p 8080:5678

# Acceder en puerto 3000
-p 3000:5678

💾 Datos Persistentes

Todos tus workflows y configuraciones se guardan en:

~/.n8n
Ubicación completa: /home/dtecno/.n8n

Contenido de la carpeta:

Crear Backup

tar -czf n8n-backup-$(date +%Y%m%d).tar.gz ~/.n8n

Restaurar Backup

tar -xzf n8n-backup-20241210.tar.gz -C ~/

🔧 Configuración Avanzada

Para producción, es mejor usar Docker Compose:

version: '3.8'

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=tupassword
      - N8N_HOST=localhost
      - N8N_PORT=5678
    volumes:
      - ~/.n8n:/home/node/.n8n

Comandos Docker Compose

Iniciar
docker-compose up -d
Ver logs
docker-compose logs -f
Detener
docker-compose down

🐛 Solución de Problemas

n8n no arranca

1. Verificar que Docker esté corriendo:

sudo systemctl status docker

2. Ver logs del contenedor:

docker logs n8n

3. Verificar puertos en uso:

sudo lsof -i :5678
Puerto 5678 ocupado