The lab

What theTinyLab runs: the services, the hardware they run on, and the architecture that ties them together.

The whole design hangs on one idea: a zone per trust domain. Everything the lab runs lives where it can only talk to what it must. This page is the inventory — what is live today, what is being built, and what is queued.

What it hosts

Deployed

ServiceSoftware
Internal certificate authoritystep-ca + theTinyCA web UI
Internal DNSTechnitium pair, custom blockers + DoH forwarders
External DNSCloudflare
BackupsProxmox Backup Server, 3-2-1 strategy — offsite leg pending
Patch & compliance monitoringPatchMon
Inference engineOllama

In flight

ServiceSoftware
Git + CI/CDself-hosted Gitea build with native runners
Identity providerPocket ID, passkey-first OIDC

Planned

ServiceSoftware
Edge firewall pairOPNSense in HA, WAN transit from the home ISP
Zero-trust remote accessself-hosted NetBird control plane + client
Public reverse proxy + WAFhardened Caddy + Coraza/OWASP CRS + CrowdSec
Internal reverse proxyhardened Caddy
Kubernetes platformTalos Linux + custom Headlamp
File sync / driveOpenCloud or similar
Monitoring / SIEMWazuh + CrowdSec + LGTM stack
File convertercustom Transmute build
Network bootiVentoy iPXE server
Email archivingOpenArchiver / Bichon
Hosted officeCollabora
Device managementFleetDM
Object storageGarage S3

The metal

RoleMachinesCPUMemoryStorageStatus
Virtualization (Proxmox cluster)3 × Dell OptiPlex Micro 7040i5-6500T16 GB DDR4256 GB NVMelive
Kubernetes nodes3 × Intel NUC 7i7BNKi7-7567U16 GB DDR4256 GB NVMein flight
AI node1 × Mac Mini (M1)M116 GB unified256 GB NVMelive
Lab workstation1 × Dell XPS 9350, custom Arch build (“theTinyOS”)i7-1165G716 GB DDR4500 GB NVMelive

Architecture

The lab is segmented by trust, not by convenience. A hardened border pair separates the household network from everything below it, and inside the lab each zone exists because it is allowed to talk to different things than its neighbours. Here’s the shape of it, with the numbers deliberately left out.

 family internet
        │
  ┌─────▼─────┐
  │   home    │      the production network the lab nests under —
  │  network  │      it plays the part of the ISP and nothing more
  └─────┬─────┘
        │  a single quiet uplink
  ┌─────▼──────────────────────────┐
  │  border · firewall pair (HA)   │   two firewalls, one virtual address,
  └─────┬──────────────────────────┘   failover between them
        │
  ┌─────┴─────────────────────────────────────────────┐
  │                     the lab                       │
  │                                                   │
  │  scratch ─ experiments, throwaway builds          │
  │  infra ─── DNS, certificates, identity, backups   │
  │  k8s ───── Kubernetes platform & apps             │
  │  svc ───── shared services                        │
  │  edge ──── the only zone that faces the internet  │
  └───────────────────────────────────────────────────┘
ZoneRoleStatus
edgePublic publishing. Strict ingress; nothing else may be reached from outsideplanned
svcShared services for the household-lab boundaryplanned
k8sTalos Kubernetes: apps and platform workloadshardware in flight
infraDNS, certificates, identity, backups, monitoringlive
scratchGeneral lab workloads, safe to breakplanned

Three doors

Everything about access control reduces to which door you arrive through:

  1. Public. From the internet you will be able to reach exactly one thing: the edge reverse proxy — behind a web application firewall, certificates issued through a DNS-based challenge so no administrative port is ever opened. Building now.
  2. Remote. Away from home, a zero-trust overlay will bring the lab to the laptop — scoped per zone, switched on automatically only when the laptop leaves home. Planned: self-hosted NetBird.
  3. Trusted. On the home network, management traffic never crosses the firewalls at all: direct layer-2 access survives even a total border outage, which is what makes it the break-glass path.

Where it stands today

Certificates, DNS, backups, patch monitoring and local inference are live. The git forge and identity provider are being deployed next, then the high-availability firewall pair. Kubernetes hardware is racked and waiting for its platform. The lab documents the build as it happens — including the parts that don’t go to plan — over at the agent journal.