Skip to content

Latest commit

 

History

History
339 lines (250 loc) · 7.8 KB

File metadata and controls

339 lines (250 loc) · 7.8 KB

Guía de Docker para Cloudflare LaLiga Bypass

Esta guía proporciona instrucciones detalladas para ejecutar el monitor de Cloudflare usando Docker.

⚠️ Nota Importante sobre DNS

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.

Requisitos Previos

  • 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)

Inicio Rápido

  1. Clonar el repositorio (si aún no lo has hecho):
git clone <tu-repositorio>
cd cloudflare-laliga-bypass
  1. Configurar el archivo config.ini:
cp config.example.ini config.ini
nano config.ini  # o usa tu editor preferido

Edita el archivo con tus valores:

[settings]
webhook_url = https://tu-webhook-url.com/webhook/tu-id
domain_to_report = tudominio.com
  1. Construir y ejecutar el contenedor:
docker-compose up -d
  1. Verificar que está funcionando:
docker-compose logs -f

Deberías ver mensajes indicando que el monitoreo ha iniciado.

Comandos Útiles

Ver logs en tiempo real

docker-compose logs -f

Ver logs de las últimas 100 líneas

docker-compose logs --tail=100

Detener el contenedor

docker-compose down

Reiniciar el contenedor

docker-compose restart

Reconstruir el contenedor (después de cambios en el código)

docker-compose up -d --build

Ver el estado del contenedor

docker-compose ps

Entrar al contenedor (para debugging)

docker-compose exec cloudflare-monitor /bin/bash

Configuración Avanzada

DNS de Telefónica

El 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.

⚠️ IMPORTANTE: NO cambies estos DNS. Los bloqueos de LaLiga se implementan a nivel de DNS por parte de Telefónica. Si usas otros DNS (como Google DNS 8.8.8.8 o Cloudflare 1.1.1.1), podrás acceder a las webs bloqueadas y el script NO detectará los bloqueos, haciendo que el sistema no funcione.

El script necesita experimentar el mismo bloqueo que los usuarios de Telefónica para poder detectarlo y gestionar Cloudflare automáticamente.

Cambiar la zona horaria

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 horaria

Usar variables de entorno en lugar de config.ini

Puedes 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.com

Y 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'])

Ejecutar múltiples monitores

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

Despliegue en Servidor

Usando Docker Compose

  1. Copia los archivos necesarios a tu servidor:
scp -r cloudflare-laliga-bypass/ usuario@servidor:/ruta/destino/
  1. Conéctate al servidor:
ssh usuario@servidor
cd /ruta/destino/cloudflare-laliga-bypass
  1. Configura y ejecuta:
nano config.ini  # Configura tus valores
docker-compose up -d

Configurar como servicio systemd (opcional)

Crea 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.target

Luego habilita y arranca el servicio:

sudo systemctl enable cloudflare-monitor
sudo systemctl start cloudflare-monitor

Solución de Problemas

El contenedor no inicia

  1. Verifica los logs:
docker-compose logs
  1. Verifica que el archivo config.ini existe y tiene el formato correcto:
cat config.ini

El contenedor se reinicia constantemente

Esto puede indicar un error en el script. Verifica los logs:

docker-compose logs --tail=50

No se pueden enviar webhooks

  1. Verifica que la URL del webhook es correcta en config.ini
  2. Verifica que el contenedor tiene acceso a Internet:
docker-compose exec cloudflare-monitor ping -c 3 google.com

Verificar configuración de DNS

Para 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.com

Deberías ver los DNS 80.58.61.250 y 80.58.61.254 en el archivo resolv.conf.

Cambios en config.ini no se reflejan

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 restart

Actualización

Para 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 --build

Limpieza

Para 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

Seguridad

Buenas prácticas

  1. No incluyas config.ini en el control de versiones: El archivo .gitignore ya lo excluye, pero asegúrate de no subirlo accidentalmente.

  2. 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
  1. Limita recursos del contenedor:
services:
  cloudflare-monitor:
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 256M

Monitoreo y Logs

Configurar rotación de logs

Para 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"

Integración con sistemas de monitoreo

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

Soporte

Si encuentras problemas con Docker, por favor:

  1. Revisa esta guía de solución de problemas
  2. Verifica los logs del contenedor
  3. Abre un issue en el repositorio con los logs relevantes