Worker de Cloudflare para actuar como proxy de n8n.
Este servicio te permite:
- Proteger tu instancia de n8n contra ataques DDoS
- Ocultar tu instancia de n8n al público
- Añadir limitación de tasa (rate limiting)
- Implementar deduplicación de peticiones
- Gestionar peticiones mediante colas (queues)
- Configurar mecanismos de reintentos automáticos
- Plan de Cloudflare Workers (Recomendado: Workers Paid):
- Para un funcionamiento óptimo y fiable de este worker en producción, especialmente si utilizas las funcionalidades de deduplicación (KV Namespaces) y colas de mensajes (Cloudflare Queues para DLQ), se recomienda encarecidamente el plan Workers Paid de Cloudflare (actualmente desde 5 USD/mes).
- El plan gratuito tiene limitaciones en tiempo de CPU, número de KV Namespaces, y la robustez de las Queues que podrían afectar el rendimiento y la disponibilidad de estas características.
- Puedes gestionar tu plan de Workers navegando a tu cuenta de Cloudflare, y luego a la sección "Workers & Pages" > "Planes" (o "Compute" > "Workers" > "Planes" según la interfaz de tu dashboard).
- Un dominio en Cloudflare.
Petición del cliente -> Cloudflare Worker -> n8n
El proyecto incluye un script de despliegue automatizado que facilita todo el proceso:
./deploy.sh
Este script te guiará a través de los siguientes pasos:
- Verificación de requisitos: Comprueba que tienes instaladas todas las dependencias necesarias (jq, pnpm).
- Configuración del entorno: Te permite elegir entre desplegar en producción o desarrollo.
- Configuración del dominio: Configura automáticamente las rutas en
wrangler.toml
para tu dominio personalizado. - Configuración de la URL de n8n: Establece la URL de tu instancia n8n a la que se reenviarán las peticiones.
- Gestión de KV Namespaces: Crea o verifica el KV Namespace necesario para la deduplicación.
- Gestión de Queues: Crea o verifica las colas necesarias para el procesamiento de mensajes.
- Despliegue: Despliega el worker a Cloudflare con la configuración establecida.
Ventajas del script de despliegue:
- Manejo robusto de errores
- Configuración automática de dominios personalizados sin comodines (compatible con Cloudflare)
- Creación y verificación automática de recursos (KV Namespaces, Queues)
- Backups automáticos de la configuración antes de cada modificación
Si prefieres desplegar manualmente, asegúrate de configurar correctamente el archivo wrangler.toml
y ejecuta:
wrangler deploy -e production
Asegúrate de que las rutas (routes
) en tu wrangler.toml
estén correctamente configuradas para apuntar a tu dominio. Importante: Para dominios personalizados, no uses comodines ni rutas específicas como /webhook/*
ya que Cloudflare no los permite en dominios personalizados.
Puedes ejecutar el worker localmente para pruebas usando:
wrangler dev
Esto iniciará un servidor local que simula el entorno de Cloudflare Workers. Necesitarás configurar las variables de entorno y bindings necesarios en tu wrangler.toml
para el entorno de desarrollo si difieren de los de producción, o usar variables de entorno locales.
ENVIRONMENT
: Define el entorno (ej. "dev", "production").PROXY_DOMAIN
: La URL base de tu instancia de n8n a la que el worker reenviará las peticiones.DEDUPLICATION_ENABLED
:true
ofalse
para habilitar/deshabilitar la deduplicación.DEDUPLICATION_TTL
: (Opcional) Tiempo en segundos para la expiración de las claves de deduplicación. Por defecto 60.RATE_LIMITING_ENABLED
:true
ofalse
para habilitar/deshabilitar la limitación de tasa.
El worker expone principalmente dos tipos de endpoints basados en las rutas configuradas en wrangler.toml
:
/webhook/*
: Endpoint principal para recibir webhooks y reenviarlos a n8n. Este endpoint utiliza la cola y puede tener deduplicación y limitación de tasa si están habilitadas./webhook-test/*
: Endpoint para pruebas directas sin pasar por la cola. Útil para verificar la conectividad y la lógica del proxy directamente.
Ambos endpoints soportan los métodos HTTP: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD.