This project utilizes Infrastructure as Code and GitOps to automate the provisioning, operation, and updating of self-hosted services in my homelab.
- Automated deployment of all services using ArgoCD
- Automated updates of all services using Renovate
- Automated DNS updates of local DNS (AdGuard Home) using external-dns
- Automated DNS updates of global DNS (Cloudflare) using cert-manager.io
- Automated certificate creation and renewal using cert-manager.io
- Media Server setup using Plex
- Media Automation using Radarr, Sonarr, Lidarr
- Password Management with Vaultwarden
- Kubernetes Native Storage using csi-driver-nfs
- Automated Kubernetes backups using velero
- Automated Database Setup and Backups using CloudNativePG
- Monitoing setup using Grafana, Grafana Loki, Grafana Mimir and Grafana Alloy
After nearly a decade with Debian and ZFS, I’ve switched to Unraid for a more power-efficient storage solution. Unlike ZFS, Unraid allows idle disks to spin down, significantly reducing energy consumption while still providing over 100 TB of RAID storage.
My setup consists of a single Unraid server that runs Kubernetes in Talos Linux VMs.
flowchart TD
subgraph s1["Unraid Server"]
nfs["Unraid NFS"]
subgraph vm["Unraid VM"]
cp1["Talos Kubernetes<br/>Control Plane 1"]
w1["Talos Kubernetes<br/>Worker 1"]
end
nfs <--> cp1 & w1
end