Compose-filene forteller deg hvordan Docker kjører en tjeneste. De forteller deg ikke hvorfor du satte den opp akkurat slik, og det var nettopp den kunnskapen XDA-skribenten Shekhar Vaidya hadde mistet etter å ha vokst fra to stacker til over 20 på under et år.
Løsningen hans var å la en lokal modell lese konfigurasjonen. Vaidya kjører Gemma 4 på en RTX 4070 Ti, bygde et dashbord med Vite, Tailwind og FastAPI på en ettermiddag, og sendte innholdet i filene til Gemma via Ollamas /api/chat. Til sammen 24 filer, hentet fra to Portainer-volumer fordi en oppgradering av Portainer i sin tid hadde initialisert et nytt volum. Alt kjørte lokalt, uten at data forlot maskinen.
Førsteutkastet var bedre enn ventet. Gemma leverte en strukturert markdown-wiki organisert per stack og tjeneste, med formål, porter, volumer, avhengigheter, nettverk og vedlikeholdsnotater. Den koblet tjenester på tvers av filer i stedet for å behandle hver Compose-fil isolert, og den flagget hvilke containere som hadde hardkodede hemmeligheter uten å skrive ut selve hemmelighetene.
Så kom svakhetene. Av de 24 filene hoppet Gemma over fire uten å nevne det, og de dukket først opp da Vaidya etterspurte dem. Verre var det at modellen trodde alt kjørte: den behandlet pensjonerte og midlertidig stoppede containere som aktive, og anbefalte å standardisere på én DNS-løsning fordi den mente Pi-hole, AdGuard Home og Technitium alle slåss om port 53. I virkeligheten kjørte bare AdGuard Home.
Interessant nok visste modellen bedre da den ble spurt. Gemma svarte korrekt at docker inspect-JSON har et faktisk "Status": "running"-felt, mens en .yml-fil bare beviser at noe er konfigurert. Resonnementet var der, det ble bare aldri tilbudt uoppfordret. Det er en svakhet i hvordan verktøyet spør, ikke et tak på hva modellen kan.
«Gemma forsto ikke homelaben min ved magi. Alt Gemma egentlig gjorde, var å organisere informasjon som allerede lå spredt over dusinvis av Compose-filer» — Shekhar Vaidya, XDA Developers
Lærdommen for deg med en homelab som har vokst i det stille: gi modellen kjøretidstilstanden fra docker inspect, ikke bare Compose-filene, og les korrekturen selv. Et redigerbart førsteutkast er uansett verdt mer enn den tomme siden du aldri kommer til å fylle.