This repository contains my personal home infrastructure, defined and deployed as code using IaC, and GitOps practices where possible.
My home infrastructure helps support 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 home infrastructure 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 that users interact with. It includes deployed applications, along with their definitions and configurations.
- The Platform Layer provides the platforms which applications and services are deployed on in the Software Layer. It includes for example, guest operating systems, container orchestration platforms (i.e. Kubernetes), and database management systems.
- The Infrastructure Layer provides the basic networking, storage, and compute resources used by the Platform Layer. It includes physical hardware, hypervisors, and other infrastructure components.
Click on the links in the above descriptions for more detail on each layer.
See commit history