<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Homelab on khz</title><link>https://khzaw.dev/tags/homelab/</link><description>Recent content in Homelab on khz</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 30 May 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://khzaw.dev/tags/homelab/index.xml" rel="self" type="application/rss+xml"/><item><title>How I access the services I self-host in my cluster</title><link>https://khzaw.dev/posts/how-i-access-the-things-i-self-host/</link><pubDate>Sat, 30 May 2026 00:00:00 +0800</pubDate><guid>https://khzaw.dev/posts/how-i-access-the-things-i-self-host/</guid><description>&lt;p&gt;For the most part, all of the services that I self host in &lt;a href="https://khzaw.dev/posts/rangoonpulse-homelab-origin/"&gt;my homelab cluster&lt;/a&gt; are all deployed on their respective subdomains on my domain &lt;code&gt;khzaw.dev&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jellyfin.khzaw.dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grafana.khzaw.dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vaultwarden.khzaw.dev
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uptime.khzaw.dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Barring a few exceptions, all of these DNS would resolve to an internal private IP, &lt;code&gt;10.0.0.231&lt;/code&gt;. Naturally, they are not accessible outside of my home LAN.&lt;/p&gt;
&lt;h2 id="what-is-this-1000231-address"&gt;What is this &lt;code&gt;10.0.0.231&lt;/code&gt; address?&lt;/h2&gt;
&lt;p&gt;This &lt;code&gt;10.0.0.231&lt;/code&gt; address is the cluster&amp;rsquo;s main entry point. It belongs to the &lt;code&gt;ingress-nginx-controller&lt;/code&gt; service. The ingress controller is exposed as Kubernetes &lt;code&gt;Service&lt;/code&gt; of type &lt;code&gt;LoadBalancer&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>A self-tuning homelab</title><link>https://khzaw.dev/posts/self-tuning-kubernetes-homelab/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0800</pubDate><guid>https://khzaw.dev/posts/self-tuning-kubernetes-homelab/</guid><description>&lt;p&gt;Every so often, a pull request like this shows up.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://khzaw.dev/img/self-tuning-kubernetes-homelab/pr-list_hu_356f2541029f30cc.webp" alt="A list of resource tuning pull requests opened automatically" loading="lazy" decoding="async" width="1332" height="540"&gt;&lt;/p&gt;
&lt;p&gt;The PR changes a handful of Kubernetes resource requests and limits in the HelmRelease manifests. The description spells out why each change got picked. It shows which containers look underfed, which ones sit on capacity they never touch, and whether the new state still fits on the nodes I actually have. None of that is me. I review it, merge it, and &lt;a href="https://fluxcd.io/"&gt;Flux&lt;/a&gt; rolls it out.&lt;/p&gt;</description></item><item><title>Building a homelab Kubernetes cluster</title><link>https://khzaw.dev/posts/rangoonpulse-homelab-origin/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0800</pubDate><guid>https://khzaw.dev/posts/rangoonpulse-homelab-origin/</guid><description>&lt;p&gt;I have self-hosted things before, but none of it really stuck. A &lt;a href="https://www.raspberrypi.com/products/raspberry-pi-4-model-b/"&gt;Raspberry Pi 4&lt;/a&gt; ran &lt;a href="https://pi-hole.net/"&gt;Pi-hole&lt;/a&gt; for a while. Then an old laptop ran &lt;a href="https://www.plex.tv/"&gt;Plex&lt;/a&gt; for a while after that. Both were useful in the loose way side projects are useful. Something would break, I&amp;rsquo;d shrug, it would fizzle out, and I&amp;rsquo;d move on.&lt;/p&gt;
&lt;p&gt;This time I wanted something more serious. Small, but with room to grow in whatever direction I felt like, a testing ground for whatever I wanted to learn. I&amp;rsquo;d GitOps it too. If I added a service, changed storage, or touched DNS, that change should live somewhere more durable than a vague memory of what I typed into a terminal. Nothing fancy. No rack, no enterprise gear. Just a small cluster for the services I actually use, with enough &lt;a href="https://kubernetes.io/"&gt;Kubernetes&lt;/a&gt; underneath to learn something while running it.&lt;/p&gt;</description></item></channel></rss>