$ cd ./projects/watch/
← cd ../ (retour aux projets)

$ cat watch.md

Watch

Dashboard de monitoring minimaliste pour homelab Raspberry Pi 5 : métriques système temps réel (CPU, température, RAM, disque), stats Docker par projet Compose, historique 24 h, PWA.

date: 23/06/2026

#monitoring #homelab #dashboard #mcp

stack: Next.js 16 · React 19 · TypeScript · systeminformation · Docker · GitHub Actions

$ cat README.md

Dashboard minimaliste pour surveiller mon Raspberry Pi 5 en temps réel, avec une architecture volontairement réduite à un seul service.

Métriques système

  • Temps réel, CPU %, température SoC, RAM, remplissage disque, en jauges colorées.
  • Sparklines, historique visuel et prévision de saturation du disque par régression linéaire.
  • Historique 1 h / 6 h / 24 h, depuis des buffers mémoire côté serveur.

Docker & hôte

  • Stats Docker, regroupées par projet Compose (repliables), I/O réseau/disque.
  • Hôte, load average, processus hôte (hors Docker).
  • Spécifique Pi, throttling, voltage via vcgencmd.

Architecture & PWA

  • Monolithique, un seul service Next.js (App Router) qui combine l’UI et l’API (/api/metrics), pas de backend séparé.
  • PWA, service worker network-first (shell hors-ligne, API jamais cachée), mode mur/kiosk et préférences persistées.

Déployé sur le homelab : la CI GitHub Actions cross-build une image arm64 sur GHCR puis se connecte au Pi en SSH pour docker compose pull. ⚠️ L’API expose des infos système sensibles → servie derrière authentification (NPM), jamais exposée brute à Internet.

Minimalist dashboard to monitor my Raspberry Pi 5 in real time, with an architecture deliberately reduced to a single service.

System metrics

  • Real-time, CPU %, SoC temperature, RAM, disk usage, in color-coded gauges.
  • Sparklines, visual history and disk saturation forecast via linear regression.
  • 1 h / 6 h / 24 h history, from server-side memory buffers.

Docker & host

  • Docker stats, grouped by Compose project (collapsible), network/disk I/O.
  • Host, load average, host processes (outside Docker).
  • Pi-specific, throttling, voltage via vcgencmd.

Architecture & PWA

  • Monolithic, a single Next.js service (App Router) combining the UI and the API (/api/metrics), no separate backend.
  • PWA, network-first service worker (offline shell, API never cached), wall/kiosk mode and persisted preferences.

Deployed on the homelab: the GitHub Actions CI cross-builds an arm64 image on GHCR then connects to the Pi over SSH to run docker compose pull. ⚠️ The API exposes sensitive system info → served behind authentication (NPM), never exposed raw to the Internet.