https://github.com/tale/homelab
Nice little Talos Minilab cluster
https://github.com/tale/homelab
Last synced: 4 months ago
JSON representation
Nice little Talos Minilab cluster
- Host: GitHub
- URL: https://github.com/tale/homelab
- Owner: tale
- License: mit
- Created: 2025-08-04T17:09:18.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-13T04:47:10.000Z (10 months ago)
- Last Synced: 2025-08-13T06:30:33.931Z (10 months ago)
- Language: Just
- Size: 64.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tale Homelab (Talos Mini-cluster)
This repository contains all of the necessary configuration files for my own
homelab mini-cluster built on top of [Talos Linux](https://www.talos.dev/). For
the hardware specifics see the [Hardware](#hardware) section below. With the
actual cluster software, I was aiming to have a very simple setup that is
secure by default, easy to manage, and optionally immutable. Talos Linux
checked all of those boxes and includes tons of extra goodies for homelabbers.
> I also use the cloud for a few strategic workloads, for more information and a
> list of deployments on OCI, see the [Cloud](./cloud/README.md) documentation.
## Deployments
> All deployments are accessible by running `just k `, where
> `` is the name of the deployment directory (ie. `just k metallb`).
> I use dependency-based Justfiles (similar to Make) to manage the lifecycle of
> Helm installations, Kubernetes YAML, and SOPS secrets.
- General
- [**cert-manager**](./k8s/cert-manager/README.md): TLS certificate issuer
- [**Cilium**](./k8s/cilium/README.md): CNI plugin for the cluster
- [**Envoy Gateway**](./k8s/envoy/README.md): Gateway for the cluster
- [**MetalLB**](./k8s/metallb/README.md): Load balancer for the cluster
- [**OpenEBS**](./k8s/openebs/README.md): Storage for the cluster
- [**Observability Stack**](./k8s/observability/README.md): Monitoring
- Home
- [**Blocky**](./k8s/blocky/README.md): DNS server for ad-blocking
- [**Home Assistant**](./k8s/home-assistant/README.md): Home automation
- [**Forgejo**](./k8s/forgejo/README.md): Self-hosted Git server
### Deployment Tools
Because Talos is a Kubernetes distribution, all of the cluster deployments are
written in Kubernetes YAML. To make life easier, I use various different tools
to manage secrets and cluster configuration (installed using
[Mise](https://mise.jdx.dev/)). The tools I use are:
- [**talosctl**](https://www.talos.dev/v1.10/reference/cli/): Talos control
- [**sops**](https://github.com/getsops/sops): Secrets management
- [**age**](https://github.com/FiloSottile/age): File encryption
- [**just**](https://github.com/casey/just): Task runner
### Hardware
My goals for a homelab are to have a small, quiet, and power-efficient cluster
that is still capable of running a variety of workloads. I just created this
cluster, but eventually it'll be all rackmounted and fancy. The hardware I chose
is as follows:
- **3x Dell OptiPlex Micro 7050**
- Intel Core i7-7700T
- 32GB DDR4 RAM @ 2400MHz
- 240GB SATA SSD (for Talos)
- 2TB NVMe SSD (replicated storage)
- 1x 1GbE built-in NIC (LAN and WAN access)
- 1x 2.5GbE M.2 A-Key NIC (intra-cluster communication)
- **1x UGREEN 2.5GbE Switch**
- 5x 2.5GbE RJ45 ports
- 1x 10GbE SFP+ port
- **Planned but not yet purchased:**
- 1x Generic UPS with `usbhid-ups` support
- 1x Raspberry Pi 4B
- Runs a NUT server to monitor the UPS and signal the cluster
- Runs a tunnelable Tailscale node for LAN recovery access
- Possibly PiKVM for remote KVM access (if needed)