Aller au contenu

Installation

eodia analytics n’a besoin que d’un service à côté de lui : PostgreSQL (17 conseillé), qui porte à la fois le paramétrage, les données brutes et les vues lues par eodia insights. Pas de courtier de messages, pas de base analytique à part. Le dépôt fournit deux fichiers Compose : docker-compose.yml pour développer, docker-compose.prod.yml pour la production.

Prérequis : Node.js 22 ou plus, pnpm 9 et Docker.

Fenêtre de terminal
git clone https://github.com/eodia/analytics.git && cd analytics
docker compose up -d # PostgreSQL, sur le port 55436
pnpm install
pnpm --filter @eodia-analytics/tracker dev # le script, reconstruit dans apps/tracker/dist/a.js
pnpm --filter @eodia-analytics/api dev # l’API, sur le port 4600 (worker inclus)
pnpm --filter @eodia-analytics/web dev # l’interface, sur le port 3600

Ouvrez http://localhost:3600 et connectez-vous avec admin@eodia.local / eodia-analytics. Au premier démarrage, une instance de démonstration est créée : la boutique fictive Maison Arvor (en mode cookie de mesure) et le blog d’Arvor (sans cookie). Voir Premiers pas.

ServiceAdresseRôle
Interfacehttp://localhost:3600Next.js ; relaie /api/* vers l’API
APIhttp://localhost:4600REST /api/v1, authentification, /a.js, /collect
Page d’essaihttp://localhost:4600/demoune page qui porte la balise du site de démo
PostgreSQLlocalhost:55436la base analytics (schémas public, collect, analytics)

Tous les ports sont publiés sur 127.0.0.1 seulement. Pour avoir de quoi analyser dans insights :

Fenêtre de terminal
pnpm demo:traffic # quelques semaines de visites, de sources, d’événements et de clics
pnpm demo:traffic --live # puis quelques visites par minute, pour l’onglet Vérification

Une image unique, construite par le Dockerfile du dépôt, contient l’API (avec le script), l’interface et le worker. docker-compose.prod.yml l’assemble avec PostgreSQL et Caddy, qui obtient le certificat HTTPS.

Prérequis : un serveur avec Docker et Compose v2, un nom de domaine qui pointe vers lui, et les ports 80 et 443 ouverts. La pile est légère : quelques centaines de mégaoctets de mémoire suffisent pour commencer ; c’est PostgreSQL qui grandit avec le trafic.

À côté de docker-compose.prod.yml, créez un fichier .env :

Fenêtre de terminal
DOMAIN=stats.exemple.fr
SECRET_KEY=<openssl rand -hex 32>
DB_PASSWORD=<un mot de passe fort>
READER_PASSWORD=<le mot de passe du rôle lu par eodia insights>
VariableRôle
DOMAINle domaine public ; Caddy obtient son certificat Let’s Encrypt
SECRET_KEY64 caractères hexadécimaux : chiffre les secrets des sites
DB_PASSWORDle mot de passe du PostgreSQL de l’application
READER_PASSWORDfacultatif : sans lui, le rôle eodia_analytics existe mais ne peut pas se connecter

Les autres variables — adresse de collecte, branchement à insights, SSO, e-mails — sont décrites dans Variables d’environnement.

Fenêtre de terminal
docker compose -f docker-compose.prod.yml up -d --build

Au premier démarrage, l’API applique les migrations : les trois schémas, les vues d’analytics et leurs commentaires, le rôle de lecture. Ouvrez ensuite https://stats.exemple.fr : le premier écran crée le compte administrateur.

CheminService
/a.js, /p.jsl’API : le script, et le dessin du mode aperçu
/collect, /collect/*l’API : le point de collecte public et la collecte côté serveur
/api/*l’API : REST et authentification
tout le restel’interface

Caddy ne tient aucun journal d’accès : il garderait l’adresse IP des visiteurs, que l’application ne stocke jamais.

  • Premiers pas : créer un site, coller la balise, voir « Reçu ✓ ».
  • Docker : l’image, ses rôles et les services de production.
  • Brancher eodia insights : la source PostgreSQL et le rôle de lecture.

eodia analytics est un logiciel libre d’Eodia.