Jan ’24 Homelab Status

Whatsit run?

  • ArgoCD as a Git-Ops mechanism
  • Databases (Postgres, Maria DB, Redis, Elasticsearch)
  • This WordPress
  • Mastodon
  • Synapse
  • The Lounge IRC client
  • FreshRSS feed aggregator
  • Audio Bookshelf audiobook and podcast manager
  • kube-prometheus-stack to monitor performance

Howzit run?

  • ASRock X300 Ryzen 5700G, 64G DDR4
  • Ubuntu Jammy 22.04.3 LTS on metal, no hypervisor
  • k3s
  • Everything managed by ArgoCD watching a GitHub repo
  • Persistent storage for pods provided by zfs-localpv. Ubuntu lives on a single SATA SSD, and two NVMe SSDs are participating in a ZFS RAID1 mirror which zfs-localpv manipulates.
  • WordPress files are backed up to Backblaze B2 daily by Velero (Restic)
  • PostgreSQL and MariaDB databases are dumped, compressed, and pushed to Backblaze B2 using this thing.
  • Media for Mastodon and Synapse live in Backblaze B2.
  • Due to limited capacity in this chassis, I haven’t been running Jellyfin
  • Public traffic comes in through Cloudflare Tunnels (cloudflared). I set this up several months ago and haven’t looked back. Assuming my cloudflared client can authenticate properly with Clouflare, remote hosts can hit my services (like this website) without my needing to configure port forwarding. Cloudflare also takes care of TLS certificates. This has eliminated my need for cert-manager and ingress-nginx. cloudflared isn’t as sophisticated as ingress-nginx (or Istio or Linkerd), but it satisfies my need for TLS-enabled ingress.

Whyy?

  • Does not need to be scalable – my workloads absolutely do not justify compute beyond the CPU and RAM of either the Ryzen 4750G X300 or the Ryzen 5700G X300, much less both of them combined.
  • Dedicated host – I have another X300 I can play around with, so for the sake of simplicity, I chose to omit a hypervisor and dedicate the R5700G X300 entirely to my ‘production’ k3s duties. Fewer moving parts for me to worry about, and no hypervisor/virtualization performance penalty (I know proxmox is pretty light, but still).
  • In-cluster storage – Since I knew my pods and my storage were always going to live on the same machine, I chose to run a local-pv style storage provider. I probably could have used democratic-csi but this was even simpler.

So far, I’ve been very happy with it. I don’t have the flexibility provided by a hypervisor, but I have another machine for sandbox activities. I’d had intermittent issues with previous architectures (Proxmox/k3s/TrueNAS), but this setup has been very reliable. Very few mornings discovering that databases are down because storage decided to break. Actually, I’ve noticed that I’ve spent very little time the doing homelab things.. but when I do go to check, Mastodon is still up, WordPress loads, and Element connects to my Synapse server. I don’t believe my previous architecture can’t be just as reliable, but more time troubleshooting is required.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *