Skip to content

radoslavirha/home-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

167 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Home Server

Kubernetes-based home server infrastructure with GitOps deployment management.

Technology Stack

Core Infrastructure

Component Purpose Docs Status
Helm Package management v3 Manual
Cilium Container networking (eBPF, kube-proxy replacement, Hubble observability) Bootstrap Manual (Helm) — HTTPRoute via ArgoCD
Longhorn Storage provisioning Setup Manual

GitOps & Deployment

Component Purpose Docs Status
Argo CD GitOps deployment Setup Manual
Argo Rollouts Advanced deployment strategies Install Auto (ArgoCD)
Sealed Secrets Secret encryption - Auto (ArgoCD)
Headlamp Kubernetes web UI - Auto (ArgoCD)

Ingress & Networking

Component Purpose Docs Status
Traefik Ingress controller & reverse proxy Install Auto (ArgoCD)
external-dns Automatic DNS provisioning in UniFi via HTTPRoute discovery - Auto (ArgoCD)

Databases

Component Purpose Status
MongoDB Document database Auto (ArgoCD)
InfluxDB 2 Time series database Auto (ArgoCD)

Monitoring & Observability

Component Purpose Status
Hubble UI Cilium network observability — L7 traffic visibility and flow monitoring Auto (ArgoCD)
Longhorn UI Longhorn UI Auto (ArgoCD)
kube-prometheus-stack Prometheus + Grafana + AlertManager Auto (ArgoCD)
Loki Log aggregation Auto (ArgoCD)
Tempo Distributed tracing Auto (ArgoCD)
OpenTelemetry Collector Telemetry collection & export Auto (ArgoCD)

Message Queue & IoT

Component Purpose Status
EMQX MQTT broker Auto (ArgoCD)
Telegraf MQTT ingestion — accepts IoT data over MQTT and writes to InfluxDB Auto (ArgoCD)

Applications

IoT Miniservers

Custom IoT and integration services deployed on the cluster.

Service Purpose Status
Interactive Map Feeder Data Feeder for LaskaKit interactive map of Czech republic Auto (ArgoCD)
MIoT Bridge Loxone <-> MIoT (Xiaomi) devices bridge on local network Auto (ArgoCD)

Installation & Setup

Cilium

# Add repo if not already done
helm repo add cilium https://helm.cilium.io
helm repo update

# Install Cilium into kube-system with values from this repo
helm install cilium cilium/cilium \
  --version 1.19.2 \
  --namespace kube-system \
  --values helm-values/cilium.yaml

Local Path Provisioner

# Clone into local-path-provisioner directory
git clone https://github.com/rancher/local-path-provisioner.git local-path-provisioner

# Install
helm upgrade --install local-path-storage local-path-provisioner/deploy/chart/local-path-provisioner \
  --create-namespace --namespace local-path-storage \
  --values local-path-provisioner/values.yaml

# Uninstall
helm uninstall local-path-storage --namespace local-path-storage

Longhorn

# Add repo if not already done
helm repo add longhorn https://charts.longhorn.io
helm repo update

# Install Cilium into kube-system with values from this repo
helm install longhorn longhorn/longhorn \
  --version 1.11.1 \
  --namespace longhorn-system \
  --create-namespace \
  --values helm-values/longhorn.yaml

Argo CD

# Install
helm upgrade --install argocd argo/argo-cd --namespace argocd \
  --values helm-values/argocd.yaml

# Uninstall
helm uninstall argocd -n argocd

Argo Rollouts

Releases

No releases published

Packages

 
 
 

Contributors