Este proyecto proporciona una automatización para gestionar los bloqueos de Cloudflare durante las transmisiones de partidos de fútbol de LaLiga. El sistema monitorea automáticamente el estado de tu sitio web y gestiona la activación/desactivación de Cloudflare según sea necesario.
En España, los proveedores de servicios de Internet (ISPs) como Telefónica y O2 están implementando bloqueos a Cloudflare como medida para combatir la transmisión ilegal de contenido deportivo, especialmente durante los partidos de fútbol. Sin embargo, esta medida está teniendo efectos colaterales no deseados:
- Afecta a sitios web legítimos de comercio electrónico
- Impacta a webs corporativas y blogs personales
- Interrumpe servicios que no tienen relación alguna con la piratería
Esta situación ha creado la necesidad de desarrollar soluciones que permitan a los sitios web legítimos mantener su servicio activo durante los períodos de bloqueo.
- Monitoreo Continuo: El script monitorea check.aitorroma.com para verificar si Cloudflare está activo.
- Detección de Bloqueos: Cuando LaLiga implementa bloqueos durante partidos de fútbol, el sistema lo detecta automáticamente.
- Gestión Automática:
- Desactiva automáticamente Cloudflare cuando se detectan bloqueos
- Reactiva Cloudflare cuando el sitio vuelve a estar disponible
- Notificaciones: Utiliza webhooks para mantener informado sobre los cambios de estado
- Minimiza el tiempo de inactividad durante las transmisiones de fútbol
- Elimina la necesidad de gestionar manualmente los bloqueos de Cloudflare
- Proporciona una solución automatizada para mantener el servicio disponible
- Asegura la continuidad del servicio para sitios web legítimos
- Python 3.x
- uv (gestor de paquetes, recomendado)
- Docker y Docker Compose (opcional, para ejecutar en contenedor)
- Visita Python.org
- Descarga la última versión de Python 3.x (64-bit)
- Ejecuta el instalador
- ¡IMPORTANTE! Marca la casilla "Add Python to PATH" durante la instalación
- Haz clic en "Install Now"
- Visita Python.org
- Descarga la última versión de Python 3.x
- Ejecuta el instalador .pkg
- Sigue las instrucciones del instalador
La mayoría de distribuciones Linux ya incluyen Python. Si no está instalado:
Ubuntu/Debian:
sudo apt update
sudo apt install python3 python3-pipFedora:
sudo dnf install python3 python3-pipArch Linux:
sudo pacman -S python python-pip- Descarga Docker Desktop para Windows
- Ejecuta el instalador
- Reinicia tu computadora cuando se te solicite
- Abre Docker Desktop y espera a que inicie
- Descarga Docker Desktop para Mac
- Arrastra Docker.app a la carpeta de Aplicaciones
- Abre Docker desde Aplicaciones
- Sigue las instrucciones de configuración
Ubuntu/Debian:
# Actualizar paquetes
sudo apt update
# Instalar dependencias
sudo apt install apt-transport-https ca-certificates curl software-properties-common
# Añadir repositorio de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/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/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Instalar Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Añadir usuario al grupo docker (opcional, para ejecutar sin sudo)
sudo usermod -aG docker $USERFedora:
sudo dnf install docker docker-compose
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USERArch Linux:
sudo pacman -S docker docker-compose
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER- El script debe ejecutarse desde un proveedor de Internet afectado por los bloqueos (como Telefónica u O2)
- IMPORTANTE: Debes usar los DNS del ISP (Telefónica: 80.58.61.250 y 80.58.61.254). Si usas DNS alternativos (Google, Cloudflare, etc.), saltarás el bloqueo y el script NO detectará cuando hay bloqueos activos
- La web de monitoreo (check.aitorroma.com) se mantiene siempre activa con Cloudflare
- Este diseño permite detectar de forma fiable cuando los bloqueos están activos en tu red
- El servidor de n8n NO debe estar detrás de Cloudflare
- Esto es crucial para que pueda recibir y procesar las notificaciones incluso durante los bloqueos
- Se recomienda hospedar n8n en un servidor con acceso directo a Internet
[Script Monitor] ---(ISP bloqueado)---> [check.aitorroma.com] ---(Cloudflare siempre activo)
|
|--(Notificación)---> [n8n Server] ---(Sin Cloudflare)---> [Gestión de Cloudflare]
- Crea un archivo
config.inien el mismo directorio que el script con el siguiente contenido:
[settings]
webhook_url = TU_URL_WEBHOOK
domain_to_report = TU_DOMINIONota: Puedes usar config.example.ini como plantilla.
- En tu instancia de n8n, ve al menú lateral y haz clic en "Workflows"
- Haz clic en el botón "Import from File"
- Navega hasta el directorio
n8n-workflowde este proyecto - Selecciona el archivo del workflow y haz clic en "Import"
- Una vez importado el workflow, haz clic en el nodo de Configuración
- En la pestaña de configuración del nodo, verás dos campos importantes:
- Email Address: Introduce el correo electrónico asociado a tu cuenta de Cloudflare
- Global API Key: Introduce tu Global API Key de Cloudflare
Para obtener tu Global API Key:
- Inicia sesión en Cloudflare
- Ve a "Mi Perfil" (icono de usuario en la esquina superior derecha)
- Navega a la sección "API Tokens"
- Desplázate hasta encontrar "Global API Key"
- Haz clic en "Ver" y copia la clave
- Una vez configuradas las credenciales, haz clic en el botón "Save" para guardar los cambios
- Activa el workflow usando el switch "Active" en la parte superior derecha
- Haz clic en "Save" nuevamente para guardar el workflow completo
- Abre el nodo webhook y copia la URL de producción en config.ini
# Instalar uv si no está instalado
pip install uv
# Instalar dependencias
uv pip install -r requirements.txtEjecuta el archivo build.bat que instalará automáticamente uv si no está presente y todas las dependencias necesarias.
La forma más sencilla de ejecutar el proyecto es usando Docker:
# Construir y ejecutar el contenedor
docker-compose up -d
# Ver los logs
docker-compose logs -f
# Detener el contenedor
docker-compose downVentajas de usar Docker:
- No necesitas instalar Python ni dependencias
- El contenedor se reinicia automáticamente si falla
- Fácil de desplegar en cualquier servidor
- Aislamiento completo del sistema host
- Preconfigurado con DNS de Telefónica (80.58.61.250 y 80.58.61.254) - esencial para detectar bloqueos correctamente
📖 Para más información sobre Docker, consulta DOCKER.md que incluye:
- Configuración avanzada
- Despliegue en servidor
- Solución de problemas
- Monitoreo y logs
# Ejecutar directamente con Python
python cloudflare.py
# O usando uv
uv run python cloudflare.pyTienes dos opciones:
- Ejecutar directamente con Python (igual que en Linux/macOS)
- Usar el ejecutable compilado (cloudflare.exe) que se encuentra en la carpeta
distdespués de ejecutarbuild.bat
- Ejecuta
build.bat - El ejecutable se creará en la carpeta
dist
Si recibes advertencias del antivirus, puedes:
- Añadir una exclusión en Windows Defender para la carpeta
disto el archivocloudflare.exe - Usar el comando alternativo que se muestra al final de la ejecución de
build.bat
- El script requiere conexión a Internet para funcionar
- Asegúrate de tener los permisos necesarios para escribir en el directorio donde se ejecuta el script
- En caso de problemas con el ejecutable en Windows, intenta ejecutar el script directamente con Python
Un agradecimiento especial a Oriol Rius por su valiosa ayuda en la compilación para Windows en la creación del archivo cloudflare.spec.
