Observator is een eigen tool, begonnen in oktober 2026 voor de apps die ik zelf host. Een regel als FROM node:22-alpine zegt niet welke Node-versie er in het image zit. Een image van drie maanden oud draait nog wat er toen in de cache lag. Observator legt bij elke build vast wat er werkelijk in zit.
Een stage onderaan de Dockerfile draait tijdens docker build een kleine reporter in Go. Die stuurt de runtimeversies en de lockfile naar Observator. De reporter en de sleutel komen niet in het image terecht en de build gaat altijd door, behalve met de optionele gate op kritieke advisories.
Node.js wordt gecontroleerd tegen het releaseschema van nodejs.org en elk npm-package tegen OSV.dev. Per probleem gaat er één melding uit, naar Slack, Telegram, Discord, e-mail of een eigen pushdienst.
De app is Next.js op PocketBase: twee containers, zonder Redis of queue. Via MCP kan Claude Code Observator uitlezen en de snippet in de Dockerfiles van een repository zetten. De broncode staat op GitHub onder de Functional Source License, die na twee jaar overgaat in Apache-2.0.
Features
- Exacte Node.js-versie per app, met release-lijn en de image-tag om te pinnen
- npm-packages uit npm-, Yarn- en pnpm-lockfiles, gecontroleerd tegen OSV.dev
- Meldingen via Slack, Telegram, Discord, e-mail, ntfy, Gotify, Pushover en webhooks
- Fixadvies per advisory in de packagemanager van het project
- Reporter als statische Go-binary, ook in distroless images
- MCP-server voor Claude Code
Technologieën
Next.js
React
TypeScript
Tailwind CSS
PocketBase
Go
Docker
