Compare commits

...

2 commits

Author SHA1 Message Date
de4185a19f Add: contre la montre 2025-10-08 22:48:00 +02:00
e7bd1de251 Add: installation de Goaccess sur NixOs 2025-10-08 22:47:32 +02:00
4 changed files with 251 additions and 0 deletions

View file

@ -0,0 +1,36 @@
+++
date = '2025-10-09T00:45:44+02:00'
draft = false
tags = [ "running","watch" ]
title = 'Against the clock'
+++
Im on my fourth run now.
And it feels better each time: Ive found my easy pace, the one that lets me hold the distance without pain. My heart rate doesnt spike as much, and I dont have to stop nearly as often to walk.
**All good, right?**
Not for everyone.
Theres one who doesnt agree: my Polar Pacer Pro. Run after run, it keeps scoring me lower and lower.
**Why?**
I honestly dont know. Maybe its reading between the lines.
Has nothing to do with running itself, but I havent been sleeping well lately. Choppy nights, built-up fatigue… Maybe thats messing with my heart rate. Maybe thats enough to throw the numbers off and make me look worse than I feel. Could be.
Or maybe its just because Im running shorter distances.
**So, who should I trust?**
The watch?
Or how I feel?
Ive chosen to trust my body.
Because at the end of the day, the watch still does one useful thing: it forces me to slow down. No red-zone cardio, no unconscious sprinting. Just a steady rhythm I can hold without suffering.
If fatigue is skewing the numbers, then fine. Thats life. What matters isnt impressing a watch.
What matters is not getting injured, building consistency, and keeping the joy alive.

View file

@ -0,0 +1,49 @@
+++
date = '2025-10-09T00:45:44+02:00'
draft = false
tags = [ "running", "montre" ]
title = 'Quand la montre voit ce que je ne vois pas'
+++
Mardi, jétais persuadé davoir fait une bonne séance.
Je courais très lentement, je restais en endurance fondamentale, jai même réussi à tenir sans douleur.
Bref, je croyais que cétait une réussite.
Sauf que… aujourdhui, en comparant, je me rends compte que je me trompais complètement.
**Mardi, la séance trompeuse**
Sur le moment, je pensais être « bien ».
Mais pour ne pas exploser mon cardio, jai dû ralentir à lextrême : plus de 10 minutes au kilomètre, presque marcher.
Ma Polar ma mis une note bof, et je me suis dit quelle exagérait.
En réalité, jétais simplement fatigué. Trop fatigué pour courir normalement.
La montre a mis le doigt dessus avant moi.
**Aujourdhui, la différence**
Deux jours plus tard, jai couru dans les mêmes conditions.
Résultat : 1 km de plus en 30 minutes, une récupération après leffort beaucoup plus rapide, et une sensation de facilité que je navais pas mardi.
Preuve que ce jour-là, je tirais sur la corde sans le savoir.
**La vraie leçon**
Ce que jai compris : la montre nest pas un juge, mais un révélateur.
Elle ne « sanctionne » pas mes séances, elle me montre quand je suis dans le dur, même si je refuse de ladmettre.
La fatigue ne se voit pas toujours. On croit aller bien, mais les chiffres disent le contraire.
Et dans ce cas, la meilleure chose à faire nest pas de forcer, mais dadapter.
**Ce que je retiens**
Mieux vaut un footing à 10 minutes au kilomètre que pas de footing du tout.
Et parfois, accepter de ralentir, cest justement ça qui permet de progresser sans se blesser.
Alors oui, mardi jai cru être bien.
Mais cest aujourdhui que je réalise que jai eu raison de ralentir.
Pas pour la performance, mais pour la durée.

View file

@ -0,0 +1,84 @@
+++
date = '2025-10-06T01:00:51+02:00'
title = 'Goaccess install on NixOs'
tags = [ "nixos","statistics" ]
+++
When you self-host, there comes a moment when curiosity takes over.
Who visits my site? At what time? Which pages actually get attention?
And, sooner or later, the big question:
Is anyone, anywhere, really reading what I write?
You could go for Google Analytics or Matomo — but that comes with its own baggage:
- Questionable privacy practices,
- Third-party scripts injected into your site,
- Extra weight on every page,
- And a dependency on services I dont want.
GoAccess, on the other hand, takes the minimalist route.
No scripts, no tracking, no cookie banner — it reads directly from the web server logs (in my case, Caddy) and generates a clear, efficient report.
Thats the kind of philosophy I like:
- Privacy-friendly — nothing leaves my server, no profiling.
- Simple — I dont touch my site, I just process the logs.
- Fast — one command and I instantly see who visited and how.
- Self-hosting friendly — no database, no bloated setup.
In short, GoAccess fits perfectly with what I look for in my homelab:
→ Getting visibility into my services without turning it into a Rube Goldberg machine.
Minimal setup on NixOS
GoAccess is available directly from the official repository.
I just added the package and a small systemd service to generate a static report every hour:
```
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
goaccess
];
# Service for generation the GoAccess static report
systemd.services.goaccess-report = {
description = "Generate GoAccess HTML report";
serviceConfig = {
ExecStart = "${pkgs.goaccess}/bin/goaccess /var/log/caddy/access-levr.porzh.me.log --log-format=CADDY -o /var/www/goaccess/index.html";
};
};
# Timer to regénérate the report every hour
systemd.timers.goaccess-report = {
description = "Hourly GoAccess report generation";
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "hourly";
Persistent = true;
};
};
services.caddy = {
virtualHosts = {
"koum.porzh.me" = {
extraConfig = ''
root * /var/www/goaccess
file_server browse
try_files {path} {path}/ /index.html
'';
};
};
};
}
```
Whats next?
In the second part, Ill go a bit further:
- filtering out local network IPs,
- generating daily, weekly, and monthly reports,
- and explaining why I chose not to use the “live” mode.
Because yes — even analytics deserve a bit of restraint.

View file

@ -0,0 +1,82 @@
+++
date = '2025-10-06T01:00:51+02:00'
title = 'Installation de goaccess sur NixOs'
tags = [ "nixos","statistiques" ]
+++
Quand on auto-héberge, il y a un moment où la curiosité prend le dessus.
Qui visite mon site ? À quelle heure ? Quelles pages intéressent vraiment ?
Et la question quon se pose tôt ou tard : est-ce que quelquun, quelque part, lit vraiment ce que jécris ?
On peut se tourner vers Google Analytics ou Matomo, mais ça vient avec son lot de complications :
- Respect de la vie privée discutable,
- Scripts tiers à injecter dans le site,
- Poids supplémentaire sur chaque page,
- Et une dépendance à des services dont je ne veux pas.
GoAccess, lui, cest un peu la voie minimaliste.
Pas de scripts, pas de traçage, pas de cookie banner : il lit **directement les logs du serveur web** (dans mon cas, Caddy) et me génère un rapport clair et efficace.
Cest la philosophie qui me plaît :
- **Respectueux de la vie privée** : rien ne sort de mon serveur, aucun profilage.
- **Simple** : je ne change rien à mon site, je traite juste mes journaux de logs.
- **Rapide** : une commande, et jai une vue immédiate sur qui est passé et comment.
- **Self-hosting friendly** : pas besoin dune base de données ni dun monstre à maintenir.
En gros, GoAccess répond parfaitement à ce que je cherche dans mon homelab :
→ Avoir de la visibilité sur mes services **sans transformer ça en usine à gaz**.
## Mise en place minimale sous NixOS
GoAccess est disponible directement via le dépôt officiel.
Jai ajouté le paquet et un petit service systemd pour générer un rapport statique toutes les heures :
```
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
goaccess
];
# Service pour générer le rapport statique GoAccess
systemd.services.goaccess-report = {
description = "Generate GoAccess HTML report";
serviceConfig = {
ExecStart = "${pkgs.goaccess}/bin/goaccess /var/log/caddy/access-levr.porzh.me.log --log-format=CADDY -o /var/www/goaccess/index.html";
};
};
# Timer pour régénérer le rapport toutes les heures
systemd.timers.goaccess-report = {
description = "Hourly GoAccess report generation";
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "hourly";
Persistent = true;
};
};
services.caddy = {
virtualHosts = {
"koum.porzh.me" = {
extraConfig = ''
root * /var/www/goaccess
file_server browse
try_files {path} {path}/ /index.html
'';
};
};
};
}
```
## Et la suite ?
Dans la deuxième partie, je montrerai comment aller plus loin :
- filtrer les IP du réseau local,
- générer des rapports **quotidiens, hebdomadaires et mensuels**,
- et pourquoi jai décidé de **ne pas** utiliser le mode “live”.
Parce que oui, même les stats méritent un peu de sobriété.