๐ก ๐งช Home Lab
๐ Overview
This mono repository houses the infrastructure for my homelab. I try to adhere to Infrastructure as Code (IaC) and GitOps practices using tools like Ansible, Terraform, Kubernetes, Flux, Renovate and GitHub Actions.
โต How to get started
There is a template over at onedr0p/flux-cluster-template if you want to try and follow along with some of the practices I use here.
๐จ Cluster components
- actions-runner-controller: Self-hosted Github runners
- cert-manager: Creates SSL certificates for services in my k3s cluster.
- cilium: Internal Kubernetes networking plugin.
- external-dns: Automatically manages DNS records from my cluster in a cloud DNS provider.
- external-secrets: Managed Kubernetes secrets using Doppler.
- ingress-nginx: Ingress controller to expose HTTP traffic to pods over DNS.
- Rook: Distributed block storage for persistent storage.
- sops: Managed secrets for Kubernetes, Ansible and Terraform which are commited to Git.
- volsync and snapscheduler: Backup and recovery of persistent volume claims.
... and more!
๐๏ธ Hardware
## Production Nodes
| Device | Count | Specs | OS | Purpose |
|--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------|
| MinisForum um350 | 1 | **RAM** `32GB`
**M.2 SSD** `500GB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Control Plane | | MinisForum um350 | 1 | **RAM** `32GB`
**M.2 SSD** `500GB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Data Plane | | Minisforum um560 | 1 | **RAM** `32GB`
**M.2 SSD** `1TB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Data Plane | ## Staging Nodes | Device | Count | Specs | OS | Purpose | |--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------| | Turing Pi RK1 | 3 | **RAM** `16GB`
**M.2 SSD** `500GB`| Ubuntu 22.04 LTS | Development & Staging | ## Infrastructure | Device | Count | Specs | OS | Purpose | |--------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------| | Turing Pi RK1 | 1 | **RAM** `16GB`
**M.2 SSD** `500GB`
**HDD** `1TB` | - | DNS Server | | Turing Pi Board V2 | 1 | - | - | - | | Unifi UDM Pro | 1 | - | - | 10Gb Core Switch + Router + FW | | Unifi Lite 8 PoE | 1 | - | - | Switch | | Mac Mini | 1 | **RAM** `8GB`
**M.2 SSD** `256GB` | - | TBD |
**M.2 SSD** `500GB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Control Plane | | MinisForum um350 | 1 | **RAM** `32GB`
**M.2 SSD** `500GB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Data Plane | | Minisforum um560 | 1 | **RAM** `32GB`
**M.2 SSD** `1TB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Data Plane | ## Staging Nodes | Device | Count | Specs | OS | Purpose | |--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------| | Turing Pi RK1 | 3 | **RAM** `16GB`
**M.2 SSD** `500GB`| Ubuntu 22.04 LTS | Development & Staging | ## Infrastructure | Device | Count | Specs | OS | Purpose | |--------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------| | Turing Pi RK1 | 1 | **RAM** `16GB`
**M.2 SSD** `500GB`
**HDD** `1TB` | - | DNS Server | | Turing Pi Board V2 | 1 | - | - | - | | Unifi UDM Pro | 1 | - | - | 10Gb Core Switch + Router + FW | | Unifi Lite 8 PoE | 1 | - | - | Switch | | Mac Mini | 1 | **RAM** `8GB`
**M.2 SSD** `256GB` | - | TBD |
๐ Changelog
See my awful commit main history and legacy history
Gratitude and thanks
Thanks all the people of Home Operations Discord community who put a lot of effort and donate their time to the community.
๐ License
See LICENSE v.g WTF License