Skip to content

mrdynamo/home-ops

Repository files navigation

🏠 Home Operations 🏠

🚧 My homelab Kubernetes cluster managed with GitOps 🚧

Talos   Kubernetes   Flux  

Age-Days   Uptime-Days   Node-Count   Pod-Count   CPU-Usage   Memory-Usage   Alerts


📖 Overview

This repository contains the infrastructure and applications for my personal homelab cluster. The entire system is managed as code using Infrastructure as Code (IaC) and GitOps principles with Flux, Renovate, and GitHub Actions.

The cluster is deployed on Talos Linux and leverages modern cloud-native technologies to provide a declarative, self-healing infrastructure where the desired state is always defined in Git.

✨ Core Features

Kubernetes & Container Orchestration

GitOps & Automation

  • GitOps: Flux CD - Declarative infrastructure and application deployment
  • Dependency Management: Renovate - Automated dependency updates with PRs
  • CI/CD: GitHub Actions - Workflow automation and testing

Security & Secrets

Storage & Persistence

  • Distributed Storage: Longhorn - Persistent volume management
  • NFS Storage: Network-attached storage for media and backups
  • Volume Snapshots: Volsync - Backup and restore capabilities

Applications

A wide array of self-hosted applications including media management (Plex, Radarr, Sonarr), productivity tools (Mealie, Paperless), and monitoring solutions.

🗂️ Repository Structure

📁 kubernetes/
├── 📁 apps/           # Applications organized by namespace
├── 📁 components/     # Reusable Kustomize components
└── 📁 flux/           # Flux system configuration
📁 talos/              # Talos Linux configuration
📁 bootstrap/          # Cluster bootstrap resources
📁 scripts/            # Utility scripts

🔄 GitOps Workflow

Flux automatically watches this repository and applies changes to the cluster based on the Git state. Application deployments are defined declaratively using Kubernetes manifests and Helm releases.

Renovate monitors the repository for dependency updates and automatically creates PRs. When merged, Flux applies the changes to the cluster.

⚙️ Hardware

Device Count CPU Cores Memory Storage Purpose
Unifi UCG Ultra 1 - - - Gateway/Router
Dell PowerEdge R730XD 1 2x Intel Xeon E5-2690v4 @ 2.60 GHz 192 GB 2x 2 TB Enterprise SSD (RAID-1) vSphere Hypervisor (Primary)
Dell PowerEdge R710 1 2x Intel Xeon E5-2649 @ 2.53 GHz 96 GB 1 TB Consumer SSD vSphere Hypervisor (Secondary)
Control Planes (VMs) 3 4 vCPU 6 GB 16 GB SSD Kubernetes control plane
Worker Nodes (VMs) 2 8 vCPU 24 GB 256 GB SSD Kubernetes workers
Lenovo M90q 1 Intel i5-11500 16 GB 512 GB NVMe Kubernetes worker (iGPU)
TrueNAS Core (VM) 1 16 vCPU 64 GB 6x 8 TB HDD (RAID-Z2) NAS - Bulk storage (NFS, SMB, Backups, etc)

🙏 Acknowledgments

Special thanks to onedr0p for the excellent cluster-template that this repository is built upon.

Thanks to the Home Operations community for their continuous support, shared knowledge, and inspiring homelab setups.

🙌 Related Projects

If this repo is too hot to handle or too cold to hold check out these following projects.

  • ajaykumar4/cluster-template - A template for deploying a Talos Kubernetes cluster including Argo for GitOps
  • khuedoan/homelab - Fully automated homelab from empty disk to running services with a single command.
  • mitchross/k3s-argocd-starter - starter kit for k3s, argocd
  • ricsanfre/pi-cluster - Pi Kubernetes Cluster. Homelab kubernetes cluster automated with Ansible and FluxCD
  • techno-tim/k3s-ansible - The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more. Build. Destroy. Repeat.

⭐ Stargazers

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •