Home Lab Welcome to the documentation for the cluster, a Kubernetes home lab built on Talos Linux and managed entirely through GitOps with ArgoCD . This repository defines the complete infrastructure-as-code for a mixed-architecture cluster running on Raspberry Pi, Lenovo ThinkPad, and Acemagician mini-PC hardware.
Quick Start
New here? Head to the Getting Started guide to understand the repository layout and dive into the architecture.
Architecture Overview flowchart LR
Internet((Internet))
CF[Cloudflare]
Tunnel[cloudflared\nTunnel]
Nginx[nginx\nReverse Proxy]
EE[Envoy External\n192.168.0.239]
EI[Envoy Internal\n192.168.0.238]
Apps[Applications]
TS[Tailscale\nVPN]
User((User))
Internet -->|"*.example.com"| CF
CF -->|Proxied traffic| Tunnel
Tunnel --> Nginx
Nginx --> EE
EE --> Apps
User -->|VPN| TS
TS --> EI
EI --> Apps Documentation Sections Section Description Getting Started Repository overview, prerequisites, and architecture Infrastructure Hardware, Talos Linux, cluster bootstrap, node management Networking Cilium CNI , Envoy Gateway, DNS , Cloudflare Tunnel, Tailscale GitOps ArgoCD setup, ApplicationSets, sync policies Storage Rook Ceph, OpenEBS, backup and restore Security Authelia, LLDAP, External Secrets, SOPS , cert-manager Monitoring Prometheus, Grafana, Loki, Fluent Bit Applications Media stack, home automation, self-hosted apps, databases Operations Justfile recipes, Talos commands, troubleshooting, upgrades CI/CD GitHub Actions, Docker builds, Renovate Development App template patterns, adding new apps Reference IP allocation table, full app catalog
Hardware Summary Compute Device Quantity Role Architecture Raspberry Pi 4 4 Control plane / workers ARM64 Lenovo ThinkPad T440p 2 Workers AMD64 Acemagician AM06 3 Workers (NVMe / Ceph) AMD64 Raspberry Pi 3B+ 1 Worker ARM64 Raspberry Pi 2B+ 4 Auxiliary / monitoring ARMv7
Storage Device Details Synology NAS 4-bay, 8 TB total Boot drives 128 GB SSD per node Ceph OSD drives 512 GB NVMe x3 (Acemagician nodes)
Network & Power Device Details TP-Link 24-port PoE switch Core switch, powers Pi nodes via PoE NanoPi R5C Network appliance / router helper Ubiquiti U7-Pro Primary Wi-Fi access point Ubiquiti U6-Lite Secondary Wi-Fi access point Eaton 500VA UPS Battery backup for core infrastructure
Other Device Details BambuLab A1 Combo 3D printer for cases, mounts, and brackets
Key Technologies Layer Technology Purpose Operating System Talos Linux v1.12.4 Immutable, API-driven Kubernetes OS GitOps ArgoCD Declarative continuous delivery CNI Cilium eBPF networking with L2 announcements, DSR , Maglev Ingress Envoy Gateway Two-gateway architecture (external, internal) DNS Cloudflare + external-dns Automated DNS record management Tunnel cloudflared Secure external access without port forwarding VPN Tailscale Remote access to internal services Storage Rook Ceph + OpenEBS Distributed and local persistent storage Secrets SOPS + age + 1Password Connect Encrypted secrets in Git, synced via External Secrets Auth Authelia + LLDAP SSO and lightweight LDAP directory Monitoring Prometheus + Grafana + Loki Metrics, dashboards, and log aggregation Domain example.com Managed via Cloudflare
Repository Structure home-ops/
├── pitower/
│ ├── kubernetes/
│ │ ├── apps/ # Application manifests by category
│ │ │ ├── ai/
│ │ │ ├── banking/
│ │ │ ├── cert-manager/
│ │ │ ├── cloudnative-pg/
│ │ │ ├── home-automation/
│ │ │ ├── kube-system/
│ │ │ ├── media/
│ │ │ ├── monitoring/
│ │ │ ├── networking/
│ │ │ ├── openebs/
│ │ │ ├── rook-ceph/
│ │ │ ├── security/
│ │ │ ├── selfhosted/
│ │ │ └── system/
│ │ ├── argocd/ # ArgoCD app and ApplicationSet definitions
│ │ └── bootstrap/ # Cluster bootstrap resources
│ └── talos/
│ ├── clusterconfig/ # Generated Talos machine configs
│ ├── extensions/ # Talos system extension definitions
│ ├── patches/ # Machine config patches (general + per-node)
│ └── justfile # Task runner recipes for cluster operations
└── docs/ # This documentation site
February 15, 2026 February 15, 2026