Skip to content
This repository was archived by the owner on Nov 7, 2025. It is now read-only.

nrdufour/home-ops

Repository files navigation

home-ops

⚠️ ARCHIVED REPOSITORY

This repository is now archived. All active development has moved to avalanche:

Because paying for cloud services is for people who hate tinkering at 2 AM

This is my homelab Kubernetes cluster, where I host everything I probably shouldn't be self-hosting but absolutely will anyway. Because why trust a reliable cloud provider when you can trust your own questionable infrastructure decisions?

What's Running Here?

Self-Hosted Services (aka "Things I Stubbornly Refuse to Pay For")

  • Miniflux - RSS reader (yes, RSS still exists)
  • SearXNG - Private search engine (paranoia level: moderate)
  • Wallabag - Read-it-later service
  • Mealie - Recipe manager (for organizing recipes I'll never cook)
  • Wiki.js - Documentation nobody will read
  • Homepage - Dashboard to admire all my services

Home Automation (aka "Over-Engineering Light Switches")

  • Grafana - Making pretty graphs of meaningless metrics
  • InfluxDB2 - Time-series database for data hoarding
  • RTL433 - Decoding wireless sensor data
  • RTLAMR2MQTT - Reading utility meters like a creep
  • NUT (UPS Daemon) - Because power outages are the enemy

IRC (Yes, Really)

  • Marmithon - IRC bot (it's 2025 and I'm still on IRC, don't judge)

Infrastructure (The Boring But Necessary Bits)

  • CloudNative-PG - PostgreSQL operator
  • Cert-Manager - TLS certificates
  • External DNS - DNS automation
  • Nginx Ingress - Traffic routing
  • Longhorn - Distributed storage
  • Prometheus Stack - Observability (so I know what broke)
  • External Secrets - Bitwarden integration
  • Kyverno - Policy enforcement

GitOps Journey

Status: Currently migrating from FluxCD to ArgoCD (almost done! 🎉)

This repo uses GitOps because manually applying YAMLs like a caveman is beneath us. We're sophisticated YAML engineers here.

Standing on the Shoulders of Giants

Massive thanks to the incredible k8s@home community! Special shoutouts to:

  • onedr0p - For showing us how it's done
  • bjw-s - For the amazing Helm charts

Without their repos to shamelessly copy from, this would have taken way longer.

Quick Start

# List all available commands
just

# Bootstrap the cluster (if you're brave)
just k8s-bootstrap cluster="main"

# Update SOPS secrets
just sops-update

# Get kubeconfig
just k8s-get-kubeconfig

Tech Stack

  • Kubernetes - Because Docker Compose was too easy
  • ArgoCD - GitOps the right way (eventually)
  • SOPS + Age - Secrets management
  • External Secrets - Bitwarden integration
  • Renovate - Automated dependency updates
  • NixOS - Via snowpea for declarative machine management

The Missing Piece

This repository handles the Kubernetes workloads, but the actual machines running all this chaos are managed by snowpea - a companion NixOS configuration repo. Because why stop at declarative Kubernetes when you can have declarative everything?

Think of it this way:

  • snowpea = The OS layer (NixOS configurations for all the machines)
  • home-ops = The workload layer (Kubernetes apps and infrastructure)

Together they form a complete infrastructure-as-code setup. Or as I like to call it: "Two repos to break instead of one."

Philosophy

If it's not in Git, it doesn't exist. If it's not automated, it's not production-ready. If it's not over-engineered, is it really a homelab?


"It works on my cluster" - Famous last words

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •