About cloudflare-laliga-bypass
README.md
View on GitHubMonitor de Estado de Cloudflare para Bloqueos de LaLiga
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.
Contexto
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.
Funcionamiento
- 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
Beneficios
- 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
Requisitos
- Python 3.x
- uv (gestor de paquetes, recomendado)
- Docker y Docker Compose (opcional, para ejecutar en contenedor)
Instalación de Python
Windows
- 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"
macOS
- Visita Python.org
- Descarga la última versión de Python 3.x
- Ejecuta el instalador .pkg
- Sigue las instrucciones del instalador
Linux
La mayoría de distribuciones Linux ya incluyen Python. Si no está instalado:
Ubuntu/Debian:
sudo apt update
sudo apt install python3 python3-pip
Fedora:
sudo dnf install python3 python3-pip
Arch Linux:
sudo pacman -S python python-pip
Instalación de Docker (Opcional)
Windows
- Descarga Docker Desktop para Windows
- Ejecuta el instalador
- Reinicia tu computadora cuando se te solicite
- Abre Docker Desktop y espera a que inicie
macOS
- Descarga Docker Desktop para Mac
- Arrastra Docker.app a la carpeta de Aplicaciones
- Abre Docker desde Aplicaciones
- Sigue las instrucciones de configuración
Linux
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 $USER
Fedora:
sudo dnf install docker docker-compose
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
Arch Linux:
sudo pacman -S docker docker-compose
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
Requisitos de Implementación
Ubicación del Monitoreo
- 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
Configuración de n8n
- 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
Diagrama de Funcionamiento
[Script Monitor] ---(ISP bloqueado)---> [check.aitorroma.com] ---(Cloudflare siempre activo)
|
|--(Notificación)---> [n8n Server] ---(Sin Cloudflare)---> [Gestión de Cloudflare]
Configuración
- 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_DOMINIO
Nota: Puedes usar config.example.ini como plantilla.
Configuración del Workflow en n8n
Importar el Workflow
- 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"
Configurar Credenciales de Cloudflare
- 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
Activar el Workflow
- 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
Instalación de Dependencias
Linux y macOS
# Instalar uv si no está instalado
pip install uv
# Instalar dependencias
uv pip install -r requirements.txt
Windows
Ejecuta el archivo build.bat que instalará automáticamente uv si no está presente y todas las dependencias necesarias.
Ejecución
Opción 1: Docker (Recomendado)
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 down
Ventajas 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
Opción 2: Python Nativo
Linux y macOS
# Ejecutar directamente con Python
python cloudflare.py
# O usando uv
uv run python cloudflare.py
Windows
Tienes 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
Compilar Ejecutable (Windows)
- 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
Notas
- 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
Agradecimientos
Un agradecimiento especial a Oriol Rius por su valiosa ayuda en la compilación para Windows en la creación del archivo cloudflare.spec.
](https://tva1.sinaimg.cn/large/008i3skNgy1gq8sv4q7cqj303k03kweo.jpg)