192 lines
7.6 KiB
Markdown
192 lines
7.6 KiB
Markdown
---
|
|
title: Plausible
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, web-analytics, privacy, self-hosted, analytics, elixir, phoenix, postgresql, clickhouse]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=web-analytics]
|
|
---
|
|
|
|
# 🟢 Plausible
|
|
|
|
> Analytics web **privacy-first** léger et sans cookies, écrit en Elixir/Phoenix — un script unique de moins de 1 Ko remplace Google Analytics.
|
|
> Source : [selfh.st](https://selfh.st/apps/?tag=web-analytics)
|
|
|
|
## 📋 Métadonnées
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [plausible.io](https://plausible.io/) |
|
|
| **GitHub** | [github.com/plausible/analytics](https://github.com/plausible/analytics) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage** | Elixir / Phoenix (ClickHouse optionnel) |
|
|
| **Étoiles** | 1 589 |
|
|
| **Dernière MAJ** | 2026-05 |
|
|
| **Catégorie** | [[cat-web-analytics]] |
|
|
|
|
## 📝 Description
|
|
|
|
Plausible Analytics est une solution d'**analyse web éthique** et **légère**, conçue pour concurrencer Google Analytics sans en reprendre la lourdeur ni les compromis sur la vie privée. Le script de tracking pèse **moins de 1 Ko** (45 fois plus léger que GA), ce qui le rend idéal pour les sites qui accordent de l'importance aux **Core Web Vitals** et à la performance.
|
|
|
|
L'application est écrite en **Elixir** (framework Phoenix LiveView) et peut fonctionner avec **PostgreSQL** (par défaut) ou **ClickHouse** (recommandé pour les sites à fort trafic). Plausible ne stocke **aucune donnée personnelle**, n'utilise **pas de cookies**, est conforme au **RGPD**, **CCPA** et **ePrivacy** sans nécessiter de bandeau de consentement dans la plupart des juridictions.
|
|
|
|
Fonctionnalités clés : tableau de bord unifié multi-sites, **funnels de conversion**, **objectifs personnalisés** (events), **suivi des revenus e-commerce**, **intégrations natives** (Search Console, Google Analytics import, Stripe, Slack, email…), partage public de dashboards, **API** ouverte, **segmentation** par source, pays, page, appareil. Une fonctionnalité récente permet d'**importer les données historiques** de Google Analytics (Universal Analytics et GA4) pour faciliter la migration.
|
|
|
|
Plausible est **AGPL-3.0** pour la version self-hosted. L'éditeur propose une **offre cloud** (plausible.io) avec pricing par mensualité de trafic, et un modèle **community** (open source) ou **enterprise** (avec support et SSO).
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (PostgreSQL)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
|
|
services:
|
|
plausible:
|
|
image: plausible/analytics:v3
|
|
container_name: plausible
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
BASE_URL: https://plausible.example.com
|
|
SECRET_KEY_BASE: changez-cette-cle-aleatoire-64-chars
|
|
DATABASE_URL: postgresql://plausible:plausible@db:5432/plausible
|
|
DISABLE_AUTH: "false"
|
|
DISABLE_REGISTRATION: "true"
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
mail:
|
|
condition: service_started
|
|
networks:
|
|
- plausible-net
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: plausible-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: plausible
|
|
POSTGRES_USER: plausible
|
|
POSTGRES_PASSWORD: plausible
|
|
volumes:
|
|
- ./postgres-data:/var/lib/postgresql/data
|
|
networks:
|
|
- plausible-net
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U plausible"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
mail:
|
|
image: mailcatcher:latest
|
|
container_name: plausible-mailcatcher
|
|
restart: unless-stopped
|
|
ports:
|
|
- "1080:1080"
|
|
networks:
|
|
- plausible-net
|
|
|
|
networks:
|
|
plausible-net:
|
|
driver: bridge
|
|
```
|
|
|
|
> ⚠️ Le service `mail` (Mailcatcher) est **uniquement pour le dev/test**. En production, configurer SMTP via `MAILER_EMAIL` et `MAILER_ADAPTER=Bamboo.MailgunAdapter` (ou Postmark, SendGrid, Mailgun, SMTP).
|
|
|
|
Lancement :
|
|
|
|
```bash
|
|
docker compose up -d
|
|
# Accéder à http://localhost:8000
|
|
# Premier compte créé = admin (DISABLE_REGISTRATION: "true")
|
|
```
|
|
|
|
### Option 2 : Installation manuelle (Elixir)
|
|
|
|
```bash
|
|
git clone https://github.com/plausible/analytics.git
|
|
cd analytics
|
|
mix deps.get
|
|
mix release
|
|
# Variables d'env obligatoires : SECRET_KEY_BASE, DATABASE_URL, BASE_URL
|
|
# Démarrage : _build/prod/rel/plausible/bin/plausible start
|
|
```
|
|
|
|
Plausible requiert **Elixir 1.14+**, **OTP 25+**, **Node.js 18+** (pour le build des assets), **PostgreSQL 14+** ou **ClickHouse 23+**.
|
|
|
|
## ⚙️ Configuration
|
|
|
|
- **SECRET_KEY_BASE** : généré via `openssl rand -base64 64`, **obligatoire** en production.
|
|
- **BASE_URL** : URL publique de votre instance, utilisée pour les liens et CORS.
|
|
- **DISABLE_REGISTRATION** : `true` pour verrouiller les inscriptions (mode mono-utilisateur ou sur invitation).
|
|
- **DISABLE_AUTH** : `true` pour un mode totalement ouvert (utile derrière un SSO).
|
|
- **DATABASE_URL** : PostgreSQL ou `CLICKHOUSE_DATABASE_URL` pour ClickHouse.
|
|
- **MAILER_*** : configuration SMTP ou provider (Mailgun, Postmark, SendGrid).
|
|
- **TELEMETRY** : `false` pour désactiver la télémétrie anonyme.
|
|
- **Intégrations** : `GA_API_KEY` + `GOOGLE_APPLICATION_CREDENTIALS` pour importer les données Google Analytics, `STRIPE_API_KEY` pour le suivi des revenus Stripe, etc.
|
|
- **Script de tracking** :
|
|
|
|
```html
|
|
<script defer data-domain="votresite.com"
|
|
src="https://plausible.example.com/js/script.js"></script>
|
|
```
|
|
|
|
- **Hashed tracking** (script.js → script-hashed.js) : pour les sites partagés (sponsor, équipe) où le `data-domain` peut être personnalisé.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
**Open source** :
|
|
- [[app-umami]] — concurrent direct le plus proche
|
|
- [[app-matomo]] — analytics PHP complet, plus lourd
|
|
- [[app-ackee]] — minimaliste Node.js
|
|
- [[app-goatcounter]] — ultra-léger Go
|
|
- [[app-open-web-analytics]] — fork PHP traditionnel
|
|
- [[app-rybbit]] — TypeScript moderne
|
|
- [[app-litlyx]] — alternative simple TypeScript
|
|
- [[app-swetrix]] — fork Plausible-like complet
|
|
- [[app-vince]] — Go minimaliste
|
|
|
|
**Propriétaire (SaaS)** :
|
|
- **Google Analytics 4** — leader, mais RGPD problématique
|
|
- **Plausible Cloud** — offre officielle hébergée (~9 $/mois)
|
|
- **Fathom Analytics** — concurrent direct, même philosophie
|
|
- **Simple Analytics** — néerlandais, design premium
|
|
- **Matomo Cloud** — version managée de Matomo
|
|
- **Pirsch** — allemand, RGPD-by-design
|
|
- **Umami Cloud** — offre cloud officielle
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- **SECRET_KEY_BASE** doit être unique et **jamais** committé dans le repo.
|
|
- Plausible Cloud envoie par défaut la **télémétrie** : à désactiver via `TELEMETRY=false`.
|
|
- Mettre Plausible derrière un **reverse proxy HTTPS** (Caddy, Traefik, Nginx).
|
|
- Si activée, l'**inscription ouverte** (`DISABLE_REGISTRATION=false`) expose une surface d'attaque : préférer invitations ou SSO.
|
|
- **Sauvegardes PostgreSQL** : `pg_dump` quotidien, snapshots volumes.
|
|
- Activer **fail2ban** sur le reverse proxy et l'API.
|
|
- Mettre à jour régulièrement (sorties fréquentes — minor toutes les 2-3 semaines).
|
|
- **Rate limiting** sur `/api/event` : Plausible dispose d'un rate limiter natif, le surveiller.
|
|
- CORS : configurer `BASE_URL` strictement, sans wildcard.
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Documentation officielle](https://plausible.io/docs)
|
|
- [GitHub plausible/analytics](https://github.com/plausible/analytics)
|
|
- [Plausible Community](https://plausible.io/community)
|
|
- [Self-hosting guide](https://plausible.io/docs/self-hosting)
|
|
- [Configuration reference](https://plausible.io/docs/config)
|
|
- [Awesome Plausible](https://github.com/plausible/awesome-plausible)
|
|
|
|
## 🔗 Pages Liées
|
|
|
|
- [[cat-web-analytics]]
|
|
- [[recettes-docker-compose]]
|
|
- [[app-umami]]
|
|
- [[app-matomo]]
|
|
- [[app-swetrix]]
|