À propos du projet
ΛNΛLOG est un outil d'analyse web minimaliste conçu pour être auto-hébergé. Il s'inspire largement de piratepx et se concentre sur un ensemble de fonctionnalités réduit plutôt que sur un vaste ensemble d'outils d'analyse.
Le projet se compose d'un tableau de bord frontend et d'un serveur Node.js. Les événements sont enregistrés via une API simple et affichés dans un tableau de bord web. Le fichier README inclut une capture d'écran du tableau de bord ainsi qu'une démonstration vidéo courte.
Le stockage est extensible. La variable d'environnement ANALOG_DATABASE_PROVIDER permet de choisir l'un des quatre backends : MongoDB, PostgreSQL, Redis ou SQLite. Le README recommande des fournisseurs hébergés tels que MongoDB, Supabase, Render, CockroachDB, Upstash et Turso, et précise que PostgreSQL devrait utiliser un pool de connexions transactionnel. Les connexions SQLite utilisent libsql et peuvent pointer vers un fichier local via une URL de type file:.
La configuration se fait via des variables d'environnement. Parmi les options notables figurent le fournisseur de base de données et les URL de connexion, le port du serveur, ANALOG_TOKEN pour protéger les requêtes, ANALOG_PROTECT_POST pour exiger le jeton lors des requêtes POST, ANALOG_STATIC_SERVER pour que le serveur Node.js serve également le frontend compilé, et ANALOG_DATABASE_REQUEST_ITEM_COUNT pour déterminer combien d'éléments l'API récupère par appel à la base de données. Les variables frontend utilisent le préfixe VITE car l'application est construite avec Vite ; elles contrôlent le titre de la page, la plage horaire affichée (minimum 10, maximum 30), si le nettoyage des données s'exécute en même temps que les requêtes GET, et si les requêtes API sont traitées de manière séquentielle au lieu d'être toutes récupérées en même temps.
Les options de déploiement documentées dans le README comprennent le développement local avec npm install et npm run dev, un Dockerfile avec des arguments de construction et des variables d'environnement d'exécution, ainsi que des services cloud comme Koyeb, Netlify, Render et Vercel avec leurs fichiers de configuration respectifs (netlify.toml, render.yaml, vercel.json). Netlify et Vercel peuvent programmer une fonction de nettoyage quotidienne via une configuration cron, bien que le README avertisse que la planification pourrait ne pas fonctionner en raison de limitations d'exécution.
L'API repose sur /api/events. Une requête POST envoie un nom d'événement dans le corps et retourne OK ; si ANALOG_PROTECT_POST et ANALOG_TOKEN sont définis, la requête doit inclure un en-tête Authorization avec le jeton préfixé par « Basic ». Une requête GET retourne les données d'événements sous forme de tableaux de nombres indexés par nom d'événement. Elle accepte un paramètre optionnel cursor pour les requêtes paginées de base de données (sans cela, toutes les données sont récupérées en une seule fois) et un paramètre optionnel clean-up pour déclencher le nettoyage pendant la récupération. Lorsqu'un curseur est utilisé, la réponse inclut les données ainsi qu'une valeur nextCursor. Si ANALOG_TOKEN est défini, l'URL du tableau de bord nécessite un paramètre de requête token, par exemple hostname/?token=ANALOG_TOKEN.
En somme, ΛNΛLOG est une alternative légère et auto-hébergeable pour le suivi basique des événements, offrant des backends de stockage flexibles et des chemins de déploiement simples.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.