This repository contains my personal homelab, defined and deployed as code using IaC, and GitOps practices where possible.
In addition to being a learning environment, my homelab also functions as my home network. It supports much of what I do everyday, and is designed with the following goals in mind:
- High service uptime
- High fault tolerance
- Best practice security
- Privacy by design
- Efficient resource utilization
- Low power, noise, and space
My homelab is broken up into layers which very loosely align with the concepts of IaaS, PaaS, and SaaS. Modularizing the infrastructure in this way helps me isolate dependencies, and avoid deployment problems.
- The Software Layer provides the applications and services consumed by users and systems in my homelab.
- The Platform Layer provides the environments and runtimes which applications and services are deployed on.
- The Infrastructure Layer provides the hypervisors, bare-metal operating systems, and compute resources used by the other layers.
See commit history