Sobre el proyecto
Smart-analytics es un sistema de análisis web autoalojado, minimalista y orientado a la privacidad, derivado de tiny-analytics 0.1.3. Su mejora principal es el soporte multi-sitio/multi-tenant: una sola cuenta puede gestionar múltiples sitios, cada uno con su script de seguimiento independiente y datos aislados.
El stack técnico usa Python FastAPI + SQLite (multi-tenant con una sola base), ejecutándose como un solo proceso sin servicios externos ni base de datos adicional. Cuando un visitante carga una página, el script de seguimiento envía una solicitud POST al servidor, que genera un identificador anónimo mediante hash de "siteID:IP:UA" sin almacenar la IP original; al abandonar la página, un beacon reporta la duración de permanencia, y el panel consolida y visualiza los datos por sitio.
Características principales:
- Prioridad a la privacidad: sin cookies, sin localStorage, sin fingerprinting, sin rastreo entre sitios
- Multi-sitio/multi-tenant: cada sitio tiene su token independiente con datos completamente aislados; soporta múltiples usuarios y miembros por sitio
- Sistema de cuentas: registro e inicio de sesión con correo y contraseña, panel web para gestionar sitios y miembros
- Geolocalización offline: basada en la base de datos DB-IP, ofrece información geográfica a nivel de país, provincia y ciudad sin depender de APIs externas
- Filtro de bots: identifica y separa automáticamente el tráfico de robots
- Módulo de IP frecuentes: detecta IPs de alta frecuencia y muestra su ubicación geográfica
- Duración de permanencia en página: registra el tiempo real de interacción
- Distribución geográfica y de dispositivos: estadísticas de origen de visitantes y tipos de dispositivo utilizados
- Páginas populares y fuentes de tráfico: ranking de páginas principales, dominios de referencia y palabras clave de búsqueda
- Distribución horaria: observación de patrones de tráfico por 24 horas o por semana
- Comparación interperiodo: cambios en visitantes únicos, páginas vistas y duración media
- Usuarios en línea en tiempo real: conteo de los últimos 5 minutos con refresco automático del panel
- Nuevos/rentables visitantes: diferenciación basada en identificador anónimo
- Rastreo UTM: estadísticas por dimensión de fuente, medio y campaña
- Análisis de sesiones: tasa de rebote, duración media de sesión, páginas de entrada/salida (valores estimados)
- Distribución de navegador/sistema operativo: estadísticas de grano grueso basadas en User-Agent
- Rangos temporales flexibles: opciones de 1 hora, 2 horas, 24 horas, 7 días, 30 días, con intervalos de 1, 5, 15 minutos o 1 hora
- Interfaz con modo oscuro
La configuración se controla mediante variables de entorno: SMART_ANALYTICS_PASSWORD (contraseña de administrador), SMART_ANALYTICS_SECRET_KEY (clave de firma de sesión), SMART_ANALYTICS_ALLOWED_ORIGINS (restricción de dominio CORS), SMART_ANALYTICS_DB_PATH (ruta de base de datos), entre otras.
Para el despliegue se ofrece un script de un solo paso (deploy/linux/setup.sh) que soporta servicio systemd, proxy inverso nginx y origen Cloudflare (lectura automática de encabezados cf-connecting-ip). También es posible ejecutarlo con una sola línea mediante uvx o construirlo desde el código fuente.
Licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.