Tout comme la majorité des gens (moi y compris 😎) lorsque vous décidez de mesurer le trafic de votre site vous vous orientez naturellement vers notre ami Google avec Google Analytics.
Cependant si vous souhaitez garder la main sur ces données vous pouvez vous orienter vers une solution open-source que vous hébgergez vous-même comme Matomo par exemple. Matomo est un outil très complet par contre si vous voulez juste suivre quelques métriques (pages vues, nombre de visiteurs,…) et que vous souhaitez quelque chose de plus simple alors vous devriez essayer Fathom.
Qu’est ce que Fathom
Fathom Analytics est un outil qui fournit des statistiques simples et utiles sur vos sites web sans suivre ou stocker les données personnelles de vos utilisateurs. Vous pouvez installer Fathom sur votre propre serveur gratuitement ou bien payer pour utiliser la version hébergée.
Ci-dessous le dashboard de Fathom :
Installation et configuration
Pour commencer nous allons voir comment fonctionne Fathom en le lançant en local sur notre machine avec Docker. Puis nous verrons ensuite comment l’utiliser sur notre propre serveur.
Installation local
Pour lancer Fathom en local c’est vraiment très simple il suffit de saisir la commande suivante :
docker run -d -p 8080:8080 usefathom/fathom:latest
Ensuite si vous vous rendez à l’adresse localhost:8080 vous devriez voir la page suivante vous permettant de définir le nom de votre site puis ensuite récupérer le code de tracking à ajouter sur votre site.
Création d’un utilisateur admin
Une fois que vous avez configuré votre site, c’est à dire définir le nom et récupérer le code de tracking. Vous remarquez que vous ne pouvez plus modifier les informations de votre site ou bien en ajouter un nouveau. Cela est dû au fait que par défaut le dashboard Fathom une fois que vous l’avez configuré est accessible publiquement et ne permet donc pas d’éditer ou d’ajouter un autre site web.
Si l’on souhaite restreindre l’accès au dashboard ou bien ajouter plusieurs sites il faut créer un utilisateur admin.
Pour ajouter un utilisateur il faut utiliser la commande suivante :
fathom user add --email="john@email.com" --password="strong-password"
Cependant puisque nous utilisons Docker nous allons devoir exécuter cette commande depuis notre container.
Premièrement il faut récupérer l’id de notre container Fathom :
docker ps
Une fois que vous avez récupéré l’id du container lancez la commande suivante en remplaçant [CONTAINERID]_ par votre id :
docker exec -it [CONTAINER_ID] ./fathom user add --email="john@email.com" --password="strong-password"
Enfin si vous rafraîchissez la page vous devriez voir une page vous demandant de vous connecter.
Configuration
Maintenant que nous avons vu comment lancer Fathom et comment ajouter un utilisateur, nous allons voir comment modifier la configuration par défaut.
Voici la liste des différentes valeurs de configuration :
Name | Default | Description |
---|---|---|
FATHOM_DEBUG | false |
If true will write more log messages. |
FATHOMSERVERADDR | :8080 |
The server address to listen on |
FATHOM_GZIP | false |
if true will HTTP content gzipped |
FATHOMDATABASEDRIVER | sqlite3 |
The database driver to use: mysql , postgres or sqlite3 |
FATHOMDATABASENAME | The name of the database to connect to (or path to database file if using sqlite3) | |
FATHOMDATABASEUSER | Database connection user | |
FATHOMDATABASEPASSWORD | Database connection password | |
FATHOMDATABASEHOST | Database connection host | |
FATHOMDATABASESSLMODE | For a list of valid values, look here for Postgres and here for MySQL | |
FATHOMDATABASEURL | Can be used to specify the connection string for your database, as an alternative to the previous 5 settings. | |
FATHOM_SECRET | Random string, used for signing session cookies |
Pour modifier la configuration nous avons deux méthodes possibles :
- En spécifiant les valeurs en tant que variables d’environnement de notre container.
- En créant un fichier fathom.env avec les différentes valeurs puis indiquer à Fathom d’utiliser notre fichier.
Pour l’exemple nous allons juste modifier le port de Fathom à l’aide de FATHOMSERVERADDR
Commençons en spécifiant la valeur en tant que variable d’environnement :
Dans ce cas nous allons passer la variable d’environnement à l’aide de l’option -e de la commande docker run :
docker run -d -e FATHOM_SERVER_ADDR=3000 -p 8080:3000 usefathom/fathom:latest
Ici puisqu’on change le port de Fathom il faut bien penser à changer le mappage du port de notre container avec -p 8080:3000.
Et maintenant nous allons voir la méthode avec le fichier fathom.env. Créez un dossier fathom puis dedans ajoutez un fichier fathom.env :
mkdir fathom & cd fathom
touch fathom.env
Dans le fichier fathom.env ajoutez la valeur suivante :
FATHOM_SERVER_ADDR=3000
Pour terminer lancez la commande :
docker run -v $(pwd)/fathom.env:/app/fathom.env -p 8080:3000 usefathom/fathom:latest /bin/bash -c "./fathom --config=./fathom.env server"
Installation sur un serveur avec un domaine et https
Maintenant que nous avons vu la base du fonctionnement et de la configuration de Fathom nous allons voir comment l’installer sur notre serveur et le rendre accessible via un domaine avec https.
Pour ce faire nous allons utiliser Caddy Server (si vous ne connaissez pas Caddy passez par ici d’abord) et docker-compose.
Nous allons aussi utiliser MySQL comme base de données pour Fathom (à noter que si vous n’avez pas déjà une base de données MySQL vous pouvez très bien rester sur SQlite même si votre site possède un gros trafic plus d’infos).
Le domaine utilisé pour l’exemple sera data.exemple.com.
Commencez par créer un dossier nommé analytics-srv :
mkdir analytics-srv && cd analytics-srv
Ensuite dans ce dossier créez un dossier Caddy et un fichier docker-compose.yml :
mkdir Caddy && touch docker-compose.yml
Dans le fichier docker-compose.yml ajoutez la configuration suivante :
version: '3'
services:
server:
image: abiosoft/caddy
container_name: caddy
ports:
- '80:80'
- '443:443'
volumes:
- './Caddy/Caddyfile:/etc/Caddyfile'
- './Caddy:/root/.caddy'
fathom:
image: usefathom/fathom:latest
ports:
- '8080:8080'
environment:
- 'FATHOM_SERVER_ADDR=:8080'
- 'FATHOM_GZIP=true'
- 'FATHOM_DEBUG=false'
- 'FATHOM_DATABASE_DRIVER=mysql'
- 'FATHOM_DATABASE_NAME=fathom'
- 'FATHOM_DATABASE_USER=user'
- 'FATHOM_DATABASE_PASSWORD=password'
- 'FATHOM_DATABASE_HOST=mysql:3306'
- 'FATHOM_SECRET=fathomsecret'
links:
- 'mysql:mysql'
depends_on:
- mysql
restart: always
mysql:
image: 'mysql:5'
volumes:
- ./mysql-data:/var/lib/mysql
ports:
- '3306:3306'
environment:
- 'MYSQL_ALLOW_EMPTY_PASSWORD=false'
- 'MYSQL_DATABASE=fathom'
- 'MYSQL_PASSWORD=password'
- 'MYSQL_ROOT_PASSWORD=rootpassword'
- 'MYSQL_USER=user'
Remplacez les valeurs des variables FATHOMDATABASEUSER, FATHOMDATABASEPASSWORD, FATHOMSECRET, MYSQLPASSWORD, MYSQLROOTPASSWORD, MYSQL_USER avec vos valeurs.
Pour terminer ajoutez le fichier Caddyfile dans le dossier Caddy :
data.exemple.com {
proxy / fathom:8080
}
Puis lancez la commande :
docker-compose up
Maintenant il ne vous reste plus qu’à définir si vous souhaitez laisser l’accès au dashboard publique ou bien ajouter un utilisateur comme on l’a vu précédemment. Puis enfin ajouter le code de tracking sur votre site.
Partagez cet article si vous le souhaitez et si vous avez des questions vous pouvez me contacter par le chat.