Files
2026-06-09 18:40:21 +02:00

177 lines
6.8 KiB
Markdown

---
title: Umami
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, web-analytics, privacy, self-hosted, analytics, nodejs, nextjs, postgresql, mysql]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=web-analytics]
---
# 📈 Umami
> Solution d'analyse web **privacy-first** auto-hébergeable, alternative moderne à Google Analytics, sans cookies et conforme RGPD nativement.
> Source : [selfh.st](https://selfh.st/apps/?tag=web-analytics)
## 📋 Métadonnées
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [umami.is](https://umami.is/) |
| **GitHub** | [github.com/umami-software/umami](https://github.com/umami-software/umami) |
| **License** | MIT |
| **Langage** | Node.js / Next.js (TypeScript) |
| **Étoiles** | 7 250 |
| **Dernière MAJ** | 2026-05 |
| **Catégorie** | [[cat-web-analytics]] |
## 📝 Description
Umami est une application d'**analyse web open source** conçue dès l'origine pour respecter la vie privée des visiteurs. Contrairement à Google Analytics, elle n'utilise **aucun cookie**, ne collecte aucune donnée personnelle identifiable (PII) et anonymise les adresses IP. L'outil fournit néanmoins des métriques essentielles : visiteurs uniques, pages vues, taux de rebond, durée des sessions, sources de trafic, appareils, pays et pages les plus consultées.
L'interface est **sobre, rapide et lisible**, construite avec Next.js et un design moderne. Umami supporte le suivi multi-sites depuis un seul tableau de bord, propose des **événements personnalisés**, des **objectifs de conversion**, le **suivi de campagnes UTM**, ainsi qu'un **système de partage** de dashboards en lecture seule. Les rapports peuvent être filtrés par période, pays, navigateur, système, appareil ou page.
Umami dispose également d'une offre cloud officielle (`cloud.umami.is`) et d'une **image Docker officielle** maintenue par l'équipe. C'est l'un des projets les plus populaires de l'écosystème self-hosted : la version 2 a apporté un système de **teams multi-utilisateurs**, des rôles et permissions granulaires, ainsi qu'une API REST complète. Pour les sites à fort trafic, Umami est capable de tenir des millions de pageviews par mois sur une instance modeste (1 vCPU, 1 Go RAM suffit pour démarrer).
## 🚀 Installation
### Option 1 : Docker Compose (recommandé)
```yaml
# docker-compose.yml
version: '3.8'
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-v2
container_name: umami
restart: unless-stopped
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: changez-cette-valeur-aleatoire-32-chars
depends_on:
db:
condition: service_healthy
networks:
- umami-net
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/heartbeat"]
interval: 30s
timeout: 5s
retries: 3
db:
image: postgres:16-alpine
container_name: umami-db
restart: unless-stopped
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- ./postgres-data:/var/lib/postgresql/data
networks:
- umami-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U umami"]
interval: 10s
timeout: 5s
retries: 5
networks:
umami-net:
driver: bridge
```
Lancement :
```bash
docker compose up -d
# Connexion par défaut : admin / umami
# Changer le mot de passe immédiatement depuis l'UI
```
### Option 2 : Installation manuelle (Node.js)
```bash
git clone https://github.com/umami-software/umami.git
cd umami
pnpm install
# Configurer la base dans .env (DATABASE_URL, APP_SECRET)
pnpm build
pnpm start
```
Umami requiert **Node.js 18+**, **pnpm**, et une base **PostgreSQL 12+** ou **MySQL 8+**. L'application écoute par défaut sur le port 3000.
## ⚙️ Configuration
- **APP_SECRET** : clé aléatoire de 32 caractères minimum, **obligatoire** en production.
- **DATABASE_URL** : chaîne de connexion PostgreSQL ou MySQL.
- **TRACKER_SCRIPT_NAME** : nom du script de tracking (par défaut `script.js`).
- **COLLECT_API_ENDPOINT** : endpoint de collecte, par défaut `/api/send`.
- **DISABLE_BOT_CHECK** : à activer si vous souhaitez désactiver la détection des bots.
- **MULTI_TENANT** : active le mode multi-sites (utile pour les hébergeurs).
- **Thème** : clair/sombre via le menu utilisateur.
- **Internationalisation** : interface traduite en FR, EN, ES, DE, JA, ZH, etc.
Pour tracker un site, ajoutez simplement le snippet suivant dans le `<head>` :
```html
<script async defer data-website-id="votre-website-id"
src="https://umami.votredomaine.fr/script.js"></script>
```
## 🔄 Alternatives
**Open source** :
- [[app-plausible]] — autre référence privacy-first, plus simple
- [[app-matomo]] — analytics open source très complet (PHP, on-prem ou cloud)
- [[app-ackee]] — minimaliste, base MongoDB
- [[app-goatcounter]] — ultra-léger, single binary Go
- [[app-open-web-analytics]] — fork PHP, plus traditionnel
- [[app-rybbit]] — concurrent moderne TypeScript
- [[app-litlyx]] — alternative simple avec dashboard
- [[app-swetrix]] — fork open source de Plausible, complet
- [[app-vince]] — analytics Go minimaliste
**Propriétaire (SaaS)** :
- **Google Analytics 4** — leader du marché, problèmes RGPD
- **Plausible Cloud** — version hébergée officielle
- **Fathom Analytics** — payant, simple et RGPD
- **Simple Analytics** — payant, design soigné
- **Matomo Cloud** — version hébergée officielle
- **Pirsch** — allemand, RGPD-friendly
## 🔒 Sécurité
- **Pas de cookies**, pas de fingerprinting, conforme RGPD nativement (pas de bandeau requis dans la plupart des juridictions).
- Changer le mot de passe `admin` par défaut **avant** d'exposer l'instance.
- Mettre un **reverse proxy HTTPS** (Traefik, Caddy, Nginx) devant l'application.
- Restreindre l'accès à l'interface admin via **Authelia/Authentik** ou un VPN si nécessaire.
- **APP_SECRET** doit être unique par déploiement — ne jamais réutiliser une valeur.
- Sauvegarder régulièrement la base PostgreSQL (volumes Docker, `pg_dump`).
- Mettre à jour régulièrement (release notes suivies sur GitHub).
- Limiter l'exposition du port 3000 au réseau interne ; ne pas publier la base PostgreSQL.
## 📚 Ressources
- [Documentation officielle](https://umami.is/docs)
- [GitHub umami-software/umami](https://github.com/umami-software/umami)
- [Demo live](https://app.umami.is/share/8rmKa0zZ/umami.is)
- [Docker Hub — ghcr.io/umami-software](https://github.com/orgs/umami-software/packages)
- [Awesome Umami](https://github.com/umami-software/awesome-umami)
## 🔗 Pages Liées
- [[cat-web-analytics]]
- [[recettes-docker-compose]]
- [[app-plausible]]
- [[app-matomo]]
- [[app-ackee]]
- [[app-goatcounter]]