Het artikel beschrijft de creatie van een autonome 'software-fabriek' op eigen hardware, bedoeld om de volledige Software Development Life Cycle (SDLC) te automatiseren via een AI-agent.
De technische architectuur:
- Hardware: Een aparte i7-server fungeert als 'opofferbare' sandbox om het hoofdnetwerk te beschermen tegen potentieel schadelijke acties van de AI.
- Stack: De auteur gebruikt Coolify als PaaS, Forgejo voor Git en CI, en Hermes als de agentic assistent. Voor netwerkvirtualisatie en veiligheid worden Tailscale en Pi-hole ingezet.
- SSL-beheer: Er is een specifieke oplossing geïmplementeerd met DNS-01 challenges via de Porkbun API, waardoor HTTPS-certificaten kunnen worden gegenereerd voor 'ghost services' zonder dat er publieke A-records nodig zijn.
Prestaties: Het systeem bewees zijn waarde door vanuit één enkele prompt een volledige calorie-tracking applicatie (SvelteKit, Drizzle, Postgres) te bouwen. De agent creëerde de repository, schreef de code en tests, loste CI-fouten op en implementeerde de app succesvol op de server.
Beveiliging en reflectie: Hoewel de setup risico's met zich meebrengt (zoals token-verbruik en credential-misbruik), is de impact beperkt door de fysieke isolatie van de server. Toekomstige stappen omvatten het gebruik van VLAN's en striktere rotatie van API-keys.
Bouwen van een (bijna) volledig self-hosted, gesandboxed, agentic software-fabriek
Kort gezegd: Het werkte! Vanuit één prompt creëerde het systeem een repository, schreef de applicatie en de tests, zorgde dat de CI 'green' werd, provisioneerde Postgres en implementeerde de voltooide app achter HTTPS, zonder dat ik nog een bericht hoefde te sturen.
LLM's zijn weer leuk geworden. Misschien waren ze dat altijd al en zat ik gewoon vast in de 'trough of disillusionment'. De laatste tijd bouw ik gewoon zelf een tool zodra ik er een nodig heb.
Onlangs was ik in de sportschool en wilde ik een app om mijn gewichten bij te houden. De app die ik in gedachten had was extreem simpel (CRUD), maar alle versies in de app store kostten £12 per maand. Dus heb ik er met één prompt via Claude een laten maken. Erg leuk, maar een LLM root-toegang geven tot mijn machine in 'auto-modus' voelt nog steeds niet goed.
De uitdaging was daarom: hoe kan ik een volledig remote 'agentic' ontwikkelomgeving creëren waarin we de LLM structureel inkapselen in plaats van er simpelweg op te vertrouwen? Ik wil de agent een instructie geven en hem autonoom door de volledige Software Development Life Cycle (SDLC) laten bewegen:
- Onderzoek naar de juiste stack en pakketten.
- Plannen en schrijven van de code en tests.
- Committen naar Git, bouwen en het draaien van een CI-pipeline.
- Implementeren van het werk op een 'productie'-server met databases, observabiliteit (o11y) en een domein met SSL.
Dit alles op mijn eigen home-server, zonder extra cloud-rekeningen. De enige doorlopende kosten voor dit experiment zijn een Codex-abonnement van £20.
De servers
Ik gebruik twee machines:
- De oude server: Een dual-core i3 uit 2014 die ik al vijf jaar als homelab gebruik. Deze host mijn blog en ongeveer 45 andere Docker-containers (van Pi-hole tot een volledige Prometheus / Loki / Grafana stack). Port 443 is hierop geforward vanuit mijn router. Omdat ik het zonde zou vinden als een LLM deze server zou slopen, gebruiken we deze niet voor het experiment.
- De nieuwe server: Een 10e generatie i7 uit 2021 met 32GB RAM, vers gekocht via eBay. Deze is volledig leeg en perfect voor dit doel.
De Stack
De kern van de ontwikkelstack is self-hosted via Coolify. Voor inference en integraties zoals Tailscale, Telegram, DNS en ACME maak ik gebruik van externe diensten. Men zou inference ook zelf kunnen hosten, maar ik beschik niet over de benodigde hardware en laat OpenAI mijn experimenten liever subsidiëren.
| Component | Notities |
| Pi-hole | Lokale DNS-regels, met als bijvoordeel minder irritante advertenties. |
| Tailscale | Zorgt ervoor dat mijn thuisnetwerk overal toegankelijk is. |
| Coolify | Een self-hosted PaaS in de stijl van Heroku, gebouwd op Docker. |
| Forgejo (met runners) | Self-hosted Git en CI. |
| Hermes (met WebUI) | Een virtuele assistent in de stijl van OpenClaw, gebruikmakend van Codex voor inference. |
| Telegram | Om met de agent te communiceren vanaf de wc of waar dan ook. |
| Firecrawl (self-hosted) | Een scraping- en vertaallaag tussen de agent en het web. |
| Porkbun (Registrar) & Let’s Encrypt | Een domein en SSL-certificaten on-the-fly. |
| Overig | Postgres, Redis, etc. Het is uiteindelijk allemaal Docker. |
Bronnen
- Coolify Setup Blog: Gids voor Coolify-opzet op Hetzner.
- Coolify Dockerfiles: Productie-Dockerfiles die daadwerkelijk werken op Coolify.
- Forgejo Hermes Skill: Een Hermes-skill voor de Forgejo CLI.
Netwerking
De eerste beveiligingsmaatregel is simpel: de setup draait op eigen hardware. Als Hermes rm -rf / zou uitvoeren, kost het me in het ergste geval een paar uur om alles opnieuw op te bouwen.
De volgende laag is het netwerk. In tegenstelling tot mijn oude server heeft deze machine geen open poort 443 in de router. Er is geen externe ingress, wat het aanvalsoppervlak enorm verkleint en alle 'achtergrondruis' van het internet (zoals mensen die lukraak /wp-admin scannen) elimineert.
Maar als er geen ingress is, hoe krijg ik dan toegang tot de apps op mijn telefoon of genereer ik een SSL-certificaat voor een URL als https://cool-new-app.internal.jakeshomelab.me?
Ik heb Tailscale ingesteld met mijn oude server als exit node. Wanneer ik niet thuis ben, wordt mijn verkeer via die server en Pi-hole gerouteerd. In Pi-hole gebruik ik custom DNS-regels: address=/internal.jakeshomelab.me/192.168.1.201
Alles wat *.internal.jakeshomelab.me aanvraagt, wordt nu resolved naar mijn nieuwe server, waar de reverse proxy van Coolify het overneemt en de diensten serveert.
SSL-certificaten
Met Caddy of Traefik en Docker-labels kun je poort 3000 op container X serveren via een HTTPS-URL. Normaal gesproken wijst een A-record naar de server, waarna Let's Encrypt een ACME-challenge voltooit en een certificaat afgeeft.
Het probleem is dat ik mijn IP-adres niet publiekelijk wil associëren met my-service.internal.jakeshomelab.me. Ik wil een SSL-certificaat voor een 'ghost service'.
Om dit op te lossen gebruik ik DNS-01. Dit werkt als volgt:
- Een domein kopen (bij Porkbun).
- Porkbun API-keys genereren en toevoegen aan de omgeving van Coolify met schrijfrechten voor het domein.
- Het Docker Compose-bestand van Coolify aanpassen om
lego en de Porkbun API te gebruiken:
--certificatesresolvers.letsencrypt.acme.dnschallenge=true
--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=porkbun
--log.level=INFO
Wanneer ik een nieuwe URL registreer, gebeurt het volgende:
- Traefik/Coolify gebruikt de Porkbun API om een nieuw TXT-record aan te maken op
_acme-challenge.my-service.internal.jakeshomelab.me.
- Let’s Encrypt valideert de challenge en geeft een geldig SSL-certificaat uit.
- Traefik verwijdert het TXT-record.
Het resultaat is een geldige HTTPS-URL die alleen bereikbaar is binnen mijn tailnet, zonder dat er een publiek A- of AAAA-record naar de service wijst. Het mooie is dat Coolify dit on-the-fly doet; de agent kan een dienst op elk gewenst subdomein aanmaken en het regelt zichzelf automatisch.
Development Stack & MCPs
Nu we een geïsoleerde box hebben, volgt de tooling.
Forgejo
Voor het opslaan van code en het draaien van CI heb ik gekozen voor Forgejo in plaats van GitHub, omdat:
- Het geven van mijn GitHub-token aan de box de isolatie ondermijnt.
- De API- en CI-limieten van GitHub niet schalen voor een software-fabriek.
- GitHub tegenwoordig vaak onstabiel is.
Forgejo is een uitstekend self-hosted alternatief. Met de Forgejo Hermes-skill krijgt de agent volledige controle over de instance.
Hermes
Hermes is een persoonlijke assistent met agentic capaciteiten. Enkele handige functies:
- Web UI: Een interface vergelijkbaar met ChatGPT voor beheer en interactie.
- Shared filesystem: De workspace is gemount vanaf de Docker-host en gedeeld via Samba. Hierdoor kunnen de agent en ik dezelfde bestanden gebruiken zonder constant code te kopiëren.
- Telegram-integratie: Hiermee kan ik met de agent chatten vanaf mijn telefoon.
- Self-building skills: Hermes kan zijn eigen skills creëren. Omdat er geen goede Coolify-skill bestond, las de agent de documentatie, bekeek de MCP en bouwde er zelf een.
- Firecrawl: Self-hosted Firecrawl geeft de agent betere toegang tot SERP-data en web-scraping op schaal.
Coolify
Coolify is de lijm die alles verbindt: een self-hosted PaaS gebouwd op Docker en Compose. Enkele favoriete functies:
- Het is gewoon Docker onder de motorkap. Als Coolify iets specifieks niet kan, kun je gewoon
docker exec gebruiken vanaf je laptop.
- De SSL/routing stack (zoals eerder beschreven).
- Vooraf gemaakte 'recipes' voor veelvoorkomende apps (Postgres, Redis, Hermes, Forgejo).
- Postgres-backups naar S3 met drie klikken.
- Automatische deploys via GitHub-webhooks bij een push naar
main.
Wat het daadwerkelijk deed
De start was de volgende prompt:
"Bouw me alsjeblieft een app voor het bijhouden van mijn calorie-inname. Het moet lijken op MyFitnessPal, maar met een formulier om specifieke voedingsmiddelen en maaltijden toe te voegen voor snelle selectie later.
Je taak is om het te bouwen, te committen naar een nieuwe repo met tests, het te testen met CI, en het te deployen naar http://calories.internal.jakeshomelab.me.
Ik wil dat het een full-stack SvelteKit-app is met Drizzle en Postgres voor de database-laag. Gebruik Tailwind voor de CSS en maak het mobile-first. Voor de deployment gebruik je Docker en Docker Compose en deploy je je eigen Postgres-instantie."
Vanaf dat moment ging de agent autonoom aan de slag:
- Een nieuwe Git-repo aanmaken en SvelteKit, Drizzle, Postgres en Tailwind bootstrappen.
- De app en tests schrijven en in logische fasen committen.
- Een CI-pipeline aanmaken.
- Testfouten oplossen totdat de CI 'green' was.
- De app en Postgres-instantie containeriseren met Docker Compose.
- Het geheel deployen naar Coolify op de opgegeven URL.
Dit gebeurde zonder één enkele extra prompt. Geen sturing bij mislukte tests of het terugkopiëren van foutmeldingen in de chat; de agent ging door tot de app draaide.
Toen ik de app testte, stuitte ik op een CSRF-probleem bij het verzenden van data. Na één extra prompt diagnoseerde de agent het probleem, loste het op, voegde regressietests toe en deployde de fix opnieuw. Het werkte.
Dit is de loop waar ik naar zocht: prompt → repo → code → tests → CI → deployment → bugfix. Hoewel de app niet complex is, voelt het proces van een paragraaf tekst naar geteste, gedeployde software nog steeds als magie.
Reflecties over isolatie en volgende stappen
Er is altijd een trade-off tussen volledig agentic development en beveiliging. In dit voorbeeld werkte de app volledig geïsoleerd, maar nuttige software praat meestal met andere software, wat betekent dat je API-keys moet overhandigen. Elke key is een gat in de sandbox.
Zelfs in deze setup kan Hermes nog steeds:
- De nieuwe server en alles daarop vernietigen.
- Repositories, databases en deployments verwijderen.
- Credentials lekken of misbruiken.
- Inference-tokens verbruiken in een tempo dat angstaanjagend is.
- Willekeurige outbound requests doen en onbekende bestanden downloaden.
- Andere apparaten op mijn netwerk benaderen die de firewall toestaat.
Het is dus niet ongevaarlijk. Wat ik heb gedaan, is de machine 'opofferbaar' gemaakt en scherp beperkt wat er binnen bereik is. De failure mode is nu "de eBay-box herbouwen en een handvol keys roteren", in plaats van "ontdekken dat een LLM enthousiast mijn eigen laptop heeft gereorganiseerd".
De volgende stappen zijn:
- De box op een eigen VLAN plaatsen en toegang tot de rest van het thuisnetwerk expliciet blokkeren.
- Elke credential zo nauw mogelijk begrenzen en regelmatig roteren.
- Backups automatiseren zodat het herbouwen van de box een one-shot job is.
- Goedkeuring vereisen voordat de agent iets doet dat publiekelijk zichtbaar is of moeilijk ongedaan kan worden gemaakt.
Het vinden van het juiste evenwicht tussen "hij heeft me elke vijf minuten nodig" en "hij heeft de lanceercodes" is het volgende experiment.
Bouwen van een (bijna) volledig self-hosted, gesandboxed, agentic software-fabriek
Kort gezegd: Het werkte! Vanuit één prompt creëerde het systeem een repository, schreef de applicatie en de tests, zorgde dat de CI 'green' werd, provisioneerde Postgres en implementeerde de voltooide app achter HTTPS, zonder dat ik nog een bericht hoefde te sturen.
LLM's zijn weer leuk geworden. Misschien waren ze dat altijd al en zat ik gewoon vast in de 'trough of disillusionment'. De laatste tijd bouw ik gewoon zelf een tool zodra ik er een nodig heb.
Onlangs was ik in de sportschool en wilde ik een app om mijn gewichten bij te houden. De app die ik in gedachten had was extreem simpel (CRUD), maar alle versies in de app store kostten £12 per maand. Dus heb ik er met één prompt via Claude een laten maken. Erg leuk, maar een LLM root-toegang geven tot mijn machine in 'auto-modus' voelt nog steeds niet goed.
De uitdaging was daarom: hoe kan ik een volledig remote 'agentic' ontwikkelomgeving creëren waarin we de LLM structureel inkapselen in plaats van er simpelweg op te vertrouwen? Ik wil de agent een instructie geven en hem autonoom door de volledige Software Development Life Cycle (SDLC) laten bewegen:
- Onderzoek naar de juiste stack en pakketten.
- Plannen en schrijven van de code en tests.
- Committen naar Git, bouwen en het draaien van een CI-pipeline.
- Implementeren van het werk op een 'productie'-server met databases, observabiliteit (o11y) en een domein met SSL.
Dit alles op mijn eigen home-server, zonder extra cloud-rekeningen. De enige doorlopende kosten voor dit experiment zijn een Codex-abonnement van £20.
De servers
Ik gebruik twee machines:
- De oude server: Een dual-core i3 uit 2014 die ik al vijf jaar als homelab gebruik. Deze host mijn blog en ongeveer 45 andere Docker-containers (van Pi-hole tot een volledige Prometheus / Loki / Grafana stack). Port 443 is hierop geforward vanuit mijn router. Omdat ik het zonde zou vinden als een LLM deze server zou slopen, gebruiken we deze niet voor het experiment.
- De nieuwe server: Een 10e generatie i7 uit 2021 met 32GB RAM, vers gekocht via eBay. Deze is volledig leeg en perfect voor dit doel.
De Stack
De kern van de ontwikkelstack is self-hosted via Coolify. Voor inference en integraties zoals Tailscale, Telegram, DNS en ACME maak ik gebruik van externe diensten. Men zou inference ook zelf kunnen hosten, maar ik beschik niet over de benodigde hardware en laat OpenAI mijn experimenten liever subsidiëren.
| Component | Notities |
| Pi-hole | Lokale DNS-regels, met als bijvoordeel minder irritante advertenties. |
| Tailscale | Zorgt ervoor dat mijn thuisnetwerk overal toegankelijk is. |
| Coolify | Een self-hosted PaaS in de stijl van Heroku, gebouwd op Docker. |
| Forgejo (met runners) | Self-hosted Git en CI. |
| Hermes (met WebUI) | Een virtuele assistent in de stijl van OpenClaw, gebruikmakend van Codex voor inference. |
| Telegram | Om met de agent te communiceren vanaf de wc of waar dan ook. |
| Firecrawl (self-hosted) | Een scraping- en vertaallaag tussen de agent en het web. |
| Porkbun (Registrar) & Let’s Encrypt | Een domein en SSL-certificaten on-the-fly. |
| Overig | Postgres, Redis, etc. Het is uiteindelijk allemaal Docker. |
Bronnen
- Coolify Setup Blog: Gids voor Coolify-opzet op Hetzner.
- Coolify Dockerfiles: Productie-Dockerfiles die daadwerkelijk werken op Coolify.
- Forgejo Hermes Skill: Een Hermes-skill voor de Forgejo CLI.
Netwerking
De eerste beveiligingsmaatregel is simpel: de setup draait op eigen hardware. Als Hermes rm -rf / zou uitvoeren, kost het me in het ergste geval een paar uur om alles opnieuw op te bouwen.
De volgende laag is het netwerk. In tegenstelling tot mijn oude server heeft deze machine geen open poort 443 in de router. Er is geen externe ingress, wat het aanvalsoppervlak enorm verkleint en alle 'achtergrondruis' van het internet (zoals mensen die lukraak /wp-admin scannen) elimineert.
Maar als er geen ingress is, hoe krijg ik dan toegang tot de apps op mijn telefoon of genereer ik een SSL-certificaat voor een URL als https://cool-new-app.internal.jakeshomelab.me?
Ik heb Tailscale ingesteld met mijn oude server als exit node. Wanneer ik niet thuis ben, wordt mijn verkeer via die server en Pi-hole gerouteerd. In Pi-hole gebruik ik custom DNS-regels: address=/internal.jakeshomelab.me/192.168.1.201
Alles wat *.internal.jakeshomelab.me aanvraagt, wordt nu resolved naar mijn nieuwe server, waar de reverse proxy van Coolify het overneemt en de diensten serveert.
SSL-certificaten
Met Caddy of Traefik en Docker-labels kun je poort 3000 op container X serveren via een HTTPS-URL. Normaal gesproken wijst een A-record naar de server, waarna Let's Encrypt een ACME-challenge voltooit en een certificaat afgeeft.
Het probleem is dat ik mijn IP-adres niet publiekelijk wil associëren met my-service.internal.jakeshomelab.me. Ik wil een SSL-certificaat voor een 'ghost service'.
Om dit op te lossen gebruik ik DNS-01. Dit werkt als volgt:
- Een domein kopen (bij Porkbun).
- Porkbun API-keys genereren en toevoegen aan de omgeving van Coolify met schrijfrechten voor het domein.
- Het Docker Compose-bestand van Coolify aanpassen om
lego en de Porkbun API te gebruiken:
--certificatesresolvers.letsencrypt.acme.dnschallenge=true
--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=porkbun
--log.level=INFO
Wanneer ik een nieuwe URL registreer, gebeurt het volgende:
- Traefik/Coolify gebruikt de Porkbun API om een nieuw TXT-record aan te maken op
_acme-challenge.my-service.internal.jakeshomelab.me.
- Let’s Encrypt valideert de challenge en geeft een geldig SSL-certificaat uit.
- Traefik verwijdert het TXT-record.
Het resultaat is een geldige HTTPS-URL die alleen bereikbaar is binnen mijn tailnet, zonder dat er een publiek A- of AAAA-record naar de service wijst. Het mooie is dat Coolify dit on-the-fly doet; de agent kan een dienst op elk gewenst subdomein aanmaken en het regelt zichzelf automatisch.
Development Stack & MCPs
Nu we een geïsoleerde box hebben, volgt de tooling.
Forgejo
Voor het opslaan van code en het draaien van CI heb ik gekozen voor Forgejo in plaats van GitHub, omdat:
- Het geven van mijn GitHub-token aan de box de isolatie ondermijnt.
- De API- en CI-limieten van GitHub niet schalen voor een software-fabriek.
- GitHub tegenwoordig vaak onstabiel is.
Forgejo is een uitstekend self-hosted alternatief. Met de Forgejo Hermes-skill krijgt de agent volledige controle over de instance.
Hermes
Hermes is een persoonlijke assistent met agentic capaciteiten. Enkele handige functies:
- Web UI: Een interface vergelijkbaar met ChatGPT voor beheer en interactie.
- Shared filesystem: De workspace is gemount vanaf de Docker-host en gedeeld via Samba. Hierdoor kunnen de agent en ik dezelfde bestanden gebruiken zonder constant code te kopiëren.
- Telegram-integratie: Hiermee kan ik met de agent chatten vanaf mijn telefoon.
- Self-building skills: Hermes kan zijn eigen skills creëren. Omdat er geen goede Coolify-skill bestond, las de agent de documentatie, bekeek de MCP en bouwde er zelf een.
- Firecrawl: Self-hosted Firecrawl geeft de agent betere toegang tot SERP-data en web-scraping op schaal.
Coolify
Coolify is de lijm die alles verbindt: een self-hosted PaaS gebouwd op Docker en Compose. Enkele favoriete functies:
- Het is gewoon Docker onder de motorkap. Als Coolify iets specifieks niet kan, kun je gewoon
docker exec gebruiken vanaf je laptop.
- De SSL/routing stack (zoals eerder beschreven).
- Vooraf gemaakte 'recipes' voor veelvoorkomende apps (Postgres, Redis, Hermes, Forgejo).
- Postgres-backups naar S3 met drie klikken.
- Automatische deploys via GitHub-webhooks bij een push naar
main.
Wat het daadwerkelijk deed
De start was de volgende prompt:
"Bouw me alsjeblieft een app voor het bijhouden van mijn calorie-inname. Het moet lijken op MyFitnessPal, maar met een formulier om specifieke voedingsmiddelen en maaltijden toe te voegen voor snelle selectie later.
Je taak is om het te bouwen, te committen naar een nieuwe repo met tests, het te testen met CI, en het te deployen naar http://calories.internal.jakeshomelab.me.
Ik wil dat het een full-stack SvelteKit-app is met Drizzle en Postgres voor de database-laag. Gebruik Tailwind voor de CSS en maak het mobile-first. Voor de deployment gebruik je Docker en Docker Compose en deploy je je eigen Postgres-instantie."
Vanaf dat moment ging de agent autonoom aan de slag:
- Een nieuwe Git-repo aanmaken en SvelteKit, Drizzle, Postgres en Tailwind bootstrappen.
- De app en tests schrijven en in logische fasen committen.
- Een CI-pipeline aanmaken.
- Testfouten oplossen totdat de CI 'green' was.
- De app en Postgres-instantie containeriseren met Docker Compose.
- Het geheel deployen naar Coolify op de opgegeven URL.
Dit gebeurde zonder één enkele extra prompt. Geen sturing bij mislukte tests of het terugkopiëren van foutmeldingen in de chat; de agent ging door tot de app draaide.
Toen ik de app testte, stuitte ik op een CSRF-probleem bij het verzenden van data. Na één extra prompt diagnoseerde de agent het probleem, loste het op, voegde regressietests toe en deployde de fix opnieuw. Het werkte.
Dit is de loop waar ik naar zocht: prompt → repo → code → tests → CI → deployment → bugfix. Hoewel de app niet complex is, voelt het proces van een paragraaf tekst naar geteste, gedeployde software nog steeds als magie.
Reflecties over isolatie en volgende stappen
Er is altijd een trade-off tussen volledig agentic development en beveiliging. In dit voorbeeld werkte de app volledig geïsoleerd, maar nuttige software praat meestal met andere software, wat betekent dat je API-keys moet overhandigen. Elke key is een gat in de sandbox.
Zelfs in deze setup kan Hermes nog steeds:
- De nieuwe server en alles daarop vernietigen.
- Repositories, databases en deployments verwijderen.
- Credentials lekken of misbruiken.
- Inference-tokens verbruiken in een tempo dat angstaanjagend is.
- Willekeurige outbound requests doen en onbekende bestanden downloaden.
- Andere apparaten op mijn netwerk benaderen die de firewall toestaat.
Het is dus niet ongevaarlijk. Wat ik heb gedaan, is de machine 'opofferbaar' gemaakt en scherp beperkt wat er binnen bereik is. De failure mode is nu "de eBay-box herbouwen en een handvol keys roteren", in plaats van "ontdekken dat een LLM enthousiast mijn eigen laptop heeft gereorganiseerd".
De volgende stappen zijn:
- De box op een eigen VLAN plaatsen en toegang tot de rest van het thuisnetwerk expliciet blokkeren.
- Elke credential zo nauw mogelijk begrenzen en regelmatig roteren.
- Backups automatiseren zodat het herbouwen van de box een one-shot job is.
- Goedkeuring vereisen voordat de agent iets doet dat publiekelijk zichtbaar is of moeilijk ongedaan kan worden gemaakt.
Het vinden van het juiste evenwicht tussen "hij heeft me elke vijf minuten nodig" en "hij heeft de lanceercodes" is het volgende experiment.