ZEROFOUNDRY

Een persoonlijk engineeringplatform

Van hardware
tot toepassing.
Met overzicht.

Zero Foundry is een zelfgehoste omgeving om software en toepassingen met artificiële intelligentie (AI) te bouwen, te testen, uit te rollen en te herstellen.

De kracht zit in de samenhang: duidelijke verantwoordelijkheden, herhaalbare uitvoering en bewijs dat een stap werkelijk werkt.

01 / Wat is Zero?

Een werkplaats voor
betrouwbare software.

Na jaren engineeringmanagement is Zero Foundry een persoonlijk initiatief om architectuur, implementatie, integratie en beheer weer tastbaar te maken. Producten geven het platform echte problemen; het platform geeft producten gedeelde bouwstenen.

Elke stap heeft een eigenaar. Git bewaart de gereviewde bron en gewenste toestand. Jenkins voert controles uit. Nexus verdeelt artifacts. Vault beheert secrets. Argo CD — Continuous Delivery, gecontroleerde aflevering — beheert de clusterinhoud.

Een artifact is een concrete bewaarde output, zoals een softwarepackage of modelbestand. Een secret is vertrouwelijk toegangsmateriaal. Een AI-voorstel of geslaagde build is geen automatische toestemming voor een release.

02 / Architectuur

Drie lagen.
Een aparte managementplane.

Lees van onder naar boven: machines maken, het cluster opbouwen, toepassingen laten draaien. Management blijft buiten het cluster dat het moet kunnen herstellen.

Gereviewde bron & gewenste toestandGitHub · code, configuratie en beslissingen

Managementplane · buiten Kubernetes

Docker Compose op een
virtuele machine (VM)

JenkinsBouwen en controleren
VaultSecrets en toegang
NexusPackages en images
MinIOInfrastructuurstate
FactoryBegrensde coördinatie
ResticBackup en herstel

Een operatorpad blijft beschikbaar wanneer Kubernetes wegvalt. Volledige disaster recovery vraagt daarnaast onafhankelijke data, keys en een getest herstel.

Runtimeplane · Kubernetes

03 / Toepassingen & add-onsArgo CD · Helm · Kustomize

Gewenste toestand uit Git naar runtime. Private workloads, retrieval, monitoring en tijdelijke buildagents.

02 / Cluster opbouwenKubespray · Ansible

Nodes configureren, Kubernetes starten en netwerk/readiness controleren.

01 / Machines provisionenOpenTofu · cloud-init

Infrastructure as Code (IaC): VM’s en disks declaratief beschrijven. Configuration as Code (CaC): configuratie in beheerde bestanden vastleggen.

Fysieke basis · Proxmox · storage · netwerkDe huidige VM’s delen één fysieke host. Logische scheiding is geen fysieke hoogbeschikbaarheid.
Caddy / MediacentarrDe bestaande web-edge regelt toegang en HTTPS — Hypertext Transfer Protocol Secure, webverkeer over beveiligd transport.

Control plane: diensten die het systeem configureren en aansturen.

Data plane: de uitvoering die aanvragen en werkelijke workloadgegevens verwerkt.

Recoveryboundary: het cluster kan herbouwd worden zonder dat het eerst moet functioneren.

03 / Technologie in mensentaal

Wat lost elke bouwsteen op?

Productnamen zijn hulpmiddelen. Het belangrijke gesprek gaat over hun verantwoordelijkheid en de grens waar ze werken.

Machines

Proxmox + OpenTofu

Proxmox beheert virtuele computers. OpenTofu legt vast welke machines en disks er horen te zijn; een plan toont de voorgestelde wijzigingen.

Configuratie

Ansible + Kubespray

Ansible voert configuratietaken uit. Kubespray gebruikt die aanpak om een Kubernetescluster op te bouwen en te onderhouden.

Uitvoering

Kubernetes + containerd

Kubernetes plaatst en beheert containers in pods: groepen containers die samen worden uitgevoerd. containerd is de uitvoerende containerruntime.

Gewenste toestand

Argo CD + Helm + Kustomize

Argo vergelijkt Git met runtime. Helm levert verpakte componenten; Kustomize combineert en past configuratiebestanden aan.

Delivery

Jenkins + Nexus

Continuous Integration (CI) is automatisch wijzigingen controleren. Jenkins voert die jobs uit; Nexus bewaart en verdeelt hun gereviewde artifacts.

Toegang

Vault + External Secrets

Vault is de centrale secretbron. External Secrets levert alleen toegestane secretprojecties aan workloads. Een bijgewerkt bestand bewijst nog geen succesvolle rotatie.

Terugvinden

Qdrant + FastEmbed

FastEmbed zet tekst om in getallenrepresentaties, embeddings. Qdrant zoekt vergelijkbare representaties. Retrieval-Augmented Generation (RAG) geeft zulke gevonden bronnen aan een taalmodel.

Begrenzen

OPA + Rego

Open Policy Agent (OPA) beoordeelt regels in Rego. Een provider of worker krijgt alleen toegestane tools en data; een policyfout mag geen toestemming opleveren.

Waarnemen

Prometheus + Grafana

Prometheus verzamelt meetwaarden; Grafana toont ze. Alertmanager routeert alarmen. Monitoring, alarmontvangst en menselijke opvolging vragen elk hun eigen bewijs.

Herstellen

Restic + age

Restic maakt versleutelde backups. age versleutelt recoverybestanden. Herstel vraagt ook werkende keys, trust en een onafhankelijk bereikbare kopie.

Modellen

PyTorch + OpenCV

PyTorch ondersteunt modeltraining; OpenCV verwerkt beelden. Graphics Processing Unit (GPU) betekent een processor voor parallel rekenwerk. Een modelrun is geen bewijs van productkwaliteit.

Services & interfaces

Python, FastAPI, React en Lua

FastAPI maakt een Application Programming Interface (API), een afgesproken softwarekoppeling. React bouwt de browserinterface. Lua is de gedeelde logica voor game-addons en LootHeat.

Afkortingen in de repositorykaart
JSON
JavaScript Object Notation: formaat voor gestructureerde gegevens.
YAML
YAML Ain’t Markup Language: leesbaar configuratieformaat.
HCL
HashiCorp Configuration Language: configuratietaal die OpenTofu gebruikt.
S3
Simple Storage Service: een objectopslaginterface; MinIO biedt compatible zelfgehoste opslag.
DSL
Domain-Specific Language: taal voor een specifieke taak, zoals Jenkins-jobs beschrijven.
CLI
Command-Line Interface: een toepassing bedienen met commands.
OCI
Open Container Initiative: standaarden voor containerimages en runtime.
SQL
Structured Query Language: taal om relationele databases te bevragen; SQLite en PostgreSQL zijn databaseproducten.

04 / Repositorykaart

Twintig repositories.
Geen twintig losse eilandjes.

De verdeling volgt verantwoordelijkheid en lifecycle. Technologieën hieronder beschrijven repositorygebruik; ze zijn geen automatische lijst van live services.

01

Afspraken & herbruikbare ontwerpen

Eerst vastleggen hoe we werken, daarna die afspraken vertalen naar bruikbare voorbeelden.

GovernanceBron ↗

.github

De gemeenschappelijke GitHub-afspraken

Standaardtemplates voor wijzigingsvoorstellen en beleid voor beschermde branches. Een productrepo kan specifiekere afspraken toevoegen.

MarkdownJSONGitHub rulesets
GovernanceBron ↗

zf-engineering-playbook

Het engineeringhandboek

Beheert standaarden voor kwaliteit, security, bewijs, architectuurbeslissingen en begrensd gebruik van AI-assistenten. Het handboek beschrijft hoe andere repositories werken.

MarkdownPythonPowerShellShellSkills
ReferentieBron ↗

zf-reference-architectures

Van principe naar uitvoerbaar voorbeeld

Herbruikbare ontwerpen voor Kubernetes, delivery, retrieval, security-evidence en browsertests. Voorbeelden worden door een product overgenomen en aangepast; ze bewijzen geen live deployment.

PythonYAMLDocker ComposeGroovyTypeScript
02

Infrastructuur, cluster & herstel

Elke laag heeft een eigen eigenaar: machines maken, het cluster opbouwen, toepassingen beheren en state herstellen.

PlatformBron ↗

zf-infrastructure

De virtuele machines en hun infrastructuur

Definieert Proxmox-VM’s, disks, cloud-init en infrastructuurstate. Geeft verbindingsgegevens door aan de clusterlaag. Beheert geen applicaties in Kubernetes.

OpenTofuProxmoxHCLcloud-initMinIO / S3
PlatformBron ↗

zf-kubernetes

Kubernetes opbouwen en onderhouden

Maakt de node-inventory uit infrastructuuroutputs en beheert clusterbootstrap, upgrades, networking en readiness. Drie control planes en twee workers delen de huidige fysieke host.

KubesprayAnsibleKubernetesCalicoCoreDNScontainerd
PlatformBron ↗

zf-gitops

Wat er in het cluster hoort te draaien

Beheert de gewenste toestand: add-ons, namespaces, agentgrenzen, secretprojecties en private workloads. Argo CD vergelijkt de repository met runtime en corrigeert afwijkingen.

Argo CDKustomizeHelmExternal SecretsPrometheusQdrant
OperationsBron ↗

zf-operations

De platformdiensten daadwerkelijk beheren

Beheert Compose-stacks, maintenance, incidentprocedures, backup en restorechecks. Hier zitten de operationele definities voor de managementdiensten buiten Kubernetes.

Docker ComposeAnsibleVaultJenkinsNexusRestic
RecoveryBron ↗

zf-recovery

Versleutelde recoverymaterialen

Bewaarplaats voor encrypted recovery-artifacts en controleprocedures. Vault blijft secret authority. De onafhankelijke kopie van de decryptiesleutel en haar herstelbewijs zijn nog niet volledig afgerond.

age encryptionShellChecksumsPrivate Git
03

Bouwen, testen & afleveren

De catalogus kiest welke jobs bestaan. De library bepaalt hun gedrag. Kleine fixtures toetsen of die combinatie werkt.

DeliveryBron ↗

zf-ci-catalog-jenkins

De jobcatalogus

Beschrijft folders, repositories, multibranchjobs en pipelinekeuzes. Een seed-job genereert daaruit de Jenkins-jobstructuur. Canary en stable hebben afzonderlijke lanes.

YAMLJSON SchemaGroovyJenkins Job DSLPython
DeliveryBron ↗

zf-ci-library-jenkins

Het herbruikbare pipelinegedrag

Gedeelde functies voor validation, packages, releases, agentcontracten en evidence. De library levert uitvoering; de catalogus bepaalt welke repository welke functie gebruikt.

GroovyJenkinsPython / uvBuildKit-contractenSecurity scanners
TestfixturesBron ↗

zf-pipeline-fixtures

Kleine proefprojecten voor de bouwstraat

Eenvoudige projecten om detectie, routing en pipeline-uitvoering te controleren. Geen productieapplicaties: juist kleine voorspelbare voorbeelden maken fouten zichtbaar.

PythonNode.js.NET / NuGetLuaJavaScriptMarkdown
04

AI-assistentie & engineeringgeheugen

AI krijgt context en afgebakende bevoegdheden. Bewijs en menselijke beslissingen blijven afzonderlijk van modeloutput.

AI-engineeringBron ↗

zf-engineering-orchestrator

De begrensde software-factorycoördinator

Verbindt work packages, providerkeuze, policybesluiten, geïsoleerde uitvoering en duurzame evidence. Publicatie, review en merge zijn afzonderlijke authorities. De catalogus voor engineeringgeheugen bewaart bronherkomst.

PythonPydanticSQLiteOPA / RegoQdrant / FastEmbedProvider adapters
Retrieval-appBron ↗

zf-chat

Private chat met verplichte bronretrieval

Zoekt eerst in engineeringgeheugen en geeft bronverwijzingen terug. Zonder bruikbare retrieval wordt de modelaanroep gestopt. De service heeft geen shell-, repository- of deploymenttools.

PythonFastAPIQdrantFastEmbedCodex CLI
05

Toepassingen boven op het platform

Producten houden hun eigen code, gegevens en acceptatie. Ze gebruiken de platformdiensten waar dat nuttig is.

Product & experimentenBron ↗

split-the-g

Computer vision en model-experimenten

Analyseert een foto voor de Split the G-uitdaging. Bevat een klassieke beeldanalyse-engine, datagovernance, een reviewwerkruimte en geïsoleerde PyTorch-training. Geen gepromoveerd geleerd productmodel geclaimd.

PythonOpenCVNumPyPyTorch / TorchVisionDocker
ApplicatieserviceBron ↗

split-the-g-app

De service rond de beeldanalyse-library

Voegt een begrensde webinterface toe aan een vaste libraryversie: requestlimieten, health en metrics. De beeldanalyse, training en datasetbeslissingen blijven in de engine-repository.

PythonFastAPIPydanticOCI-imagesNexus
Actieve applicatieBron ↗

loot-heat

Lootregels en reproduceerbare simulaties

Een game-addon en browserlab voor Heat, lootkeuzes, persona’s en seizoenen. Addon, browser en offline runner gebruiken één Lua-core. Experimentcontracten bestaan; de huidige deterministische simulatie is geen machine learning.

LuaFengariTypeScriptReact / ViteSQLitePython / Hypothesis
Experimenten op holdBron ↗

zf-film

Traceerbare beeld- en videoproductie

Versioned shots, jobs, artifacts en menselijke review verbinden Blender en generatieve workflows. Echte lokale GPU-uitvoering is historisch vastgelegd; verdere ComfyUI- en videogeneratie staat op hold.

PythonFastAPIPostgreSQLSQLAlchemy / AlembicBlenderComfyUI
Game-addonBron ↗

guild-scout

Recruitmentinformatie in een game-addon

Verzamelt toegestane nearby-unitinformatie en bewaart recruiterrecords. Heeft eigen lokale tests en packaging. Beheert geen platforminfrastructuur en is geen bewezen AI-model.

Lua 5.1PowerShellDockerJenkins
ApplicatiescaffoldBron ↗

fod-claims-automation

Scaffold voor administratieve workflows

Verkent claims, bewijsdocumenten en workfloworchestratie voor een Federale Overheidsdienst (FOD). Er is een kleine frontend/service/statebasis; echte overheidsintegraties, productieauthenticatie en productieopslag worden niet geclaimd.

n8nDocker ComposeTypeScriptFastifyReact / ViteJSON persistence
Household & edgeBron ↗

mediacentarr

Householddiensten en de bestaande web-edge

Beheert media- en householdservices met reverse proxy, authenticatie en private toegang. Caddy is de bestaande publieke toegangspoort. Deze overzichtssite draait erachter in een aparte nginx-container.

Docker ComposeCaddyAutheliaHeadscale / TailscaleGluetunJellyfin

05 / Hoe alles samenwerkt

Van wijziging naar gecontroleerde uitvoering.

  1. 01Git

    Een wijziging krijgt scope, bronversie en review.

  2. 02Jenkins

    Tests en controles leveren concrete evidence.

  3. 03Nexus

    Een artifact krijgt een exacte, immutable identity.

  4. 04Delivery

    Argo CD voor Kubernetes; begrensde hostdelivery voor Compose.

  5. 05Acceptatie

    Health, gedrag, security en rollback worden afzonderlijk beoordeeld.

AI in het systeem

Engineeringretrieval en model-experimenten bestaan. Machine Learning Operations (MLOps) beheert de data- en modellifecycle. LootHeat heeft daarvoor foundations; zijn huidige simulaties zijn deterministisch.

Security als dagelijkse praktijk

Controls krijgen scope, owner en bewijs. Development, Security and Operations (DevSecOps) verbindt bouwen en beheren. Frameworkmappings ondersteunen assessment; ze zijn geen certificaat.

Enterprise groeit uit dezelfde grenzen

Dezelfde architectuurprincipes blijven bruikbaar. Redundancy, support, netwerksegmentatie, operationele afspraken en bewezen recovery bepalen de vereiste garanties.