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 ?

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.


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.
Commentaires :
voir le flux Atom
ouvrir dans le navigateur