Draait alles nog? Een dashboard voor de hele Pi-stack
Na verloop van tijd draai je zoveel services op je Pi, dat je niet meer uit je hoofd weet of alles nog wel draait en actief is. Pi-hole, Nextcloud, Navidrome, Vaultwarden, mailserver, WireGuard en de rest… — ik had inmiddels genoeg containers die ik op elk moment wilde kunnen monitoren.
Daarom zocht (en vond) ik een simpel statusdashboard, waar ik ook kon zien wie er waar vandaan mijn site bezoekt.
Drie lagen
Het systeem bestaat uit drie onderdelen.
Een bash-script dat regelmatig de status van alle services ophaalt — Docker-containers, maar ook systeemdiensten als nginx en SSH. Dat schrijft de uitkomst weg als JSON.
Een tweede script dat die JSON omzet naar een HTML-pagina met een visuele weergave. Groene bolletjes voor wat draait, rood voor wat niet draait. Simpel, maar net zo duidelijk.
En een webpagina die automatisch ververst. Bereikbaar via status.jbtroost.nl en dus ook openbaar zichtbaar. De échte kijk onder de motorkap wil ik via Arcane gaan (laten) bouwen, waardoor ik nog meer in detail kan bijhouden wat er draait en hoe ‘gezond’ mijn Pi wel niet z’n ding doet.
Wat het laat zien
Per service: naam, status en hoe lang het al draait. Daarboven systeeminformatie: CPU-gebruik, geheugen, schijfruimte. Genoeg om in één oogopslag te zien of er iets aandacht nodig heeft.
De JSON-uitvoer is ook direct bruikbaar als je ergens programmatisch de status wilt ophalen. Handig als ik later automatiseringen wil bouwen die reageren op uitgevallen services.
Uit een ’eerder leven’ wist ik nog hoe handig het is om te zien welke site-bezoeker waar vandaan komt. Al snel na de eerste opzet kwam er een wereldkaart met een legende ernaar met landen en aantal bezoekers ervandaan. Gewoon omdat het kan - en een idee geeft waar de aandacht vandaan komt.
Een ontdekking tussendoor
Toen ik het dashboard voor het eerst bekeek, liet het zien dat de Pi 80% van zijn 8GB geheugen gebruikte. Dat vond ik behoorlijk veel. Na wat uitzoeken bleek het grootste deel te komen van Firefox en Thunderbird — GUI-toepassingen die ik open had laten staan in een VNC-sessie op de Pi-desktop.
Zodra ik die afsloot, zakte het gebruik flink. De les: ook een ‘headless’ server heeft een bureaublad dat je via VNC kunt openen, en als je vergeet programma’s te sluiten, tellen die gewoon mee in de load ervan.
Docker-geheugenlimieten staan op de planning voor later, zodat ik containers wellicht wat beter kan begrenzen en die a;s statistieken op het dashboard zichtbaar zijn.
Waarom dit fijn is
Het dashboard is niks ingewikkelds, maar het geeft rust: ik hoef niet meer handmatig SSH te openen om te checken of alles nog loopt. ‘Eén URL, één blik’, zou Claude dat noemen. Owacht…
Vibecoding om los te komen van BigTech blijft een mooi streven.