Esta guía proporciona instrucciones detalladas para ejecutar el monitor de Cloudflare usando Docker.
El contenedor está preconfigurado con los DNS de Telefónica (80.58.61.250 y 80.58.61.254). NO los cambies. Los bloqueos de LaLiga funcionan a nivel de DNS, y si usas DNS alternativos (Google, Cloudflare, etc.), el script no podrá detectar los bloqueos porque tú mismo los estarás saltando.
- Docker instalado (versión 20.10 o superior)
- Docker Compose instalado (versión 1.29 o superior)
- Conexión a Internet a través de Telefónica u O2 (ISPs afectados por los bloqueos)
- Clonar el repositorio (si aún no lo has hecho):
git clone <tu-repositorio>
cd cloudflare-laliga-bypass- Configurar el archivo config.ini:
cp config.example.ini config.ini
nano config.ini # o usa tu editor preferidoEdita el archivo con tus valores:
[settings]
webhook_url = https://tu-webhook-url.com/webhook/tu-id
domain_to_report = tudominio.com- Construir y ejecutar el contenedor:
docker-compose up -d- Verificar que está funcionando:
docker-compose logs -fDeberías ver mensajes indicando que el monitoreo ha iniciado.
docker-compose logs -fdocker-compose logs --tail=100docker-compose downdocker-compose restartdocker-compose up -d --builddocker-compose psdocker-compose exec cloudflare-monitor /bin/bashEl contenedor está configurado por defecto para usar los DNS de Telefónica (80.58.61.250 y 80.58.61.254). Esto es CRÍTICO para el correcto funcionamiento del sistema.
El script necesita experimentar el mismo bloqueo que los usuarios de Telefónica para poder detectarlo y gestionar Cloudflare automáticamente.
Por defecto, el contenedor usa la zona horaria Europe/Madrid. Para cambiarla, edita docker-compose.yml:
environment:
- TZ=America/New_York # Cambia a tu zona horariaPuedes configurar el webhook y el dominio usando variables de entorno. Modifica docker-compose.yml:
environment:
- TZ=Europe/Madrid
- WEBHOOK_URL=https://tu-webhook-url.com/webhook/tu-id
- DOMAIN_TO_REPORT=tudominio.comY actualiza cloudflare.py para leer estas variables:
import os
webhook_url = os.getenv('WEBHOOK_URL', config['settings']['webhook_url'])
domain_to_report = os.getenv('DOMAIN_TO_REPORT', config['settings']['domain_to_report'])Si necesitas monitorear múltiples dominios, puedes crear múltiples servicios en docker-compose.yml:
version: '3.8'
services:
monitor-domain1:
build: .
container_name: cloudflare-monitor-domain1
restart: unless-stopped
volumes:
- ./config-domain1.ini:/app/config.ini:ro
environment:
- TZ=Europe/Madrid
monitor-domain2:
build: .
container_name: cloudflare-monitor-domain2
restart: unless-stopped
volumes:
- ./config-domain2.ini:/app/config.ini:ro
environment:
- TZ=Europe/Madrid- Copia los archivos necesarios a tu servidor:
scp -r cloudflare-laliga-bypass/ usuario@servidor:/ruta/destino/- Conéctate al servidor:
ssh usuario@servidor
cd /ruta/destino/cloudflare-laliga-bypass- Configura y ejecuta:
nano config.ini # Configura tus valores
docker-compose up -dCrea un archivo /etc/systemd/system/cloudflare-monitor.service:
[Unit]
Description=Cloudflare LaLiga Bypass Monitor
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/ruta/a/cloudflare-laliga-bypass
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.targetLuego habilita y arranca el servicio:
sudo systemctl enable cloudflare-monitor
sudo systemctl start cloudflare-monitor- Verifica los logs:
docker-compose logs- Verifica que el archivo
config.iniexiste y tiene el formato correcto:
cat config.iniEsto puede indicar un error en el script. Verifica los logs:
docker-compose logs --tail=50- Verifica que la URL del webhook es correcta en
config.ini - Verifica que el contenedor tiene acceso a Internet:
docker-compose exec cloudflare-monitor ping -c 3 google.comPara verificar que el contenedor está usando los DNS de Telefónica correctamente:
# Ver la configuración de DNS del contenedor
docker-compose exec cloudflare-monitor cat /etc/resolv.conf
# Hacer una consulta DNS de prueba
docker-compose exec cloudflare-monitor nslookup check.aitorroma.comDeberías ver los DNS 80.58.61.250 y 80.58.61.254 en el archivo resolv.conf.
El archivo config.ini se monta como volumen, por lo que los cambios deberían reflejarse inmediatamente. Si no es así, reinicia el contenedor:
docker-compose restartPara actualizar a la última versión:
# Detener el contenedor actual
docker-compose down
# Obtener los últimos cambios
git pull
# Reconstruir y ejecutar
docker-compose up -d --buildPara eliminar completamente el contenedor y las imágenes:
# Detener y eliminar contenedores
docker-compose down
# Eliminar la imagen
docker rmi cloudflare-laliga-bypass_cloudflare-monitor
# Eliminar volúmenes (si los hay)
docker volume prune-
No incluyas config.ini en el control de versiones: El archivo
.gitignoreya lo excluye, pero asegúrate de no subirlo accidentalmente. -
Usa secrets de Docker (para producción):
services:
cloudflare-monitor:
secrets:
- webhook_url
environment:
- WEBHOOK_URL_FILE=/run/secrets/webhook_url
secrets:
webhook_url:
file: ./webhook_url.txt- Limita recursos del contenedor:
services:
cloudflare-monitor:
deploy:
resources:
limits:
cpus: '0.5'
memory: 256MPara evitar que los logs crezcan indefinidamente, configura la rotación en docker-compose.yml:
services:
cloudflare-monitor:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"Puedes integrar los logs con sistemas como:
- Prometheus: Usando exporters de Docker
- Grafana: Para visualización de métricas
- ELK Stack: Para análisis de logs centralizado
Si encuentras problemas con Docker, por favor:
- Revisa esta guía de solución de problemas
- Verifica los logs del contenedor
- Abre un issue en el repositorio con los logs relevantes