SHM : des métriques d’usage pour applications self-hosted… sans espionner les utilisateurs

Posté par  (site web personnel) . Édité par Xavier Teyssier. Modéré par Ysabeau 🧶. Licence CC By‑SA.
36
19
déc.
2025
Supervision

Quand on développe et distribue des applications open-source auto-hébergées, il y a une question très simple à laquelle il est presque impossible de répondre :

Combien d’instances actives de mon application sont réellement utilisées ?

SHM

C’est exactement le problème que j’ai rencontré avec Ackify, une application open-source de preuve de lecture de documents (politiques internes, procédures, formations, etc.), déployée en self-hosted par ses utilisateurs - sans que j'ai le moindre contrôle dessus.

Pas de SaaS, pas de compte centralisé, pas de tracking utilisateur.
Résultat : zéro visibilité.

👉 Combien d’instances Ackify tournent vraiment ?
👉 Quelles versions sont encore actives ?
👉 Quelles fonctionnalités sont utilisées (ou pas) ?

C’est pour répondre à ce besoin très concret que j’ai créé SHM – Self-Hosted Metrics.

SHM, c’est quoi ?

SHM est un serveur de télémétrie privacy-first, conçu spécifiquement pour les applications self-hosted open-source.

L’idée est simple :

  • chaque instance auto-hébergée envoie périodiquement un snapshot de métriques agrégées
  • aucune donnée utilisateur
  • aucun événement individuel
  • aucun tracking comportemental

Juste ce qu’il faut pour comprendre l’usage réel d’un logiciel déployé “dans la nature”.


Un point important : SHM est agnostique

Contrairement à beaucoup d’outils existants, SHM n’impose aucun schéma.

Tu envoies :

{
  "documents_created": 123,
  "active_users": 42,
  "webhooks_sent": 9
}

➡️ le dashboard s’adapte automatiquement :

  • nouvelles cartes KPI
  • nouvelles colonnes
  • graphiques générés dynamiquement

Aucun frontend à recompiler, aucune migration à écrire.

Dashboard Graph
Dashboard Détail


Un petit mot sur Ackify

Ackify est l’application qui a déclenché tout ça :

  • open-source
  • self-hosted
  • preuve de lecture avec signature cryptographique
  • alternative légère à DocuSign pour des usages internes

SHM est désormais utilisé pour répondre à des questions très simples :

  • combien d’instances actives ?
  • combien de documents créés ?
  • combien de signatures générées ?

Projet open-source

Le projet est encore très jeune (MVP), mais fonctionnel et déjà utilisé en conditions réelles.

Les retours, critiques et idées sont évidemment bienvenus 🙂


Stack technique (sobre et assumée)

  • Backend : Go (binaire unique, léger)
  • Stockage : PostgreSQL (JSONB)
  • Déploiement : Docker
  • Licence : AGPLv3 (SDK en MIT)
  • Auth des instances : Ed25519 (clé générée localement, signature des snapshots)

Chaque instance :

  • génère une identité cryptographique locale
  • s’enregistre une seule fois
  • signe chaque envoi de métriques ➡️ impossible de spoof une instance existante.

Et côté vie privée ?

C’était non négociable.

SHM :

  • ne collecte aucune donnée personnelle
  • ne collecte pas les IP (hors reverse-proxy)
  • ne collecte ni hostname, ni username
  • fonctionne sur des compteurs agrégés uniquement

C’est au mainteneur du logiciel de décider quelles métriques exposer, et à l’utilisateur final de pouvoir désactiver la télémétrie.

Aller plus loin

  • # c'est important ?

    Posté par  (site web personnel) . Évalué à 4 (+4/-1).

    Combien d’instances actives de mon application sont réellement utilisées ?

    A part flatter l'ego, qu'est-ce que ca peut bien faire ?
    C'est open-source, c'est dans la nature. Des gens l'utilisent, c'est bien, sinon… ben c'est pareil en fait, non ?

    • [^] # Re: c'est important ?

      Posté par  (site web personnel) . Évalué à 9 (+8/-0).

      Est-ce parce que c'est opensource que ca doit être dans la nature et fini…

      Je ne suis pas d'accord, déjà savoir si ton produit est utilisé permet de savoir si tu dois continuer a investir dessus, s'il n'est pas utilisé a quoi bon, passe a autre chose plutot que de perdre du temps.

      Ensuite en ayant des metrics d'utilisations tu sais également si ce que tu as imaginé est utilisé (ou pas), et tu sais alors sur quoi il faut se concentrer.

      Une application n'est pas faite une fois et hop c'est balancé et c'est fini, il faut la faire vivre, évoluer, maintenir.

      Benjamin

      • [^] # Re: c'est important ?

        Posté par  (site web personnel) . Évalué à 2 (+0/-0).

        s'il n'est pas utilisé a quoi bon

        oh bah…
        moins de questions de support, moins de pull-request à intégrer ;-)

        et donc, combien d'instances de SHM déployées ?   :D

      • [^] # Re: c'est important ?

        Posté par  (site web personnel, Mastodon) . Évalué à 2 (+1/-1).

        Du coup, il faut que tu demandes la version…
        Parce que sinon tu vas livrer une nouvelle version mais tu ne sais pas si les réponses proviennent de l’ancienne ou de la dernière.

        Du coup, il faut que tu demandes la date d’installation…
        Parce que ton serveur a enregistré plein de téléchargements pour Noël mais au final tu ne sais pas si les instances ont été lancées dans la foulée ou des mois plus tard.
        Tiens, tant qu’à faire, savoir combien de jours cumulés l’installation a tournée… Est-ce que l’usage est de style pérenne ou alors on lance le truc une fois par trimestre…

        Et sinon, qu’est-ce que cela apporte aux usagers de ta solution d’ouvrir ce flux réseau pour te téléphoner leur utilisation ?

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

        • [^] # Re: c'est important ?

          Posté par  (site web personnel) . Évalué à 6 (+6/-1).

          Je pense que tu te trompes sur ce que je propose.

          1. Je ne récupère aucune donnée utilisateur.
            L’outil ne fait qu’agréger des métriques envoyées volontairement par l’application elle-même, côté serveur.

          2. La télémétrie est du ressort du créateur du produit, pas du mien.
            C’est l’auteur de l’application qui choisit :

            • quelles métriques envoyer
            • si elles sont pertinentes (pour son produit)
            • et si la télémétrie est activée, désactivable ou absente (elle devrait tjs être désactivable)
          3. Je ne définis aucune métrique “métier”.
            Je fournis uniquement une brique technique agnostique pour agréger des événements JSON.
            Rien de plus.

          En résumé :
          ce n’est ni du tracking imposé, ni une vision produit, ni une décision politique.
          C’est un outil, libre aux mainteneurs de l’utiliser… ou pas.

          Benjamin

        • [^] # Re: c'est important ?

          Posté par  . Évalué à 10 (+8/-0).

          Et sinon, qu’est-ce que cela apporte aux usagers de ta solution d’ouvrir ce flux réseau pour te téléphoner leur utilisation ?

          En tant que développeur savoir ce qui est utilisé est vraiment une énorme différence. Ça évite ce que l’on voit régulièrement : une annonce de suppression d’une fonctionnalité et d’un coup la terre entière qui vient avec un ton agressif expliquer au développeur à quel point il est un moins que rien et que des suppôt de Satan comme lui il faut les bruler.

          Ça permet de savoir sur quoi priorisé parce que les gens l’utilise plus.

          Ce n’est pas pour ça qu’il faut que ce soit en opt-out, qu’il faut aller loin dans la précision voir qu’il faut en mettre, mais il est assez évident l’intérêt que ça peut avoir. Je ne dis pas que la vie privée on s’en fout, mais j’explique l’intérêt que ça peut avoir. Il est tout à fait possible par exemple de dire que la moindre info même en opt-in est de trop par rapport à ce que ça apporte au développeur. Ce ne sont que des opinions.

          https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

          • [^] # Re: c'est important ?

            Posté par  (site web personnel) . Évalué à 4 (+4/-1). Dernière modification le 24 décembre 2025 à 00:26.

            Ça me semble aussi essentiel, quand on met autant de temps et d'énergie dans un projet, il est impératif d'en connaître l'impact.
            Merci

            Benjamin

    • [^] # Re: c'est important ?

      Posté par  (site web personnel) . Évalué à 8 (+6/-0).

      L'égo fait partie des raisons qui poussent un développeur à faire de l'open source. Peut-être pas pour tout le monde, et sûrement pas comme raison principale. Mais c'est là et il n'y a rien de mal à avoir de l'égo.

      Si je développe un soft et que je fais l'effort de le faire en open source, il y a une part de moi qui veut savoir si il est utilisé, si les utilisateurs sont contents, etc.

      Je serai preneur de SHM pour mes applications très clairement!

      Philippe

      • [^] # Re: c'est important ?

        Posté par  (site web personnel) . Évalué à 4 (+4/-1).

        Merci Philippe 🙏
        Et oui, l’égo fait sûrement partie de l’équation pour beaucoup d’entre nous — vouloir savoir si ce qu’on construit est utilisé, utile, apprécié, c’est humain.

        Mais dans mon cas, c’est surtout très concret et stratégique.
        Je fais de l’open source d’abord parce que je m’en sers moi-même, au quotidien, et que je crois profondément que des briques ouvertes, auditées et maîtrisables sont une base saine.

        SHM est né exactement de ce besoin : arrêter de piloter “au doigt mouillé” des logiciels auto-hébergés, sans pour autant trahir la confiance des utilisateurs.

        Et effectivement, pour certains projets comme Ackify, l’open source coexiste avec l’idée d’un SaaS (à venir, et là je pari que certain vont hurler au blasphème) :
        non pas pour enfermer, mais pour proposer une alternative à ceux qui ne veulent pas (ou ne peuvent pas) gérer l’auto-hébergement.

        Merci pour ton message en tout cas, ça fait vraiment plaisir à lire 👍

        Benjamin

        • [^] # Re: c'est important ?

          Posté par  . Évalué à 5 (+3/-0).

          l’idée d’un SaaS (à venir, et là je pari que certain vont hurler au blasphème)

          Seulement si tu ne donnes pas la possibilité de faire tourner soi-même la même chose que tu proposes en SaaS. Il me semble que https://www.tracim.fr fait ça bien (entre autres).

          • [^] # Re: c'est important ?

            Posté par  (site web personnel) . Évalué à 3 (+3/-1).

            Alors soit rassuré, le coeur c'est l'open source.
            Pour SHM je pense me tourner vers une licence serveur opensource (c'est du soutien non obligatoire en somme) c'est plus aligner DevOps.
            Ackify CE donnera lieu a un SaaS basé plus aligné pour les équipes non tech (mais c'est les mm fonctionnalités)

            Benjamin

  • # La télémétrie transparente, c'est comme la publicité non intrusive

    Posté par  (site web personnel) . Évalué à 1 (+4/-6).

    Ne fais pas ça. Jamais. Mesure plutôt le succès de ton appli au nombre d'utilisateurs inscrits sur un forum/chat, au nombre de tickets ouvert au support, au nombre de trolls sur linuxfr… Bref des KPI fiables et réellement respectueuses des utilisateurs.

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # Télé mais truie

    Posté par  (site web personnel) . Évalué à 3 (+1/-1).

    D'autres ont eu la même idée

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

  • # Mise à jour SHM v1.2.0

    Posté par  (site web personnel) . Évalué à 7 (+7/-1).

    Petit retour rapide côté projet.

    Je viens de publier SHM v1.2.0.
    Cette version ne change pas le principe de base, mais clarifie l’orientation du projet :

    une télémétrie agnostique pour les logiciels auto-hébergés, sans hypothèses sur le modèle applicatif ni collecte de données personnelles.

    La v1.2 rend surtout ce modèle utilisable sur des cas réels (plusieurs applications, volumes plus importants, meilleure lisibilité).

    👉 https://github.com/btouchard/shm/releases/tag/v1.2.0

    J'attends vos retour ;)

    Benjamin

  • # Intéressant

    Posté par  . Évalué à 2 (+1/-0).

    Le mécanisme est-il similaire a ce que propose debian ?

    Je me suis tjrs demandé comment fonctionne le suivi des machines debian (j'ai jamais cherché pour comprendre j'avoue).

    félicitations en tout cas.

    Je comprends pas le déversement de haine et d'inquiétude sur ce que tu proposes (dans les postes au dessus). A moins que tout ces utilisateurs soient choqué que debian propose d'activer la télemetrie 🤔 lors de l'installation de l'OS.

  • # Moteur de recherche

    Posté par  . Évalué à 1 (+0/-0).

    On peut aussi rechercher un terme spécifique à l'application dans un moteur d erecherche et voir le nombre de résultats. C'est approximatif.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.