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.
- 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)
- Python 3
- requests – Para realizar peticiones HTTP
- datetime y time – Gestión de fechas y temporizadores
- Flask
-
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'
- Lee una lista de URLs desde
-
API REST:
- Permite añadir nuevas URLs, solicitar las existentes o eliminarlas
- Permite leer el historial de logs y limpiarlo
- Clona este repositorio:
git clone https://github.com/Gdr18/ping-server.git
cd ping_server - Crea y activa un entorno virtual:
python -m venv venv
venv\Scripts\activate- Instala las dependencias:
pip install -r requirements.txt- Ejecuta el script principal:
python app.pyutils.py: Lógica principal de registros y loop periódico.app.py: Punto de entrada del servidor y configuración de rutas.
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.
INTERVAL: Intervalo entre solicitudes (segundos).
Puedes consultar la documentación y probar todos los endpoints desde la colección de Postman: 🔗 Colección de Postman