joakimia homelab
Hobby lab, built to learn, not production

joakimia homelab

A small Kubernetes cluster at home for learning Linux, cloud-init, Helm, and infrastructure automation. Everything here is rebuilt from code, and it breaks from time to time.

  • 1 Proxmox host
  • 2 Debian 13 VMs
  • RKE2 Kubernetes
  • Helm for everything

Services

What runs here

The web interfaces this cluster serves. Apart from this page, each one asks you to log in first.

Request path

How a request gets here

No ports are open at home. The cluster dials out to Cloudflare, and requests come back through that tunnel.

  1. Browser

    You, over HTTPS

  2. Cloudflare edge

    TLS, caching, and Access login for every app except this page

  3. Tunnel

    Outbound only, opened from home

  4. cloudflared

    Connector pod in the cluster

  5. Traefik

    Ingress, routes by host name

  6. Apps

    This page, Grafana, pgAdmin, and friends

Certificates: Cloudflare terminates TLS at the edge; inside the cluster, cert-manager gets certificates from Let's Encrypt.

Cluster

Two nodes on one box

One Proxmox host runs two Debian 13 virtual machines. cloud-init sets them up, and RKE2 joins them into one Kubernetes cluster.

Proxmox VE host

One physical machine, the hypervisor

cp0control plane

Debian 13 VM

  • RKE2 server
  • API server
  • etcd
  • Longhorn disk

wk0worker

Debian 13 VM

  • RKE2 agent
  • App workloads
  • Longhorn disk

Longhorn replicates volumes across both nodes, so data survives losing one disk.

Stack

The layers

Each layer is a Helm chart or a seed in the repository, deployed in order from the bottom up.

  • Observabilitymetrics, logs, traces

    • Alloy
    • Prometheus
    • Loki
    • Tempo
    • Grafana
  • Datadatabases

    • PostgreSQL
    • PgBouncer
    • pgAdmin
  • Identitysingle sign-on

    • Authentik
    • Cloudflare Access
  • Edge and TLSgetting in

    • cloudflared
    • Traefik
    • cert-manager
    • Let's Encrypt
  • PlatformKubernetes and storage

    • RKE2
    • Longhorn
    • Helm
  • Machineswhere it all runs

    • Proxmox VE
    • Debian 13
    • cloud-init