<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Rudy's Lab</title><link>https://blog.rudysam.com/</link><description>Recent content on Rudy's Lab</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>© 2026 Rudy</copyright><lastBuildDate>Sat, 28 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.rudysam.com/index.xml" rel="self" type="application/rss+xml"/><item><title>I Moved My Blog Off My Home Server and It's Better for It</title><link>https://blog.rudysam.com/posts/moving-to-cloudflare-pages/</link><pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/moving-to-cloudflare-pages/</guid><description>&lt;hr&gt;
&lt;p&gt;The blog started as a Hugo site running on my home server. Markdown files in, static HTML out, served by Caddy through a Cloudflare Tunnel. It worked well. But the more I thought about it, the less sense it made to keep it there.&lt;/p&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;Why move at all
 &lt;div id="why-move-at-all" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-move-at-all" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The blog was the only thing on my server that needed to be publicly accessible. Everything else, Immich, Kopia, AdGuard, WireGuard, is internal. Private services behind a VPN, the way I want them.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/moving-to-cloudflare-pages/feature.jpg"/></item><item><title>Setting Up the Blog You're Reading Right Now, Using an AI in My Terminal</title><link>https://blog.rudysam.com/posts/setting-up-this-blog/</link><pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/setting-up-this-blog/</guid><description>&lt;hr&gt;
&lt;p&gt;This one&amp;rsquo;s a bit meta. The blog you&amp;rsquo;re reading was set up entirely by an AI tool running in my terminal. I didn&amp;rsquo;t write a single config file. I described what I wanted, and it happened. Twice, actually, because the first attempt was overkill and I scrapped it.&lt;/p&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;Why a blog at all
 &lt;div id="why-a-blog-at-all" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-a-blog-at-all" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d been documenting the home server build in markdown files on my laptop. Notes for myself, mostly. But the more I wrote, the more it started reading like something other people might find useful. The information I wished I&amp;rsquo;d had when I started.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/setting-up-this-blog/feature.jpg"/></item><item><title>What Hardware Do You Actually Need for a Home Server?</title><link>https://blog.rudysam.com/posts/hardware/</link><pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/hardware/</guid><description>&lt;hr&gt;
&lt;p&gt;I keep seeing this question come up when people are thinking about starting a home server: what should I buy?&lt;/p&gt;
&lt;p&gt;My honest answer is: probably nothing, at least not yet. Start with whatever you have.&lt;/p&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;The machine I&amp;rsquo;m running
 &lt;div id="the-machine-im-running" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-machine-im-running" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s a Dell Latitude E6430, a 2013 business laptop I picked up cheap when my previous company was clearing out old hardware. It had already been upgraded over the years: 8GB of dual channel RAM, a 240GB SSD for the OS, and the CD drive swapped out for a caddy mounting the original 320GB HDD as a data drive. So by the time I repurposed it as a server, the hardware was already in decent shape.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/hardware/feature.jpg"/></item><item><title>Remote Access That Actually Works: Running Your Own VPN with WireGuard</title><link>https://blog.rudysam.com/posts/wireguard/</link><pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/wireguard/</guid><description>&lt;hr&gt;
&lt;p&gt;Having a home server that works at home is one thing. Having it work exactly the same when you&amp;rsquo;re out, on mobile data, at a café, anywhere, is what makes it actually useful day to day.&lt;/p&gt;
&lt;p&gt;Getting this right was worth the effort.&lt;/p&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;Keeping exposure minimal
 &lt;div id="keeping-exposure-minimal" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#keeping-exposure-minimal" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The obvious shortcut for remote access is port forwarding: expose your services on port 443, put a login screen in front of them, done. The problem is that everything becomes internet-facing. Every service needs to be hardened. Every misconfiguration is a risk. And some things, like local DNS filtering, don&amp;rsquo;t make sense to expose publicly at all.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/wireguard/feature.jpg"/></item><item><title>Clean URLs and HTTPS for Your Home Server (Without Touching a Port Number Again)</title><link>https://blog.rudysam.com/posts/networking/</link><pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/networking/</guid><description>&lt;hr&gt;
&lt;p&gt;Once Immich was running, I had a working photo server. But accessing it meant typing an IP address and a port number into my browser every time. Not the end of the world, but not great either, especially when you start adding more services.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a better way, and setting it up opened a door I hadn&amp;rsquo;t expected.&lt;/p&gt;
&lt;hr&gt;

&lt;h2 class="relative group"&gt;The problem with IP addresses and ports
 &lt;div id="the-problem-with-ip-addresses-and-ports" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-problem-with-ip-addresses-and-ports" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;When a service runs on your home server, it listens on a port. Your photo app might be on port 2283, your backup tool on 51515, your DNS dashboard on 3000. To access them you type something like:&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/networking/feature.jpg"/></item><item><title>Getting My Photos Off Google: The Immich Setup and the Painful Takeout Process</title><link>https://blog.rudysam.com/posts/immich-photos/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/immich-photos/</guid><description>&lt;hr&gt;
&lt;p&gt;The first thing I installed on my new home server was a photo management app. Not because I had a perfectly thought-out plan. I just wanted to see if this was even possible, and photos were the whole point of starting.&lt;/p&gt;
&lt;p&gt;I ended up testing two: &lt;strong&gt;Immich&lt;/strong&gt; and &lt;strong&gt;PhotoPrism&lt;/strong&gt;. Both are open source Google Photos alternatives. Both run in Docker. I figured I&amp;rsquo;d try them side by side and see which one I preferred.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/immich-photos/feature.jpg"/></item><item><title>I Repurposed an Old Unused Laptop as a Home Server. Here's Why.</title><link>https://blog.rudysam.com/posts/why-i-started/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.rudysam.com/posts/why-i-started/</guid><description>&lt;p&gt;This started the way most tinkering projects do: a spare laptop, a vague idea, and stakes low enough that trying seemed worth it.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d had the laptop for over five years. A 2013 Dell business laptop I picked up cheap when my previous company was clearing out old hardware. I&amp;rsquo;d upgraded it over the years, used it here and there for small projects, kept it around as a backup laptop, but it never really found a permanent use. Mostly it just sat in various sort of drawer.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://blog.rudysam.com/posts/why-i-started/feature.jpg"/></item></channel></rss>