Aprende Inteligencia Artificial y Acelera tu Futuro

Descubre cómo la IA puede multiplicar tu productividad y cambiar tu forma de trabajar.

Acceder al Curso Ahora

🛠️ Cómo instalar n8n en Debian 12 usando Docker Compose y una imagen Debian

Instalar N8N en Debian 12 con Docker y Ngrok para webhooks HTTPS

¿Buscas una forma efectiva de instalar N8N en Debian usando Docker y asegurarte de que todo funcione correctamente desde el primer intento, incluso con webhooks HTTPS? Este tutorial es para ti. Te explico paso a paso cómo crear una imagen personalizada en Docker sobre una máquina Debian y cómo usar ngrok para exponer tu instancia de N8N de forma segura. ¡Todo listo para que funcione con Telegram, sin necesidad de dominios ni Nginx!


¿Por qué usar Docker para instalar N8N en Debian?

Con Docker puedes aislar la instalación, evitar conflictos con el sistema base y facilitar el mantenimiento. Además, al usar ngrok, puedes recibir webhooks de servicios como Telegram sin necesidad de dominios ni configuración compleja.


Paso 1: Preparar el entorno

ssh usuario@192.168.1.202
sudo apt update && sudo apt upgrade

Paso 2: Instalar Docker

sudo apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER
su - $USER
docker run hello-world

Paso 3: Crear el entorno para N8N

mkdir -p ~/Docker/n8n-debian
cd ~/Docker/n8n-debian

Paso 4: Dockerfile personalizado para N8N

FROM debian:12

RUN apt-get update && apt-get install -y \
    curl \
    gnupg \
    git \
    build-essential \
    python3 \
    libreoffice \
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
    apt-get install -y nodejs && \
    npm install -g n8n

ENV TZ=Europe/Madrid

CMD ["n8n"]

Paso 5: Archivo docker-compose.yml

version: '3.7'

services:
  n8n:
    build: .
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Europe/Madrid
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=admin123
      - WEBHOOK_URL=${WEBHOOK_URL}
    volumes:
      - ./n8n-data:/home/node/.n8n

Paso 6: Instalar Ngrok

wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-amd64.tgz
tar -xvzf ngrok-v3-stable-linux-amd64.tgz
sudo mv ngrok /usr/local/bin/
ngrok version

Paso 7: Crear cuenta en Ngrok y activar autenticación 2FA

  1. Entra en https://ngrok.com y crea una cuenta gratuita.
  2. Activa la verificación en dos pasos (2FA) desde el panel https://dashboard.ngrok.com/settings/security
  3. Escanea el código QR con la app Google Authenticator o Authy.
  4. Valida el código temporal para activar 2FA.
  5. Copia tu authtoken desde https://dashboard.ngrok.com/get-started/your-authtoken
  6. Configúralo en tu sistema:
ngrok config add-authtoken TU_AUTHTOKEN

Paso 8: Script start-ngrok.sh

Crea un archivo start.sh con este contenido:

#!/bin/bash
set -e

echo "🔁 Deteniendo cualquier sesión activa de ngrok..."
pkill ngrok 2>/dev/null || true

echo "🚀 Iniciando ngrok..."
ngrok http http://localhost:5678 > /dev/null &

echo "⏳ Esperando a que ngrok esté listo..."
for i in {1..10}; do
    NGROK_URL=$(curl -s http://localhost:4040/api/tunnels | grep -o '"public_url":"https://[^"]*' | cut -d'"' -f4)
    if [[ $NGROK_URL == https://* ]]; then
        break
    fi
    sleep 1
done

if [[ -z "$NGROK_URL" ]]; then
    echo "❌ No se ha podido obtener la URL de ngrok."
    exit 1
fi

echo "✅ Ngrok está activo en: $NGROK_URL"
echo "WEBHOOK_URL=$NGROK_URL" > .env
docker compose up -d

Dale permisos:

chmod +x start.sh

Paso 9: Construcción y ejecución

Primero, lanza ngrok:

./start.sh

Paso 10: Acceso a N8N y configuración inicial

Abre tu navegador y accede a la URL que ngrok haya generado, por ejemplo:

https://e43d-188-84-0-30.ngrok-free.app

Inicia sesión con:

  • Usuario: admin
  • Contraseña: admin123

Paso 11: Parar y reiniciar contenedores

Para apagar el contenedor:

docker compose down

Para volver a levantarlo (después de ejecutar start-ngrok.sh):

docker compose up -d

🎉 Conclusión

Ahora ya tienes N8N funcionando sobre Debian y accesible desde cualquier parte del mundo con HTTPS gracias a ngrok. ¡Ideal para recibir webhooks desde Telegram, Discord o cualquier API externa sin necesidad de dominios ni certificados!

✨ Si te ha gustado este tutorial, dale a «Me gusta», suscríbete y comenta qué automatización te gustaría que hiciera en el próximo vídeo.

Tutoriales Más Vistos

Posts Más Vistos