Installer Shynet sur Debian 12
Vous avez un site et souhaitez probablement avoir une idée sur le nombre de visiteur, les pages les plus regardées etc…
Plusieurs solutions existent, dont la plus connue est évidemment Google Analytics.
Mais comme vous ne voulez pas donner davantage de données à un géant du web, et que vous vous souciez un minimum de vos utilisateurs, vous cherchez une solution open-source, simple et efficace.
J’ai essayé Plausible, mais sa consommation excessive de RAM pour mon VPS eco+ m’a du faire basculer sur une autre solution. J’ai essayé Umami avant de vouloir essayer une autre solution encore qui a fini par me convaincre:
Je vous présente donc Shynet . Simple et efficace, compatible RGPD et ne fais aucun tracking donc pas de popup embêtante.
C’est parti !
Installation
On commence par récupérer l’image Docker:
docker pull milesmcc/shynet:latest
On va créer un fichier de configuration à partir de la template officielle:
mkdir /home/shynet
cd /home/shynet
curl https://raw.githubusercontent.com/milesmcc/shynet/master/TEMPLATE.env -o .env
On peut utiliser PostgreSQL ou SQLite. Le premier nécessite une installation supplémentaire, et n’apporte rien de plus. On va donc rester avec SQLite.
Pour ça on va modifier le fichier de config (avec nano ou vim), en retirant le ’#’ à la ligne suivante:
#SQLITE=True
afin d’obtenir
SQLITE=True
De plus, il faut préciser le nom de domaine par lequel on accédera à l’interface:
ALLOWED_HOSTS=analytics.domaine.fr
CSRF_TRUSTED_ORIGINS=https://analytics.domaine.fr
Ensuite, on crée un volume Docker pour la persistance de la base de donnée, puis on initialise l’instance avec la commande suivante:
docker volume create shynet_db
docker run --env-file=./.env -v shynet_db:/var/local/shynet/db:rw milesmcc/shynet:latest
Ce qui nous renvoi
[2024-03-15 23:24:06 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2024-03-15 23:24:06 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
[2024-03-15 23:24:06 +0000] [1] [INFO] Using worker: sync
[2024-03-15 23:24:06 +0000] [10] [INFO] Booting worker with pid: 10
On fait un petit CTRL+C pour couper tout ça, puis on crée notre compte admin:
docker run --env-file=./.env -v shynet_db:/var/local/shynet/db:rw milesmcc/shynet:latest ./manage.py registeradmin admin@domaine.fr
Ce qui nous renvoi un message de validation avec un mot de passe temporaire à garder sous le coude pour la suite:
Successfully created a Shynet superuser
Email address: admin@domaine.fr
Password: motdepasse
Facultatif: on execute ensuite cette commande pour donner un label à notre instance Shynet:
docker run --env-file=./.env -v shynet_db:/var/local/shynet/db:rw milesmcc/shynet:latest ./manage.py whitelabel "Domaine Analytics"
Ce qui nous donne:
Successfully set the whitelabel to 'Domaine Analytics'
Et pour finir, on lance notre instance Shynet (remplacer 9103 par le port que vous comptez utiliser avec votre reverse-proxy):
docker run -d --name shynet --env-file=./.env -p 9103:8080 -v shynet_db:/var/local/shynet/db:rw milesmcc/shynet:latest
Pour rendre l’interface accessible en utilisant Caddy server, il faut ajouter la configuration suivante au Caddyfile:
analytics.domaine.fr {
reverse_proxy 127.0.0.1:9103 {
header_up X-Real-IP {remote_host}
}
}
On sauvegarde et on relance Caddy
sudo systemctl reload caddy
On peut alors se connecter sur analytics.domaine.fr avec les identifiants renvoyé par la console un peu plus haut.
Il faudra alors penser à bien modifier le mot de passe du compte et c’est tout bon!
Pour ajouter et configurer votre site, l’interface est suffisament simple et parlante, donc le tuto s’arrête la :)