Homelab Enthusiast

My Homelab

I run a production-grade Kubernetes cluster in my home — not because I have to, but because I believe the best way to understand infrastructure is to build and operate it yourself. Every tool on this page is something I manage daily.

This homelab is my playground for learning, breaking things, and rebuilding them better. From Cilium eBPF networking to Vault HA secrets management, from ArgoCD GitOps to Prometheus observability — it's all running on bare metal, 24/7.

0
K8s Nodes
0+
Apps Running
0%
Uptime
0
Years Running
Infrastructure

Homelab Architecture

A production-grade 6-node Kubernetes cluster running 22+ applications with full GitOps, observability, and security.

Virtualization
VMware ESXi
6 VMs — 3 CP + 3 Workers
Platform
Kubernetes v1.31
6-Node HA Cluster
Networking
kube-vip
HA VIP 10.0.1.20
Cilium CNI
eBPF Networking
MetalLB
LoadBalancer Services
Nginx Proxy Manager
SSL / Reverse Proxy
CI/CD
ArgoCD
GitOps — 22 Apps Synced
Harbor Registry
Trivy Image Scanning
GitHub
Source Control
GitHub Actions
CI — Self-hosted Runner
Security
HashiCorp Vault
HA — 3-Replica Raft
External Secrets
Vault → K8s Secrets
Kyverno
Policy Engine
Authentik
Identity Provider
Observability
Prometheus
Metrics Collection
Grafana
Dashboards & Alerts
Loki
Log Aggregation
Grafana Tempo
Distributed Tracing
Storage & Backup
Longhorn
Distributed Block Storage
TrueNAS + MinIO
Backup S3 Storage
Velero
Daily Backup — 30d Retention
pgBackRest
PITR — <5 min RPO
Applications
Linkvolt
7 Go Microservices
Weather App
Go + GitOps Deploy
Portfolio
This Site — Next.js
Workflow

How I Deploy

End-to-end GitOps pipeline — from code push to production with security scanning and zero-downtime rollouts.

Push Code
Developer pushes to main
GitHub Actions
CI pipeline triggers
Docker Build
Multi-stage, non-root
Trivy Scan
CVE & compliance check
Push to Registry
Harbor / ECR / ACR
ArgoCD Sync
GitOps detects change
K8s Rollout
Zero-downtime deploy
Health Check
Prometheus confirms
Observability

Live Monitoring

Real-time cluster metrics powered by Prometheus and Grafana — straight from the homelab.

Cluster CPU Usage

Aggregate CPU utilisation across all 6 K8s nodes

Cluster Memory Usage

Total memory consumption across the cluster

Network Traffic

Inbound and outbound traffic across all nodes

Live data · refreshing every 30s · Prometheus → Grafana
Live

Infrastructure Status

Real-time health of the homelab services powering this site and my projects.

Checking services...
Decisions

Architecture Decision Records

Why I chose specific tools — the reasoning behind my infrastructure stack.

Cilium over Calico

Networking
Accepted·2024-11

Vault HA over Sealed Secrets

Security
Accepted·2024-12

ArgoCD over Flux

GitOps
Accepted·2024-10

Longhorn over OpenEBS

Storage
Accepted·2024-11

Go for Linkvolt Microservices

Development
Accepted·2025-01
Meta

How This Site Is Deployed

The page you're reading right now goes through this exact pipeline.

Source
github.com/joyson-fernandes/portfolio-website-v2
Next.js + TypeScript + Tailwind
CI/CD
GitHub Actions → Self-hosted Runner
Docker build, Trivy scan, Harbor push
Security
Trivy CVE scan + Harbor registry
0 critical/high vulnerabilities
GitOps
ArgoCD auto-sync from k8s/ directory
Webhook-triggered, instant deploy
Runtime
Kubernetes v1.31 — 6-node HA cluster
Cilium CNI, MetalLB LoadBalancer
Delivery
Nginx Proxy Manager → joysonfernandes.com
SSL termination, reverse proxy