Skip to content

Este proyecto es un servidor en Python que monitoriza y mantiene despiertos otros servicios web realizando peticiones periódicas (pings) a una lista de URLs.

Notifications You must be signed in to change notification settings

Gdr18/ping-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🟢 Ping Server – Keep-Alive de URLs, API REST y Logs

Este proyecto es un servidor en Python que no solo realiza pings periódicos a una lista de URLs para mantener activos servicios web (ideal para evitar que se duerman en hostings gratuitos), sino que también expone una API ligera para gestionar dinámicamente el sistema.

⚠️ Limitaciones en hostings gratuitos:

  • Suspensión automática por inactividad (reinicios → pérdida de archivos .txt).
  • Almacenamiento no fiable para urls.txt y logs.txt.
  • Restricciones de rate limit al realizar pings periódicos.
  • Por ello se recomienda ejecutarlo en un entorno controlado (equipo local, Raspberry Pi, contenedor siempre activo)

🚀 Tecnologías utilizadas

  • Python 3
  • requests – Para realizar peticiones HTTP
  • datetime y time – Gestión de fechas y temporizadores
  • Flask

✨ Funcionalidades principales

  • Keep-Alive de URLs:

    • Lee una lista de URLs desde urls.txt
    • Realiza pings periódicos a cada URL y registra el estado en logs.txt
    • Limpieza automática de logs cada 24 horas
    • Registro de errores en logs.txt'
  • API REST:

    • Permite añadir nuevas URLs, solicitar las existentes o eliminarlas
    • Permite leer el historial de logs y limpiarlo

⚙️ Instalación y uso

  1. Clona este repositorio:
git clone https://github.com/Gdr18/ping-server.git
cd ping_server  
  1. Crea y activa un entorno virtual:
python -m venv venv
venv\Scripts\activate
  1. Instala las dependencias:
pip install -r requirements.txt
  1. Ejecuta el script principal:
python app.py

📝 Archivos importantes

  • utils.py: Lógica principal de registros y loop periódico.
  • app.py: Punto de entrada del servidor y configuración de rutas.

⚠️ Nota importante!

Este proyecto no trabaja con una base de datos, sino que utiliza archivos de texto (urls.txt y logs.txt) para almacenar la información. No hace falta crear los archivos urls.txt ni logs.txt, el script los crea automáticamente si no existen.


⚙️ Variables configurables

  • INTERVAL: Intervalo entre solicitudes (segundos).

📓 Documentación de la API

Puedes consultar la documentación y probar todos los endpoints desde la colección de Postman: 🔗 Colección de Postman


👩‍💻 Autor

Desarrollado por Gádor García Martínez
GitHub · LinkedIn

About

Este proyecto es un servidor en Python que monitoriza y mantiene despiertos otros servicios web realizando peticiones periódicas (pings) a una lista de URLs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages