Ga naar inhoud

Wat draait er, en waarom

Machinevertaling van het Franse origineel.

Het park bevat zes Docker-hosts, ongeveer 300 containers, een hypervisor en een team van AI-agents (gegevens van 2026-10-06). Het opsommen van de containers zou weinig zeggen; op deze pagina wordt het park per capaciteit onderzocht. Voor elke capaciteit wordt uitgelegd wat er aanwezig is en wat de oorzaak was. Meestal gaat het om een incident of een gebrek, zelden om een wens naar een bepaald hulpmiddel.

Wat deze pagina laat zien

Het noemt de tools, maar geeft geen versie, adres, poort of detectierule, en meldt geen nog openstaande afwijkingen. Een architectuur wordt beschreven; een lijst van versies is een lijst van CVE's die getest kunnen worden. De details staan in de privé-opslag.

Een overzicht

Capaciteit Wat er voor zorgt Om verder te gaan
Detectie en reactie SIEM, gedragsdetectie, inventaris, remote onderzoek, HTTP-blokkering Detectie · Reactie
Geheimen Twee dozen: machines en mensen Een geheim lezen
Backups Een versleutelde repository per host, back-up buiten het netwerk Continuïteit
Supervisie en alerts Metrieken, end-to-end monitoring, schijfgezondheid, een toegangspunt voor notificaties Een notificatie instellen
Identiteit en toegang SSO, zelf-gehost netwerk Beveiliging
Web exposure Reverse proxy met twee lagen, één DNS-record per naam Reverse proxy keten
Tickets Detectie → ticket → correctie → bewijs —
AI-agenten Een team van agenten in een sandbox Agenten
Taalmodellen Lokale inferentie op GPU, single entry point Agenten
Automatisering Workflows —
Code Zelf-gehoste forge, gedeelde mirror Continue integratie
Hosts Hypervisor, autonome nachtelijk updates Hosts van het park
Kennis Een bron repository, een intern wiki, deze site Waar schrijven

Detectie en reactie

Wazuh vervult de rol van SIEM: bestand integriteit, bekende kwetsbaarheden, correlatie met MITRE ATT&CK. Falco observeert het gedrag van processen op kernel niveau, en osquery houdt het inventaris van de hosts bij, en stuurt deze door naar Wazuh. Velociraptor is bedoeld om vragen te stellen aan het hele park tijdens een incident. CrowdSec blokkeert op HTTP niveau.

Waarom. Wazuh reageert in juni 2026 op de behoefte om niet alleen de services te auditer, maar ook de individuele hosts. Velociraptor is ontstaan door een probleem met het bestandssysteem, op 2026-08-24: het kostte negen uur omdat elke machine individueel moest worden gecontroleerd. CrowdSec, daarentegen, is gebaseerd op een eenvoudige constatering: tientallen openbare namen, en geen systeem om deze te beschermen.

Falco volgt een eigen regel voor het park: elke nieuwe host begint met alleen het verzamelen van informatie, gedurende 24 uur. Daarna worden de uitzonderingen één voor één ingesteld, en wordt pas dan de waarschuwing geactiveerd. Een waarschuwing die niet wordt gelezen, kan uiteindelijk worden genegeerd.

Geheimen

De machinegeheimen (API-sleutels, service wachtwoorden, tokens) bevinden zich in OpenBao, op een machine die alleen daarvoor is ontworpen. Ze worden opgeslagen als versleutelde bestanden SOPS binnen de containers. De menselijke geheimen (webaccounts, noodcodes) bevinden zich in Vaultwarden.

Waarom. De scheiding dateert van 2026-09-27. Een geheim dat een machine leest en een geheim dat een persoon invoert, hebben geen dezelfde levensduur, geen hetzelfde rotatieschema, en geen dezelfde lezers. Bovendien wordt het machinegeheime compartiment uitgeschakeld tijdens het opstarten: elke host heeft zijn eigen versleutelde kopie, waardoor een uitgeschakeld compartiment de rotaties vertraagt zonder het park te belemmeren om opnieuw op te starten.

Backups

restic, beheerd door Backrest, maakt zes hosts, elk in zijn eigen versleutelde repository, naar de NAS. Een kopie wordt offsite opgeslagen, buiten bereik van de gereserveerde hosts. De NAS maakt ook zijn eigen volume snapshots.

Waarom. Het "runbook" voor het backuppen per host bleef in de status "gepland" gedurende weken, terwijl de data zich ophopte. De niveaus van back-up en de geplande herstel zijn beschreven in Continuïteit.

Toezicht en waarschuwingen

Prometheus verzamelt de metrics van de hosts en hanteert de geversioneerde waarschuwingsregels. Gatus voert de services volledig uit en genereert een publieke statuspagina. Scrutiny volgt de SMART-gezondheid van de fysieke schijven. Een overzicht 's ochtends toont de status van de hosts en de laatste incidenten. alerts-hub is het centrale punt voor notificaties: één enkele aanroep, en het bericht gaat naar het juiste kanaal.

Waarom. Op 2026-08-14 had het park geen enkele waarschuwingsregel. De volgende dag werden er 41 stops ontdekt, zoals te zien op een screenshot, vanwege een gebrek aan geheugen. Voor de publieke probes is de beslissing van 2026-09-16 om de hele keten (DNS, proxy, applicatie) te meten, omdat een service wel degelijk in orde kan zijn achter een defecte route.

Identiteit en toegang

Authentik biedt SSO (Single Sign-On). Voor elk nieuw service is de regel OIDC (OpenID Connect) eerst. De forward auth (een muur voor de applicatie) is een laatste redmiddel, en we stapelen nooit beide. Het private netwerk tussen de hosts gaat via een Headscale-gestuurde tailnet, die zelf gehost wordt.

Waarom. De forward auth geeft geen identiteit door aan de applicatie: geen account, geen rol, geen echte afkoppeling. In combinatie met OIDC, vangt het de terugkoppeling en veroorzaakt een lus. Headscale heeft het gehoste service vervangen op 2026-08-19: sleutels die niet meer automatisch verlopen, versiebeheer van toegangslijsten, en OIDC zonder abonnement.

Web-expositie

Een verzoek vanuit het internet gaat via twee lagen van Caddy. De eerste behandelt de rand, de tweede levert de interne diensten. De certificaten worden uitgegeven via DNS-uitdagingen. Elk openbaar naam draagt zijn eigen DNS-record: er zijn geen joker-waarden in de zone.

Waarom. De regel van 10 september 2026 is eenvoudig: een naam wordt alleen blootgesteld als iemand dat expliciet heeft besloten, voor die specifieke naam. Een joker-waarde stelt standaard alles in wat vergeten is. De details staan in Reverse proxy.

Tickets

Wat automatisch wordt gedetecteerd, opent en sluit zijn eigen ticket, via berekening, met een hysteresis om de timing van de sensoren niet te overschrijden. Wat tijdens een werkvergadering wordt gevonden, wordt handmatig een ticket aangemaakt, en dit ticket wordt pas gesloten met een geschreven oplossing: hoe dit te verifiëren. Een ticket-beheerder verdeelt de wachtrij.

Waarom. Eind augustus 2026 waren er nog 529 tickets met de status "open", en er werd niets meer berekend voor deze status. Een status die in een systeem wordt aangegeven dat deze kan berekenen, leidt uiteindelijk tot een fout.

AI-agenten

Een team van AI-agenten, intern genaamd STA Inc, draait met één container per agent, op een speciale sandbox-VM. Elke agent ontvangt alleen zijn eigen tokens; de geheimen van het park zijn niet op deze VM. De agenten werken via Vikunja. Daaronder bevindt zich Clio, de documentatie-expert, die de dekking van de documentatie meet en tekortkomingen opspoort.

Waarom. Op 2 oktober 2026 bleek dat een agent die vanuit de ontwikkel-VM werd gelanceerd, toegang had tot alle geheimen en alle hosts. De speciale VM sluit dit gebied af. De agenten zijn georganiseerd in een boomstructuur, zodat er geen lus ontstaat.

Taalmodellen

Ollama gebruikt modellen lokaal, op de GPU van de host. LiteLLM is de centrale toegangspunt voor het gehele park: elke aanvraag, of het nu lokaal is of naar een externe leverancier, gaat via deze, met een sleutel per gebruiker, een budget en een fallback.

Waarom. Het centrale toegangspunt maakt de kosten en het gebruik overzichtelijk, en maakt het mogelijk om van leverancier te wisselen zonder de gebruikers te beïnvloeden. Het is een onafhankelijke stack geworden op 2026-09-28.

Automatisering

n8n beheert de workflows: goedkeuringsketens, notificaties, documentverwerking. Het communiceert alleen met Docker via een socket-proxy, nooit direct met de socket.

Een regel, gebaseerd op ervaring, begeleidt n8n: een dagelijkse taak die niet afhankelijk is van een geplande trigger van n8n, die mogelijk kan falen. Deze gaat via een systeemtimer die de status controleert en opnieuw probeert.

Code

Gitea, zelf gehost, is de bron van elk repository. GitHub wordt gebruikt voor het delen. Een synchronisatie draait elke vijf minuten in beide richtingen en dwingt nooit iets af.

Waarom. Een enkele spiegel overwrijdt: een merge uitgevoerd in GitHub zou na de volgende update verdwenen zijn (beslissing van 2026-09-27). Een applicatie met een interface heeft zijn eigen repository; de lokaal gebouwde afbeelding heeft zijn eigen versie van de recepten naast zijn configuratie.

Hosts

De VMs draaien op een Proxmox hypervisor. De Linux hosts passen hun updates automatisch 's nachts toe, zonder tussenkomst, en genereren elke nacht een rapport. De hypervisor blijft handmatig up-to-date, omdat de installatiescripts de beheerservices opnieuw starten.

Waarom. Tot september 2026 draaiden de VM's op een werkplek die meer dan achtentwintig containers kon verwerken, op een langzame virtuele schijf, terwijl de andere server overbelast was. De migratie naar de hypervisor, in september 2026, verplaatste deze last naar snellere lokale opslag.

Kennis

De vault, bestaande uit Markdown-notities in Git, bewaard in Obsidian, is de bron van alle kennis binnen het park: beslissingen, runbooks, en ongeveer 1.700 incident-FAQ's. Een intern wiki is een leesbare weergave hiervan. Deze website is een herziene en publieke versie.

Waarom. Een FAQ ontstaat door een incident en beschrijft een onderzoek, inclusief valse sporen. Deze bevindt zich in de vault. Deze website bewaart alleen wat na het sluiten van het onderzoek nog waar is. De details van het delen staan beschreven in Waar en hoe schrijven.

En voor dagelijks gebruik

Het park wordt ook gebruikt voor: een fotoarchief (Immich, waarbij de analyse van afbeeldingen op de GPU draait, ongeveer tien keer sneller dan op een CPU, met meer dan veertigduizend foto's), slim wonen (Home Assistant, Node-RED, MQTT), en een mediotheek. Dit zijn de diensten waarvoor alles anders beschikbaar is.

Dernière vérification de cette page : 2026-10-06