▸ Gana dineroPaso 1 gratis

Avisa al negocio antes de que su web caída le cueste clientes, y cóbrale cada mes por vigilarla

Una web puede caerse un sábado o quedarse sin candado porque nadie renovó el certificado, y el dueño se entera el lunes, cuando ya ha perdido reservas. Empiezas con un script que vigila webs cada minuto y te dice cuántos días le quedan al certificado; luego montas Uptime Kuma con avisos al móvil y una página de estado para cada cliente, y lo vendes como cuota mensual.

El negocio en 30 segundos

Los certificados que ponen el candado a una web duraban hasta 398 días, y el CA/Browser Forum aprobó bajarlos poco a poco hasta 47 días entre marzo de 2026 y marzo de 2029. Cada renovación que falle es una web con el aviso de «No seguro», y muchos negocios no tienen a nadie mirando.

Lo que enseñas
Le enseñas al dueño la página de estado de su web: «Este mes estuvo caída 3 horas el sábado por la noche. Con esto te habría llegado un aviso al móvil a los 2 minutos».
Dónde están los clientes
Negocios que viven de reservas o pedidos por la web: alojamientos, restaurantes con reservas, clínicas con cita online, tiendas online pequeñas. Y todos a los que ya les hiciste la web.
Lo que recibe el cliente
Avisos al instante cuando la web falla, una página de estado y un informe mensual.
Se cobra
Se cobra entre 15 y 40 € al mes por web vigilada, más si incluye arreglar las caídas (orientativo)

Los precios son orientativos: lo que se suele cobrar en España, no lo que vas a ganar. Depende de tu zona, tu oferta y de cuántos clientes contactes.

Al terminar tendrás

  • Un script que vigila webs cada minuto y avisa si el certificado está a punto de caducar.
  • Uptime Kuma funcionando, con avisos al móvil por Telegram.
  • Una página de estado para cada cliente con el historial de su web.
  • Un servicio con cuota mensual y la forma de ofrecerlo.

En esta misión · 8 pasos · 1 h 45 min

  1. 1Vigila tus primeras webs5 min
  2. 2El mercado: por qué ahora10 min
  3. 3Monta Uptime Kuma20 min
  4. 4Avisos al móvil por Telegram15 min
  5. 5Una página de estado para cada cliente10 min
  6. 6Déjalo encendido 24/720 min
  7. 7Ponle precio y ofrécelo15 min
  8. 8Repite y escala10 min

Lo que vas a usar

Así se ve · capturas oficiales

1 h 45 min €0 en tu ordenador · unos 4-6 €/mes si lo subes a un servidor 4 GB RAM · sin GPU macOS · Windows

Antes de empezar

  • Saber abrir la terminal y copiar y pegar órdenes.
  1. 1Paso 01 de 08 · ~5 min

    Vigila tus primeras webs

    Premio en 5 minutos: el estado de 3 webs en tu terminal.

    1. 1

      Abre la terminal. En Mac: pulsa Cmd+Espacio, escribe Terminal y pulsa Enter. En Windows: pulsa la tecla Windows, escribe PowerShell y pulsa Enter.

      TerminalmacOS
      $brew install [email protected]
      TerminalmacOS
      $mkdir ~/vigilancia
      $cd ~/vigilancia
    2. 2

      Crea dentro de esa carpeta un archivo llamado vigila.py, pega esto y guárdalo. Córrelo con las webs que quieras vigilar:

      vigila.py
      1# Vigila webs cada minuto: si responden, cuánto tardan y cuántos días le quedan a su certificado. Solo usa Python.
      2import csv, datetime, socket, ssl, sys, time, urllib.error, urllib.parse, urllib.request
      3
      4WEBS = [w if w.startswith("http") else "https://" + w for w in sys.argv[1:] if not w.startswith("--")] or ["https://www.boe.es"]
      5
      6def dias_certificado(host):
      7 with socket.create_connection((host, 443), timeout=10) as s:
      8 with ssl.create_default_context().wrap_socket(s, server_hostname=host) as t:
      9 return int((ssl.cert_time_to_seconds(t.getpeercert()["notAfter"]) - time.time()) // 86400)
      10
      11def mira(web):
      12 inicio = time.time()
      13 try:
      14 with urllib.request.urlopen(urllib.request.Request(web, headers={"User-Agent": "vigila/1.0"}), timeout=20) as r:
      15 estado = r.status
      16 except urllib.error.HTTPError as e:
      17 estado = e.code
      18 except urllib.error.URLError as e:
      19 return ("CERTIFICADO MAL" if isinstance(e.reason, ssl.SSLError) else "CAÍDA"), 0, "", ""
      20 except Exception:
      21 return "CAÍDA", 0, "", ""
      22 try:
      23 dias = dias_certificado(urllib.parse.urlsplit(web).hostname)
      24 except Exception:
      25 dias = ""
      26 return ("bien" if estado < 400 else f"ERROR {estado}"), round(time.time() - inicio, 1), dias, ""
      27
      28print("Vigilando", len(WEBS), "webs cada minuto. Para salir: Ctrl+C")
      29while True:
      30 hora = datetime.datetime.now().strftime("%H:%M")
      31 with open("vigila.csv", "a", newline="", encoding="utf-8") as f:
      32 for web in WEBS:
      33 estado, segundos, dias, motivo = mira(web)
      34 aviso = f" ⚠ el certificado caduca en {dias} días" if dias != "" and dias < 15 else ""
      35 print(f"{hora} {estado:<15} {segundos:>5} s {web}{aviso} {motivo}")
      36 csv.writer(f).writerow([datetime.datetime.now().isoformat(timespec="minutes"), web, estado, segundos, dias])
      37 if "--una-vez" in sys.argv:
      38 break
      39 time.sleep(60)
      TerminalmacOS
      $python3 vigila.py www.boe.es expired.badssl.com una-web-que-no-existe-123.es

      Así debería verse

      La segunda web tiene a propósito el certificado caducado y la tercera no existe: deberían salir como «CERTIFICADO MAL» y «CAÍDA». Cada minuto escribe otra ronda y la apunta en vigila.csv.

      Truco

      🎉 Si ves una línea por web con su estado, ¡nivel 1 superado! Cambia las de prueba por la tuya y la de un cliente. Para parar: Ctrl+C.

    ¿Tu Mac dice «brew: command not found»? Instala Homebrew una vez

    Homebrew es el instalador de programas que usamos en todas las misiones de Mac. Pega esto en la Terminal (es el comando oficial de brew.sh). Te pedirá la contraseña del Mac: al escribirla no se ve nada, es normal.

    Instala HomebrewmacOS
    $/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

    Al terminar, copia y ejecuta las líneas que salen bajo «Next steps», cierra la Terminal y ábrela de nuevo. Comprueba con brew --version.

    Comprueba que funcionaTienes vigila.csv con las primeras rondas.

    Si algo falla (3)
    Sale «brew: command not found»
    Te falta Homebrew. Instálalo con el comando de su web oficial, brew.sh, cierra la terminal, ábrela otra vez y repite.
    En Windows dice que no reconoce el comando nuevo
    Cierra PowerShell y ábrelo otra vez: la ventana vieja no sabe que acabas de instalar algo. Si lo que no reconoce es winget, actualiza «Instalador de aplicación» desde Microsoft Store.
    Sale «CERTIFICATE_VERIFY_FAILED»
    Tu Python es el de python.org y no tiene los certificados. Abre Aplicaciones › Python 3.x y haz doble clic en «Install Certificates.command», o usa el python3 de Homebrew del paso 1.

    ¿Sigues atascado? Pregunta en la comunidad Avisar de un error en este paso

  2. Lo que desbloqueas

    7 pasos · 4 comandos · 2 errores típicos resueltos

    1. 2El mercado: por qué ahora~10 min

      Certificados más cortos, más sustos.

    2. 3Monta Uptime Kuma~20 min

      El panel de verdad, en tu ordenador.

      3 comandos · 2 errores resueltos · comprobación incluida

    3. 4Avisos al móvil por Telegram~15 min

      Te enteras tú antes que el dueño.

    4. 5Una página de estado para cada cliente~10 min

      Lo que enseñas en la reunión.

    5. 6Déjalo encendido 24/7~20 min

      Un servidor pequeño, no tu portátil.

      1 comando · comprobación incluida

    6. 7Ponle precio y ofrécelo~15 min

      Cuota mensual, no pago único.

    7. 8Repite y escala~10 min

      Cada cliente nuevo, un minuto más.

    Pasos 2–8 con el plan Anual

Primeros logros

Ya lo tienes funcionando. Pruébalo con esto:

El informe del mes

Para mandarlo con la factura.

Prompt para tu IA

Este es el registro de un mes de la web de mi cliente (fecha, estado, segundos, días de certificado): [pega las filas de vigila.csv o el resumen de Uptime Kuma]. Escríbeme un informe de 5 líneas para el dueño: cuánto tiempo estuvo bien, cuándo falló y cuánto, cómo de rápida fue y si hay algo que renovar pronto.

El aviso al prospect

Útil, no alarmista.

Prompt para tu IA

La web de un negocio que no es cliente mío ha estado caída [cuánto] hoy (o su certificado caduca en [días] días). Escríbeme lo que le diría por teléfono en 3 frases para avisarle, ofrecer ayuda sin presionar y preguntar si quiere que se lo vigile.

Siguiente nivel: una web de cliente en un día

A quien no tiene web, hazle una y vigílala.

Siguiente misión

Cómo deshacerlo

Para Uptime Kuma con docker stop uptime-kuma y bórralo con docker rm uptime-kuma y docker volume rm uptime-kuma (se borran también los monitores). Borra la carpeta vigilancia.

Borrar la carpetamacOS
$rm -rf ~/vigilancia
Quitar Uptime Kuma y sus datos
$docker stop uptime-kuma
$docker rm uptime-kuma
$docker volume rm uptime-kuma

Haciendo esta misión juntos

Sé de los primeros en terminarla. Si te atascas, pregunta: quien ya la hizo te puede ayudar.

Logros recientes

Preguntas

Siguiente misión · Gana dinero con IA · 33 de 33Una web de negocio entregada en un día, publicada en la cuenta del cliente y con su aviso legal
Tu progreso 0/8Paso 1 →