Compare commits
No commits in common. "de4185a19f3176b25a3e3a90450cb35c4cfd7e1b" and "90e8b8ed210c18dc326744023f0b2a4c456772c9" have entirely different histories.
de4185a19f
...
90e8b8ed21
4 changed files with 0 additions and 251 deletions
|
|
@ -1,36 +0,0 @@
|
||||||
+++
|
|
||||||
date = '2025-10-09T00:45:44+02:00'
|
|
||||||
draft = false
|
|
||||||
tags = [ "running","watch" ]
|
|
||||||
title = 'Against the clock'
|
|
||||||
+++
|
|
||||||
|
|
||||||
I’m on my fourth run now.
|
|
||||||
And it feels better each time: I’ve found my easy pace, the one that lets me hold the distance without pain. My heart rate doesn’t spike as much, and I don’t have to stop nearly as often to walk.
|
|
||||||
|
|
||||||
**All good, right?**
|
|
||||||
|
|
||||||
Not for everyone.
|
|
||||||
There’s one who doesn’t agree: my Polar Pacer Pro. Run after run, it keeps scoring me lower and lower.
|
|
||||||
|
|
||||||
**Why?**
|
|
||||||
|
|
||||||
I honestly don’t know. Maybe it’s reading between the lines.
|
|
||||||
|
|
||||||
Has nothing to do with running itself, but I haven’t been sleeping well lately. Choppy nights, built-up fatigue… Maybe that’s messing with my heart rate. Maybe that’s enough to throw the numbers off and make me look worse than I feel. Could be.
|
|
||||||
|
|
||||||
Or maybe it’s just because I’m running shorter distances.
|
|
||||||
|
|
||||||
**So, who should I trust?**
|
|
||||||
|
|
||||||
The watch?
|
|
||||||
Or how I feel?
|
|
||||||
|
|
||||||
I’ve 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. That’s life. What matters isn’t impressing a watch.
|
|
||||||
|
|
||||||
What matters is not getting injured, building consistency, and keeping the joy alive.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
+++
|
|
||||||
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é d’avoir fait une bonne séance.
|
|
||||||
Je courais très lentement, je restais en endurance fondamentale, j’ai même réussi à tenir sans douleur.
|
|
||||||
Bref, je croyais que c’était une réussite.
|
|
||||||
|
|
||||||
Sauf que… aujourd’hui, 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, j’ai dû ralentir à l’extrême : plus de 10 minutes au kilomètre, presque marcher.
|
|
||||||
Ma Polar m’a mis une note bof, et je me suis dit qu’elle exagérait.
|
|
||||||
|
|
||||||
En réalité, j’étais simplement fatigué. Trop fatigué pour courir normalement.
|
|
||||||
La montre a mis le doigt dessus avant moi.
|
|
||||||
|
|
||||||
**Aujourd’hui, la différence**
|
|
||||||
|
|
||||||
Deux jours plus tard, j’ai couru dans les mêmes conditions.
|
|
||||||
Résultat : 1 km de plus en 30 minutes, une récupération après l’effort beaucoup plus rapide, et une sensation de facilité que je n’avais pas mardi.
|
|
||||||
|
|
||||||
Preuve que ce jour-là, je tirais sur la corde sans le savoir.
|
|
||||||
|
|
||||||
|
|
||||||
**La vraie leçon**
|
|
||||||
|
|
||||||
Ce que j’ai compris : la montre n’est 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 l’admettre.
|
|
||||||
|
|
||||||
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 n’est pas de forcer, mais d’adapter.
|
|
||||||
|
|
||||||
|
|
||||||
**Ce que je retiens**
|
|
||||||
|
|
||||||
Mieux vaut un footing à 10 minutes au kilomètre que pas de footing du tout.
|
|
||||||
Et parfois, accepter de ralentir, c’est justement ça qui permet de progresser sans se blesser.
|
|
||||||
|
|
||||||
Alors oui, mardi j’ai cru être bien.
|
|
||||||
Mais c’est aujourd’hui que je réalise que j’ai eu raison de ralentir.
|
|
||||||
Pas pour la performance, mais pour la durée.
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
+++
|
|
||||||
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 don’t 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.
|
|
||||||
|
|
||||||
That’s the kind of philosophy I like:
|
|
||||||
- Privacy-friendly — nothing leaves my server, no profiling.
|
|
||||||
- Simple — I don’t 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
|
|
||||||
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
What’s next?
|
|
||||||
|
|
||||||
In the second part, I’ll 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.
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
+++
|
|
||||||
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 qu’on se pose tôt ou tard : est-ce que quelqu’un, 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, c’est 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.
|
|
||||||
|
|
||||||
C’est 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 j’ai une vue immédiate sur qui est passé et comment.
|
|
||||||
- **Self-hosting friendly** : pas besoin d’une base de données ni d’un 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.
|
|
||||||
J’ai 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 j’ai décidé de **ne pas** utiliser le mode “live”.
|
|
||||||
Parce que oui, même les stats méritent un peu de sobriété.
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue