N8N con Dominio Personalizado usando Traefik

En esta guía veremos cómo instalar N8N usando nuestro propio dominio personalizado de forma super sencilla con certificado SSL de LetsEncrypt usando Traefik como proxy inverso.

La instalación es muy sencilla porque la he simplificado al máximo. Vamos a ver paso a paso cómo hacerlo.

Instalación de Docker

Para comenzar, necesitamos un servidor VPS. Personalmente, recomiendo Contabo por su excelente relación calidad-precio.

Una vez tengamos nuestro servidor con Ubuntu 20.04 o superior, instalamos Docker:

/bin/bash -c "$(curl -fsSL https://get.docker.com)"
systemctl enable docker
systemctl start docker

Instalación de Traefik

Usaremos un repositorio que ya he preparado para la ocasión:

cd /opt
git clone https://github.com/aitorroma/docker-traefik traefik
cd traefik
chmod 600 acme.json
nano .env

Configuración del archivo .env

Debemos ajustar dos variables importantes en el fichero .env:

  1. ACME_EMAIL: Dirección de correo electrónico para el registro ACME.
    • Valor predeterminado: ‘webmaster@my.domain.tld’
    • Debes usar tu correo electrónico personal
  2. DOCKER_DOMAIN: Dominio base para las reglas de la interfaz.
    • Valor predeterminado: ‘my.domain.tld’
    • Debes usar tu dominio raíz para los subdominios

Levantar Traefik

cd /opt/traefik 
docker compose up -d

Este comando iniciará un contenedor escuchando en los puertos 80 y 443, listo para funcionar como proxy inverso.

Instalación de N8N usando Traefik

Una vez desplegado Traefik, seguimos estos pasos:

cd /opt
git clone https://github.com/aitorroma/n8n-traefik.git n8n 
cd n8n
nano .env

Configuración de N8N

Ajustamos las variables en el fichero .env:

N8N_HOST=n8n.hiveagile.club

## N8N Version
VERSION=latest

## N8N Config
VUE_APP_URL_BASE_API=https://${N8N_HOST}
N8N_PROTOCOL=https
WEBHOOK_URL=https://${N8N_HOST}

EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=336
GENERIC_TIMEZONE=Europe/Madrid
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true

#### SMTP CONFIG #####
N8N_EMAIL_MODE=smtp
N8N_SMTP_HOST=smtp.eu.mailgun.org
N8N_SMTP_PORT=465
N8N_SMTP_USER=user@domain.com
N8N_SMTP_PASS=lapassword
N8N_SMTP_SSL=true
N8N_SMTP_SENDER=user@domain.com

Importante: En N8N_HOST debes especificar la URL que usarás para acceder a tu instancia de N8N. Asegúrate de que el registro DNS A apunte a tu servidor.

Las demás variables pueden dejarse como están, excepto la sección SMTP CONFIG que debes configurar para recibir correos electrónicos.

Iniciar N8N

cd /opt/n8n 
docker-compose up -d
chmod 777 ./docker-volumes/n8n -Rf
docker compose restart

Este comando levantará la instancia de N8N en el subdominio especificado, con soporte SSL incluido.

Actualizaciones Automáticas

Puedes usar Watchtower para actualizar N8N y todos los contenedores marcados con la etiqueta latest:

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower -i 30

¿Necesitas más ayuda?

Estás invitado a mi canal de Telegram, donde publico más soluciones como esta:

Únete a mi canal de Telegram

Conclusión

Con estos pasos, tendrás una instancia de N8N funcionando con tu propio dominio, certificado SSL y actualizaciones automáticas. Esta configuración es ideal para entornos de producción y te permitirá ejecutar tus flujos de trabajo de automatización de forma segura y profesional.

¿Te ha resultado útil esta guía? ¿Tienes alguna duda sobre la instalación? ¡Déjame un comentario y te ayudaré!