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

  1. TĂ©lĂ©charger le script d’installation :

    $ curl -fsSL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh
    
  2. Lancer le script :

    $ bash nodesource_setup.sh
    
  3. Mise Ă  jour de la liste des paquets et installation de Node.js

    $ sudo apt update
    $ sudo apt install nodejs
    

Umami

  1. 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
    
  2. CrĂ©er un fichier .env pour la configuration d’Umami :

    DATABASE_URL=postgresql://umami:<mot de passe>@localhost:5432/umami
    
  3. Build de l’application :

    sudo -u www-data yarn build
    
  4. 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

  1. 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;
    }
    
  2. Activer le vhost :

    $ sudo ln -s /etc/nginx/sites-available/umami /etc/nginx/sites-enabled/umami
    
  3. Redémarrer Nginx :

    $ sudo systemctl restart nginx
    
  4. 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.

  1. Ajouter la directive suivante dans .env :

    IGNORE_IP=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx
    
  2. 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

Sources