Comment installer Plausible Analytics sur Ubuntu 22.04

Introduction

Plausible Analytics est une application d’analyse Web open source et auto-hébergée écrite en Elixir qui se concentre sur la simplicité et la confidentialité. Elle stocke les données sur les visiteurs de votre site Web dans les bases de données PostgreSQL et ClickHouse.

Dans ce tutoriel, vous installerez Plausible en utilisant Docker Compose, puis installerez Nginx pour agir en tant que proxy inverse pour l’application Plausible. Enfin, vous activerez des connexions HTTPS sécurisées en utilisant Certbot pour télécharger et configurer des certificats SSL à partir de l’autorité de certification Let’s Encrypt.

Prérequis

Pour mener à bien ce tutoriel, vous aurez d’abord besoin des éléments suivants :

Remarque : Ces étapes préalables peuvent être ignorées si vous utilisez l’Image Docker en un clic de DigitalOcean. Cette image aura Docker, Docker Compose et UFW déjà installés et configurés.

Lancez une nouvelle image Docker dans la région de votre choix, puis connectez-vous en tant qu’utilisateur root et suivez le tutoriel. En option, vous pourriez omettre les parties sudo de toutes les commandes, mais ce n’est pas nécessaire.

Enfin, pour activer SSL, vous aurez besoin d’un nom de domaine pointé vers l’adresse IP publique de votre serveur. Cela devrait être quelque chose comme example.com ou plausible.example.com, par exemple. Si vous utilisez DigitalOcean, veuillez consulter notre Guide de démarrage rapide DNS pour des informations sur la création de ressources de domaine dans notre panneau de contrôle.

Lorsque vous avez satisfait à toutes les prérequis, passez à l’Étape 1, où vous téléchargerez et lancerez le logiciel Plausible.

Étape 1 – Installation de Plausible Analytics avec Docker Compose

Plausible a créé un dépôt Git avec tous les fichiers de configuration nécessaires pour auto-héberger le logiciel. Votre première étape sera de cloner ce dépôt sur votre serveur, de mettre à jour deux fichiers de configuration, puis de démarrer les conteneurs d’application et de base de données Plausible.

Connectez-vous maintenant à votre serveur.

Tout d’abord, utilisez la commande cd pour naviguer dans le répertoire /opt:

  1. cd /opt

Ensuite, utilisez la commande git pour cloner le dépôt depuis GitHub dans un nouveau répertoire appelé plausible dans /opt:

  1. sudo git clone https://github.com/plausible/hosting plausible

Cela téléchargera tous les fichiers de configuration nécessaires dans /opt/plausible. Déplacez-vous dans le répertoire nouvellement créé:

  1. cd plausible

Le premier fichier que nous devons modifier est plausible-conf.env, un fichier qui contient quelques variables de configuration que nous devons définir.

Avant d’ouvrir le fichier pour le modifier, générez un nouvel hachage aléatoire:

  1. openssl rand 64 | base64 -w 0 ; echo

Cela utilise la commande openssl pour générer 64 caractères aléatoires, et la commande base64 pour les encoder en base64. Copiez la sortie dans votre presse-papiers, puis ouvrez le fichier de configuration:

  1. sudo nano plausible-conf.env

Le fichier contient cinq variables que vous devrez remplir :

plausible-conf.env
ADMIN_USER_EMAIL=your_email_here
ADMIN_USER_NAME=admin_username
ADMIN_USER_PWD=admin_password
BASE_URL=https://your_domain_here
SECRET_KEY_BASE=paste_your_random_characters_here

Remplissez l’e-mail, le nom d’utilisateur, le mot de passe et l’URL de base, puis collez les caractères aléatoires que vous avez générés avec openssl.

Remarque : Le mot de passe que vous spécifiez ici doit comporter au moins six caractères. Si vous utilisez une adresse IP brute et non un nom de domaine, assurez-vous de la précéder de http://.

Enregistrez le fichier (CTRL+O puis ENTRÉE dans nano) et fermez votre éditeur (CTRL+X).

Il existe d’autres options de configuration que vous pouvez ajouter à ce fichier, mais cet ensemble minimal vous permettra de démarrer. Vous trouverez plus d’informations sur la configuration de Plausible via plausible-conf.env dans la documentation officielle d’auto-hébergement de Plausible Analytics.

Maintenant, vous devez mettre à jour le fichier docker-compose.yml. Ce fichier est celui que la commande docker-compose utilise pour configurer et lancer plusieurs conteneurs Docker. Nous devons modifier une option dans ce fichier : l’adresse IP à laquelle Plausible est lié.

  1. sudo nano docker-compose.yml

Trouvez la section qui définit le conteneur Plausible. Elle commencera par plausible :. Dans cette section, trouvez la définition ports : et mettez-la à jour comme suit :

docker-compose.yml
    ports:
      - 127.0.0.1:8000:8000

Cela garantit que Plausible n’écoute que sur l’interface localhost et n’est pas accessible publiquement. Même si vous avez configuré un pare-feu UFW, en raison de certaines particularités du fonctionnement du réseau Docker, si vous ne prenez pas cette étape, votre conteneur Plausible serait accessible au public sur le port 8000, et nous voulons uniquement y accéder via le proxy Nginx que vous configurerez à l’étape suivante.

Enregistrez et fermez le fichier docker-compose.yml, puis utilisez docker-compose pour télécharger, configurer et lancer les conteneurs:

  1. sudo docker compose up --detach

Le drapeau --detach indique à docker-compose de créer les conteneurs en arrière-plan, détachés de notre session de terminal:

Output
. . . Starting plausible_plausible_events_db_1 ... done Starting plausible_plausible_db_1 ... done Starting plausible_mail_1 ... done Starting plausible_plausible_1 ... done

Le conteneur de l’application ainsi que tous ses conteneurs de messagerie et de base de données de support devraient maintenant être en cours d’exécution. Vous pouvez le vérifier en utilisant la commande curl pour récupérer la page d’accueil de votre nouveau conteneur Plausible fonctionnant sur localhost:

  1. curl http://localhost:8000
Output
<html><body>You are being <a href="/login">redirected</a>.</body></html>

Si du HTML est affiché dans votre terminal, vous savez que le serveur est opérationnel.

Ensuite, nous allons configurer Nginx pour faire une reverse proxy de Plausible de localhost:8000 vers le public.

Étape 2 — Installation et configuration de Nginx

Mettre en place un serveur web tel que Nginx devant votre serveur Elixir peut améliorer les performances en déchargeant la mise en cache, la compression et le service de fichiers statiques vers un processus plus efficace. Nous allons installer Nginx et le configurer pour faire du proxy inversé des requêtes vers Plausible, ce qui signifie qu’il se chargera de gérer les requêtes de vos utilisateurs vers Plausible et vice versa.

Tout d’abord, actualisez votre liste de paquets, puis installez Nginx à l’aide de apt:

  1. sudo apt update
  2. sudo apt install nginx

Autorisez le trafic public vers les ports 80 et 443 (HTTP et HTTPS) en utilisant le profil d’application UFW « Nginx Full »:

  1. sudo ufw allow "Nginx Full"
Output
Rule added Rule added (v6)

Ensuite, ouvrez un nouveau fichier de configuration Nginx dans le répertoire /etc/nginx/sites-available. Nous l’appellerons plausible.conf, mais vous pouvez utiliser un nom différent:

  1. sudo nano /etc/nginx/sites-available/plausible.conf

Collez ce qui suit dans le nouveau fichier de configuration, en veillant à remplacer votre_domaine_ici par le domaine que vous avez configuré pour pointer vers votre serveur Plausible. Cela devrait être quelque chose comme plausible.example.com, par exemple:

/etc/nginx/sites-available/plausible.conf
server {
    listen       80;
    listen       [::]:80;
    server_name  your_domain_here;

    access_log  /var/log/nginx/plausible.access.log;
    error_log   /var/log/nginx/plausible.error.log;

    location / {
      proxy_pass http://localhost:8000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Cette configuration est uniquement en HTTP pour le moment, car nous laisserons Certbot se charger de configurer SSL à l’étape suivante. Le reste de la configuration met en place les emplacements des journaux, puis transfère tout le trafic vers http://localhost:8000, l’instance Plausible que nous avons démarrée à l’étape précédente.

Enregistrez et fermez le fichier, puis activez la configuration en le liant dans /etc/nginx/sites-enabled/:

  1. sudo ln -s /etc/nginx/sites-available/plausible.conf /etc/nginx/sites-enabled/

Utilisez nginx -t pour vérifier que la syntaxe du fichier de configuration est correcte:

  1. sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Et enfin, rechargez le service nginx pour prendre en compte la nouvelle configuration:

  1. sudo systemctl reload nginx

Votre site Plausible devrait désormais être disponible en HTTP simple. Chargez http://votre_domaine_ici et cela ressemblera à ceci :

Maintenant que votre site est en ligne en HTTP, il est temps de sécuriser la connexion avec Certbot et les certificats Let’s Encrypt.

Étape 3 — Installation de Certbot et Configuration des Certificats SSL

Grâce à Certbot et à l’autorité de certification gratuite Let’s Encrypt, l’ajout du chiffrement SSL à notre application Plausible ne prendra que deux commandes.

Tout d’abord, installez Certbot et son plugin Nginx :

  1. sudo apt install certbot python3-certbot-nginx

Ensuite, exécutez certbot en mode --nginx, et spécifiez le même domaine que celui que vous avez utilisé dans la configuration server_name de Nginx :

  1. sudo certbot --nginx -d your_domain_here

Vous serez invité à accepter les conditions d’utilisation de Let’s Encrypt et à saisir une adresse e-mail.

Ensuite, on vous demandera si vous souhaitez rediriger tout le trafic HTTP vers HTTPS. C’est à vous de décider, mais cela est généralement recommandé et sûr à faire.

Après cela, Let’s Encrypt confirmera votre demande et Certbot téléchargera votre certificat :

Output
Congratulations! You have successfully enabled https://plausible.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=plausible.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/plausible.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/plausible.example.com/privkey.pem Your cert will expire on 2022-12-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Certbot rechargera automatiquement Nginx pour prendre en compte la nouvelle configuration et les certificats. Rechargez votre site et il devrait vous basculer automatiquement en HTTPS si vous avez choisi l’option de redirection.

Votre site est désormais sécurisé et il est sûr de vous connecter avec les détails utilisateur par défaut que vous avez configurés à l’étape 1. Vous serez ensuite invité à vérifier votre inscription, et un code de vérification vous sera envoyé par e-mail à l’adresse que vous avez configurée.

Par défaut, cet e-mail est envoyé directement depuis votre serveur, ce qui peut poser des problèmes en raison de diverses mesures de prévention du spam. Si vous ne recevez pas l’e-mail, vérifiez votre dossier de spam. S’il n’est pas là non plus, vous devrez peut-être configurer des détails SMTP plus appropriés dans le fichier plausible-conf.env. Consultez la documentation officielle de Plausible sur l’auto-hébergement pour plus de détails sur la configuration du courrier.

Lorsque vous vous connectez avec succès, vous verrez une invite pour configurer votre premier site Web avec Plausible:

Vous avez installé et sécurisé avec succès votre logiciel d’analyse Plausible.

Conclusion

Dans ce tutoriel, vous avez lancé l’application Plausible Analytics et ses conteneurs auxiliaires associés en utilisant Docker Compose, puis configuré un proxy inverse Nginx et sécurisé en utilisant des certificats SSL Let’s Encrypt.

Vous êtes maintenant prêt à configurer votre site Web et à ajouter le script de suivi de Plausible Analytics. Veuillez consulter la documentation officielle de Plausible Analytics pour plus d’informations sur l’utilisation du logiciel et la configuration de votre site.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-plausible-analytics-on-ubuntu-22-04