Introduction
MalgrĂ© ce titre Ă©vocateur, il n’agit pas d’un article de recette, mais plutĂ´t d’une solution d’analyse Web alternative Ă Google Analytics simple, sobre et efficace.
Base de données
PrĂ©requis : disposer d’un serveur de base de donnĂ©es PostgreSQL.
CrĂ©er la base de donnĂ©es et l’utilisateur pour Umami :
$ sudo -i -u postgres psql -c "CREATE DATABASE umami;"
$ sudo -i -u postgres psql -c "CREATE USER umami WITH password '<mot de passe>';"
$ sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE umami TO umami;"
NodeJS
-
TĂ©lĂ©charger le script d’installation :
$ curl -fsSL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh -
Lancer le script :
$ bash nodesource_setup.sh -
Mise Ă jour de la liste des paquets et installation de Node.js
$ sudo apt update $ sudo apt install nodejs
Umami
-
Installer Umami et ses dépendances :
$ cd /opt/ $ sudo git clone https://github.com/umami-software/umami.git $ sudo chown -R www-data umami/ $ cd umami $ sudo -u www-data yarn install -
Créer un fichier
.envpour la configuration d’Umami :DATABASE_URL=postgresql://umami:<mot de passe>@localhost:5432/umami -
Build de l’application :
sudo -u www-data yarn build -
DĂ©marrer l’application :
sudo -u www-data yarn start
Par dĂ©faut, l’application est publiĂ©e sur le port 3000, nous allons utiliser Nginx pour la rendre disponible sur le port 443.
Service
Pour faire tourner l’application en service, il est possible d’utiliser un gestionnaire de processus spĂ©cifique Ă NodeJS (PM2).
$ sudo mkdir /var/www/.pm2
$ sudo chown www-data: /var/www/.pm2
$ yarn global add pm2
$ cd /opt/umami
$ sudo -u www-data pm2 start yarn --name umami -- start
Pour lancer pm2 au démarrage du serveur :
$ sudo -u www-data pm2 startup
$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u www-data --hp /var/www
$ sudo -u www-data pm2 save
Nginx
-
Crée le fichier de configuration pour le vhost
/etc/nginx/site-available/umami :server { listen 80; server_name <nom d'hôte>; location / { proxy_pass http://localhost:3000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } include conf.d/restrictions.cnf; } -
Activer le vhost :
$ sudo ln -s /etc/nginx/sites-available/umami /etc/nginx/sites-enabled/umami -
Redémarrer Nginx :
$ sudo systemctl restart nginx -
GĂ©nĂ©rer un certificat TLS et activer HTTPS avec Let’s Encrypt :
$ sudo certbot --nginx --email <compte Let's Encrypt> -d <nom d'hĂ´te>
Conclusion
Allez à <nom d'hôte>, connectez-vous et créez votre premier tracker.
Bonus
Exclure des adresses IP
Il est possible d’exclure sa propre IP de la collecte des donnĂ©es afin de ne pas fausser les statistiques.
-
Ajouter la directive suivante dans
.env :IGNORE_IP=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx -
RedĂ©marrer l’application :
$ sudo -u www-data pm2 restart umami
Mises Ă jour
Aller dans le répertoire où Umami est installé.
$ cd /opt/umami
Arrêter Umami :
$ sudo -u www-data pm2 stop umami
Lancer la mise à jour :
$ sudo -u www-data git pull
$ sudo -u www-data yarn install
$ sudo -u www-data yarn build
Relancer Umami :
$ sudo -u www-data pm2 start umami