--- title: Self-Hosted Metrics created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, analytics, metrics, web, privacy] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/pbeck/self-hosted-metrics] --- # đŸ’» Self-Hosted Metrics > **MĂ©triques web minimalistes et respectueuses** — alternative lĂ©gĂšre Ă  Plausible et Umami, pensĂ©e pour les sites Ă  petit trafic et les utilisateurs qui veulent **juste** des compteurs de visites sans dashboard compliquĂ©. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [self-hosted-metrics.pbeck.com](https://self-hosted-metrics.pbeck.com/) | | **GitHub** | [pbeck/self-hosted-metrics](https://github.com/pbeck/self-hosted-metrics) | | **License** | MIT | | **Langage** | Node.js (Express) + SQLite | | **Étoiles GitHub** | 161 ⭐ | | **CatĂ©gorie** | Development, Web Analytics | | **RĂ©fĂ©rence** | [selfh.st Development](https://selfh.st/apps/?tag=Development) | ## 📝 Description **Self-Hosted Metrics** est un **tracker web analytics minimaliste** conçu comme une **alternative ultra-lĂ©gĂšre Ă  Plausible et Umami**. Le projet se positionne sur la **simplicitĂ© radicale** : un **script de tracking de 1 Ko**, **zĂ©ro cookie, zĂ©ro tracking personnel**, et un dashboard qui affiche **le strict minimum** (visiteurs uniques, pageviews, top pages, sources de trafic). LĂ  oĂč Plausible mise sur le SaaS payant (12 $/mois pour le cloud, 69 $/an pour le self-host officiel) et Umami sur une stack React/Node/PostgreSQL/MySQL, Self-Hosted Metrics fait le choix inverse : **Node.js + SQLite**, **interface volontairement dĂ©pouillĂ©e**, **un seul binaire Ă  lancer**. C'est un outil pour les **blogs personnels, les portfolios, les petits SaaS** qui veulent savoir si leur site reçoit du trafic **sans se prendre la tĂȘte**. ⚠ **Notes importantes** : le projet a **relativement peu d'Ă©toiles (161)** et reste **niche** dans l'Ă©cosystĂšme analytics self-hosted. Pour des besoins sĂ©rieux (filtres avancĂ©s, Ă©vĂ©nements custom, funnels, e-commerce tracking), **Plausible ou Umami** restent prĂ©fĂ©rables et plus Ă©prouvĂ©s. Ce projet est pertinent pour les **personnels sites, blogs Jekyll/Hugo, vitrines** oĂč 3 chiffres sur un dashboard suffisent. **FonctionnalitĂ©s** : tracking JS lĂ©ger (1 Ko), SQLite, dashboard temps rĂ©el minimaliste, pas de cookie, RGPD-friendly par dĂ©faut, **export CSV** des donnĂ©es brutes, multi-sites via `data-site-id`, pas de JavaScript framework cĂŽtĂ© front (HTML pur). ## 🚀 Installation ### Via Docker (recommandĂ©) ```yaml # docker-compose.yml version: '3.8' services: shm: image: ghcr.io/pbeck/self-hosted-metrics:latest container_name: shm restart: unless-stopped ports: - "3000:3000" environment: PORT: "3000" DB_PATH: "/data/metrics.db" ADMIN_USER: "admin" ADMIN_PASS_HASH: "bcrypt-hash-ici" volumes: - shm_data:/data labels: - "traefik.enable=true" - "traefik.http.routers.shm.rule=Host(`metrics.example.com`)" - "traefik.http.routers.shm.entrypoints=websecure" - "traefik.http.routers.shm.tls.certresolver=letsencrypt" volumes: shm_data: ``` ### Installation manuelle ```bash git clone https://github.com/pbeck/self-hosted-metrics.git cd self-hosted-metrics npm install npm run build ADMIN_USER=admin ADMIN_PASS=motdepasse npm start ``` ## ⚙ Configuration 1. **Compte admin** : dĂ©finir `ADMIN_USER` et `ADMIN_PASS_HASH` (bcrypt) avant le premier lancement. 2. **CrĂ©er un site** : dashboard > Add Site > copier le `site-id` gĂ©nĂ©rĂ©. 3. **Script de tracking** : ``. 4. **Reverse proxy** : laisser passer `X-Forwarded-For` (Traefik) pour des IPs sources correctes derriĂšre le proxy. 5. **Filtrage de bots** : par dĂ©faut, le tracker exclut les user-agents connus (Googlebot, etc.) — vĂ©rifiable dans la config. ## 🔗 Alternatives - **Plausible** — RĂ©fĂ©rence privacy-first, open source, interface Ă©lĂ©gante, mais 12 $/mois en cloud. - **Umami** — TrĂšs populaire, multi-sites, Ă©vĂ©nements custom, plus complet mais plus lourd (Node + MySQL/PostgreSQL). - **Ackee** — Alternative lĂ©gĂšre, Node + MongoDB, dashboard moderne. - **GoatCounter** — Ultra-lĂ©ger, Go, gratuit en SaaS, self-host possible. - **Matomo** — L'alternative « complĂšte » Ă  Google Analytics, mais stack LAMP lourd. ## 🔒 SĂ©curitĂ© - 🔐 **HTTPS obligatoire** via [[app-traefik]] : le script de tracking et l'API collectent des IPs en clair sinon. - 🔒 **Admin password hashĂ©** : **jamais** de mot de passe en clair dans l'env, utiliser bcrypt (`htpasswd -bnBC 12 "" monpass | tr -d ':\n'`). - đŸ›Ąïž **IP anonymisation** : configurer la rĂ©tention d'IPs Ă  0 (ou ne pas les stocker du tout) pour RGPD maximal. - đŸ›Ąïž **Filtrage par IP** : si le dashboard est exposĂ©, ajouter une **allowlist** (Traefik IPAllowList) ou un **BasicAuth** devant. - đŸ›Ąïž **Backups SQLite** : `metrics.db` contient l'historique — sauvegarder rĂ©guliĂšrement (volume `shm_data`). - đŸ›Ąïž **CSP** : ajouter une `Content-Security-Policy` autorisant `metrics.example.com` sur les sites tracked. ## 📚 Ressources - [Site officiel](https://self-hosted-metrics.pbeck.com/) - [Documentation](https://github.com/pbeck/self-hosted-metrics#readme) - [GitHub pbeck/self-hosted-metrics](https://github.com/pbeck/self-hosted-metrics) - [Selfh.st — Development](https://selfh.st/apps/?tag=Development) ## 🔗 Pages LiĂ©es - [[cat-development]] — CatĂ©gorie Development - [[app-plausible]] — Alternative plus Ă©prouvĂ©e (analytics web privacy-first) - [[app-traefik]] — Reverse proxy HTTPS - [[securisation-home-lab]] — Bonnes pratiques de sĂ©curitĂ© - [[recettes-docker-compose]] — Templates Docker Compose