rmb
EN

Pi Stats

Nuevo

Dashboard de monitoreo en tiempo real para Raspberry Pi — un servidor Python sin dependencias expone métricas del sistema, mientras un dashboard hecho con Vite + React las muestra en vivo con gráficos de historial.

Pi Stats
PythonReactTypeScriptViteTailwind CSSRechartsSQLite

Descripción General

Pi Stats es un dashboard de monitoreo en tiempo real para Raspberry Pi — Python hace la medición, React la visualización. Un servidor Python sin dependencias (solo librería estándar) expone métricas de CPU, memoria, disco, temperatura, red y procesos, mientras un dashboard hecho con Vite + React las muestra en tiempo real con sparklines, medidores radiales y gráficos de historial.

  • Python
  • React
  • TypeScript
  • Vite
  • Tailwind CSS

Funcionalidades

  • Métricas del Sistema: Uso de CPU (total + por núcleo), memoria y swap, uso y I/O de disco, temperatura de CPU/GPU, rx/tx de red por interfaz y procesos principales — todo leído directamente de /proc, vcgencmd y ps.
  • Historial: Un colector muestrea cada 5 segundos en SQLite (metrics + rollups por hora), con rangos de 1H / 24H / 7D servidos como ~120 puntos agrupados.
  • Dashboard en Vivo: Selector de intervalo de refresco, tarjetas de métricas con sparklines y medidores radiales, gráficos de CPU/red/I/O de disco, panel de salud del servidor, cuadrícula por núcleo, tablas de procesos principales y tema claro/oscuro.
  • Cero Dependencias (Servidor): Construido completamente con la librería estándar de Python 3 — http.server, sqlite3 y threading. No requiere pip install.
  • Modo Mock: Ejecuta todo el stack con datos sintéticos y variables para desarrollo local o demos — sin necesidad de hardware Raspberry Pi.
  • Autenticación Opcional: Autenticación HTTP Basic mediante una sola variable de entorno PI_STATS_PASSWORD.

Stack Tecnológico

Servidor:

  • Solo librería estándar de Python 3 — http.server.ThreadingHTTPServer, sqlite3, threading
  • Métricas desde /proc/*, statvfs, vcgencmd y ps
  • Colector de 5 segundos en SQLite con rollups por hora

Cliente:

  • React 18 + TypeScript, Vite 5
  • Tailwind CSS 3, Recharts, lucide-react, shadcn/ui
  • Hook personalizado useStats que consulta /api/stats con intervalos configurables

API

GET /api/stats

Devuelve un snapshot completo del sistema: hostname, uptime, load average, IP, modelo/núcleos/frecuencia de CPU y uso por núcleo, memoria y swap, uso e I/O de disco, temperaturas, contadores de red agregados y por interfaz, además de los procesos principales por CPU y memoria.

GET /api/history?range=1H|24H|7D

Devuelve ~120 puntos de historial agrupados por tiempo (bins de 30s / 12m / 35m) cubriendo CPU, memoria, temperatura, throughput de red, I/O de disco, uso de disco, temperatura de GPU y load.

Todas las demás rutas sirven el cliente React construido con protección contra path traversal.

Despliegue

Diseñado para correr directamente en una Raspberry Pi — un solo proceso Python sirve tanto la API como el build estático del cliente en el puerto 8000. Incluye ejemplos de systemd y crontab @reboot para ejecutar al arranque.

Publicado: 31/08/2026

Proyectos Relacionados

Chatbot App
Una aplicación de chatbot potenciado por IA, diseñado para soporte rápido, amigable e interactivo.
Next Store
Aplicación web de e-commerce escalable construida con Next.js y PostgreSQL, con catálogo de productos, autenticación de usuarios y sistema de carrito de compras.
Med Monitor App
Med Monitor App es un sistema nativo en la nube diseñado para monitorizar signos vitales de pacientes, gestionar alertas y generar informes. Utiliza arquitectura de microservicios con mensajería en tiempo real e integración segura en la nube. El sistema ofrece un dashboard responsivo y APIs REST para interactuar con datos de pacientes, alertas, signos vitales e informes.