Sistema de monitoreo de comunicaciones para operaciones mineras subterráneas. Hace ping periódico a los equipos de red de cada nivel de la mina, registra incidencias automáticamente cuando un equipo deja de responder, y documenta el tendido de fibra óptica (ODF, troncales e hilos con colores TIA-598).
Este sistema nació de una necesidad real: diagnosticar y vigilar la red de interior de una mina en producción sobre los 4,000 m s. n. m., donde un switch caído significa comunicaciones críticas interrumpidas. Los datos sembrados en este repositorio son de ejemplo; los detalles de la operación real se omiten por confidencialidad.
Dashboard con monitoreo en tiempo real: disponibilidad, estado por nivel e historial de pings.
Mapa de topología SVG que se colorea en vivo según el estado de cada equipo.
- Monitoreo automático: hilo en segundo plano que hace ping a todos los equipos activos cada 60 segundos y guarda el historial en SQLite.
- Incidencias automáticas: cuando un equipo deja de responder se abre una incidencia con fecha y hora; cuando vuelve, se cierra sola. Nadie tiene que estar mirando la pantalla.
- Dashboard en vivo: estado por nivel, porcentaje de disponibilidad, gráficos históricos y mapa de topología SVG que se pinta según el estado real de cada equipo.
- Documentación de fibra óptica: registro de troncales, buffers e hilos con colores normalizados al estándar TIA-598 (con normalización de sinónimos: "Café" → "Marrón"), ODF y puntos de empalme.
- Gestión desde el dashboard: altas, bajas y edición de niveles y equipos sin tocar la base de datos.
| Componente | Tecnología |
|---|---|
| Backend / API | Python 3.12 · FastAPI |
| Base de datos | SQLite (cero dependencias de servidor — pensado para correr en campo) |
| Monitor | Hilo en segundo plano con ping del sistema (Linux y Windows) |
| Frontend | HTML/CSS/JS de una sola página, servido por el propio backend |
python3 -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
pip install -r requirements.txtCopia .env.example a .env y ajusta los valores:
cp .env.example .env| Variable | Descripción |
|---|---|
API_KEY |
Protege las escrituras (POST/PATCH/DELETE). Vacío = sin auth (dev). |
CORS_ORIGINS |
Orígenes permitidos, separados por coma. Vacío = solo localhost. |
En producción define siempre
API_KEY. El dashboard la pedirá una vez y la guardará en el navegador. Sin ella, cualquiera en la red puede borrar equipos y fibras.
cd backend
../venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000Abre http://localhost:8000 — el dashboard carga con datos de ejemplo
(2 niveles, switch y AP por nivel) para que puedas explorarlo de inmediato.
Registra tus propios niveles y equipos desde la interfaz.
La pestaña Topología Mapa muestra frontend/topologia.svg y colorea en
vivo los elementos con id svg-node-switch y svg-node-ap según respondan
al ping. Reemplaza ese archivo por el diagrama de tu propia red manteniendo
esos ids.
venv/bin/python backend/test_colores.pyCubre la normalización de colores de fibra (TIA-598) y el borrado de buffers con datos heredados sin normalizar.
MIT — Abel López Torres

