À propos du projet
Bast est une application d'analyse web open-source destinée aux petits sites ayant besoin d'un aperçu basique du trafic sans cookies ni services de suivi tiers. Son objectif déclaré est la confidentialité et la simplicité : il est décrit comme un projet que l'auteur a construit pour un usage personnel et a partagé plus tard car quelques amis l'ont trouvé utile.
Note importante sur le statut : le README stipule explicitement que le projet n'est plus maintenu. Toute personne l'envisageant doit le traiter comme une base de code en lecture seule, un point de départ pour un fork ou une implémentation de référence plutôt que comme un produit supporté.
Ce qu'il mesure
Les métriques sont stockées au fil du temps avec le jour comme échelle atomique. Les pages vues comptent les visiteurs anonymes ou identifiés, ainsi trois visiteurs produisent trois pages vues ; chaque page vue enregistre le référent et l'URL actuelle. Les utilisateurs correspondent au nombre de visiteurs uniques, dérivés sans cookies : un identifiant est construit à partir de l'adresse IP et de l'user-agent du visiteur, haché et stocké dans la base de données. Une session recommence après 30 minutes d'inactivité, donc les visites répétées dans cet intervalle comptent comme une seule session. Le temps moyen passé sur le site n'est enregistré que s'il se situe entre 5 secondes et 30 minutes par session. L'analyse de l'user-agent est gérée par la bibliothèque woothee, qui fournit le nom du navigateur, le système d'exploitation et des détails connexes. La géolocalisation est mentionnée comme une fonctionnalité souhaitée mais pas encore implémentée.
Architecture et stack
Le backend est écrit en Rust avec le framework actix-web et diesel comme ORM PostgreSQL. Le frontend est principalement statique, construit en React avec Next.js, et l'interface utilise chakra-ui, avec un graphique personnalisé. Une base de données PostgreSQL est requise.
L'exécution
Le README documente plusieurs voies. Sur Unix et OS/X, installez le CLI diesel avec la fonctionnalité postgres, exécutez diesel setup contre une instance PostgreSQL active, puis installez les dépendances frontend avec npm install dans le dossier website. Un itinéraire Docker est également décrit : docker-compose up, avec des variables d'environnement personnalisables dans docker-compose.yml. Les instructions de développement couvrent la création d'un fichier .env à partir de .env.sample, l'utilisation optionnelle de cargo-watch pour recharger l'API lors des modifications, l'exécution de cargo run sinon, et le démarrage du frontend avec npm run dev. Un bouton de déploiement Heroku est fourni comme l'option de déploiement la plus simple. Le README indique le port local 3333 pour l'application en cours d'exécution.
Contribution et contexte
Le README encourage les questions et les pull requests, accueillant explicitement les débutants et les juniors, et renvoie vers un fichier CONTRIBUTING.md pour plus de détails. Il cite Fathom comme une base de code que l'auteur a lue, et note que l'approche d'identification des utilisateurs sans cookies a été inspirée par Ackee, un projet JavaScript. Le langage de programmation seul n'est pas la raison de la classification ici : la valeur pour les utilisateurs est l'analyse du trafic pour un site web possédé, déployé sur leur propre infrastructure.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.