https://github.com/pedrotchang/homelab
GitOps configuration and documentation of my Kubernetes Talos Linux home lab powered by FluxCD and Omni.
https://github.com/pedrotchang/homelab
fluxcd gitops homelab homelab-automation k8s k8s-at-home kubernetes linux omni sidero talos-linux
Last synced: 6 months ago
JSON representation
GitOps configuration and documentation of my Kubernetes Talos Linux home lab powered by FluxCD and Omni.
- Host: GitHub
- URL: https://github.com/pedrotchang/homelab
- Owner: pedrotchang
- Created: 2025-01-26T16:30:07.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-04-01T00:43:28.000Z (6 months ago)
- Last Synced: 2025-04-01T01:32:21.891Z (6 months ago)
- Topics: fluxcd, gitops, homelab, homelab-automation, k8s, k8s-at-home, kubernetes, linux, omni, sidero, talos-linux
- Homepage:
- Size: 249 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Welcome to my Home(lab) 🏡
## Introduction
Here you will find all tthe documentation of my homelab.
I am a big proponent to giving credit where it is due, and I would first like to take the time to thank Mischa van den Burg
and the Kubecraft community. I could not learn to do all this without them!If you have ever been curious about Cloud Native Technologies, DevOps or Kubernetes, then the place you want to be is in Kubecraft!
This repository is where I do all my testing, tinkering, and all-in-all a space for me to play, and work! It does have a serious note as well, since I will be working with my own personal data and require me to think about the whole process of deployment and maintanence!
## Hardware & Cluster Provisioning
I like to start off talking about hardware first. It's I think a great base line to understand what I was working with.
I have currently 3 old hardware:\
HP EliteDesk 800 G2 i5-6500T/16GB/256SSD\
HP EliteDesk 800 G2 i5-6500T/16GB/256SSD\
HP Laptop (atm do not know the model) 8GB/256SSDI love [Talos Linux](https://www.talos.dev/). It has production grade security out of the box, is lightweight, and has robust features. At first, I used straight baremetal. But after sometime (a week...), I realized that [Omni](https://www.siderolabs.com/platform/saas-for-kubernetes/) was the way to go.
I could spin up new clusters in seconds, and exposing external services is a breeze.
I have them in this structure:
| Cluster | Usage | Hardware |
| --------------- | --------------- | --------------- |
| Data | PostgreSQL Database | HP Laptop |
| Tachtit | Apps | HP 800 G2 |
| ~~Redacted~~ | Private Apps | HP 800 G2 |## Apps
| Icon | Name | Description |
|------|------|-------------|
|| [Cilium](https://cilium.io/) | An amazing CNI used for all my clusters. I opt out of Flannel for Cilium. |
|| [CloudnativePG](https://cloudnative-pg.io/) | A Kubernetes operator for deploying and managing PostgreSQL clusters. |
|| [External Secrets Operator](https://external-secrets.io/) | A Kubernetes operator that synchronizes secrets from external APIs into Kubernetes. Currently, it uses secrets from my Azure Key Vault. |
|| [External DNS](https://github.com/kubernetes-sigs/external-dns) | A Kubernetes addon that automates the management of DNS records based on Kubernetes resources. |
|| [FluxCD](https://fluxcd.io/) | A GitOps tool for automating Kubernetes deployments from Git repositories. |
|| [Flux Operator](https://github.com/flux-framework/flux-operator) | A Kubernetes CRD controller that manages the lifecycle of CNCF Flux. It automates installation, configuration, and upgrades of Flux controllers through a declarative API. |
|| [Grafana](https://grafana.com/) | A multi-platform analytics and visualization web application for monitoring data. |
|| [Prometheus](https://prometheus.io/) | An open-source monitoring and alerting toolkit for containers and microservices. |
|| [Renovate](https://www.mend.io/renovate/) | An automated dependency update tool that creates and maintains pull requests for your dependencies. |
### End User Applications
| Icon | Name | Description |
|------|------|-------------|
|| [Homepage](https://gethomepage.dev/) | A self-hosted dashboard that allows you to organize your web services and bookmarks in a clean, customizable interface. |
|| [Linkding](https://github.com/sissbruecker/linkding) | A self-hosted bookmark manager with tagging and search functionality. |
## Next Steps
- [ ] Link my PostgreSQL Database in the data cluster to my TrueNAS Scale.
- [ ] Have blob storage for my data cluster to create periodic backups.
- [ ] Add on Immich, CommaFeed, Wallabag, to work with my data cluster, and also backup to blob storage.