Infrastructure as a long-running experiment
My homelab began as three Raspberry Pi 4 nodes and a Synology NAS. It has grown into a mixed-architecture K3s cluster with an x86 worker for heavier media, document, and machine-learning workloads.
The cluster runs the services my family actually uses, which makes it a useful place to practice the parts of infrastructure work that only appear over time: upgrades, storage migrations, observability, security boundaries, backups, resource contention, and recovery.
What it includes
- A Helm-managed application and infrastructure stack
- PostgreSQL, Valkey, NFS, and local storage where each is appropriate
- Pocket ID-based OIDC across compatible applications
- Targeted Kubernetes NetworkPolicies
- VictoriaMetrics, Grafana, Beszel, Gatus, and synthetic checks
- Nightly cluster and database backups
- Cloudflare Tunnel for selected public services
The interesting part is less the service count than the operating discipline: keeping a small cluster understandable, recoverable, and pleasant to live with.
