BookinglyTech News
Infraestructura

HitKeep, analitica web sin cookies y autoalojada en un solo contenedor

La version 2.13.18 corre detrás de Traefik y guarda las estadisticas en una base DuckDB embebida, sin enviar un solo byte a terceros.

2 min de lecturaDev.to0 vistas

HitKeep 2.13.18 se levanta como un unico contenedor Docker detrás de un proxy inverso y almacena todo en una base DuckDB embebida, sin base de datos externa. La herramienta ofrece el cuadro habitual de analitica web (visitas, visitantes, tiempo en pagina, referrers y dispositivos) para quien no quiere que los datos de sus usuarios acaben en un tercero.

El funcionamiento es cookieless. En lugar de dejar una cookie en el navegador, reconoce a los visitantes con un hash que cambia cada dia. Eso evita el banner de consentimiento en la mayoria de los casos, pero conviene decirlo con cuidado: depende del uso concreto y no sustituye a una consulta con el delegado de proteccion de datos. La propia pieza original lo advierte.

Que trae la imagen

El contenedor es una imagen distroless de unos 68 MB de descarga y unos 230 MB desplegada en disco, pensada para un VPS modesto. No publica puertos al exterior: escucha en el 8080 interno y solo se llega a el a través del proxy. Corre con usuario no root (UID 65532), y la imagen solo prepara con el propietario correcto un unico directorio, /var/lib/hitkeep/data. Si se montan volumenes adicionales para archivo o copias de seguridad en rutas distintas, Docker los crea propiedad de root y el proceso falla con permission_denied.

La configuracion se apoya en cuatro variables de ruta que apuntan todas a ese mismo volumen, mas HITKEEP_PUBLIC_URL, que debe coincidir exactamente con la URL publica o el login entra en bucle, y HITKEEP_JWT_SECRET, que se genera con openssl rand -hex 32 y firma las sesiones: si cambia, todas las sesiones abiertas se invalidan.

El detalle que mas se suele pasar por alto es HITKEEP_TRUSTED_PROXIES. Por defecto HitKeep acepta la cabecera X-Forwarded-For de cualquiera, con lo que un visitante podria reclamar la IP de otro. Hay que acotarlo al rango donde vive el proxy (por ejemplo 172.16.0.0/12 en redes Docker) para que solo Traefik fije la IP. Si el rango no contiene la direccion real del proxy, HitKeep vera siempre la IP del contenedor de Traefik.

Por que importa

La imagen no trae servidor HTTPS propio: el cifrado lo pone Traefik con certificados de Let's Encrypt. Una vez arriba, el snippet de seguimiento se sirve como un /hk.js cacheado de forma agresiva, y basta con incrustarlo en las paginas que se quieran medir. Para equipos que ya tienen Traefik desplegado, el coste de probarlo es un archivo de compose y un secreto generado.

El repositorio publica las versiones por separado; el articulo original lo enlaza en su seccion de releases. Queda por ver como evoluciona el proyecto en mantenimiento y actualizaciones, que es lo que termina decidiendo si un servicio autoalojado es viable a medio plazo.