<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">
 <channel>
  <title>Will Lachance&#39;s Log: Posts tagged &#39;recurse&#39;</title>
  <description></description>
  <link>https://wrla.ch/tags/recurse.html</link>
  <lastBuildDate>Wed, 23 Sep 2026 13:44:30 GMT</lastBuildDate>
  <pubDate>Wed, 23 Sep 2026 13:44:30 GMT</pubDate>
  <ttl>1800</ttl>

  <item>
   <title>Building a homelab</title>
   <link>https://wrla.ch/log/2026/09/building-a-homelab/?utm_source=recurse&amp;utm_medium=RSS</link>
   <guid isPermaLink="false">urn:https-wrla-ch:-log-2026-09-building-a-homelab</guid>
   <pubDate>Wed, 23 Sep 2026 13:44:30 GMT</pubDate>
   <author>Will Lachance</author>
   <description>
&lt;p&gt;Over the past half a year (starting around this post:
&lt;a href=&#34;/log/2026/03/music-updates/&#34;&gt;Music updates&lt;/a&gt;) I&#39;ve been slowly building out
a homelab.&lt;/p&gt;
&lt;p&gt;Despite being adjacent to communities where this is common (&lt;a href=&#34;https://www.recurse.com/&#34;&gt;Recurse&lt;/a&gt;, etc.),
this wasn&#39;t something I thought I would do a few years ago: too much effort
for the expected return.  A couple of things changed since then:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;My &lt;a href=&#34;https://marimo.io/blog/case-study-voltus&#34;&gt;present work at Voltus&lt;/a&gt; requires me to at least think of infrastructure
issues a fair bit more: the engineering team is still small enough that
I need to get into the weeds of how things are configured, deployed and
monitored-- not just how they work at the data and application layer.&lt;/li&gt;
&lt;li&gt;The software stack around it has gotten better: we&#39;re long past the days where
this meant dangerously exposing a raw Linux system on a router. Also there
are many more actually useful things you can &lt;em&gt;run&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;LLMs make this type of thing vastly easier to build independently with only
generalist-level knowledge.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The exact architecture is still a work in progress, but the basic components
are in place:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using &lt;a href=&#34;https://tailscale.com/&#34;&gt;Tailscale&lt;/a&gt; for the network boundary. This lets me run a
bunch of network services using my local machines without
exposing them directly to the internet. I can run services with minimal (or even no)
built-in authentication since access is controlled by the tailnet.&lt;/li&gt;
&lt;li&gt;Using an old w520 for the main &amp;quot;persistent&amp;quot; system server running the network services.
8 GB, Intel Sandy Bridge. It&#39;s underpowered by today&#39;s standards but more than enough to run the
types of things I might want to do (music servers, read-it-later, lightweight
notebooks, ai agent harnesses).&lt;/li&gt;
&lt;li&gt;Storing persistent configuration as a git repository. Mostly a bunch of
docker service definitions and systemd units, along with README.md files describing
how to set it up and run it when I inevitably forget. I&#39;m thinking about moving some
of this to &lt;a href=&#34;https://nixos.org/&#34;&gt;nix&lt;/a&gt; someday, but haven&#39;t found a compelling reason to do so other than
&amp;quot;nix is cool, I want to learn more about it&amp;quot; (maybe that&#39;s enough).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is the server in all its glory:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://wrla.ch/log/2026/03/music-updates/w520.jpg&#34; alt=&#34;ThinkPad w520 running homelab&#34; /&gt;&lt;/p&gt;
&lt;p&gt;The setup so far is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://jellyfin.org/&#34;&gt;jellyfin&lt;/a&gt; for music listening&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://readeck.org/en/&#34;&gt;readeck&lt;/a&gt; for saving useful posts to disk (after Mozilla discontinued Pocket, I determined
that I should never trust a third party service to do this again)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/marimo-team/marimohub&#34;&gt;marimohub&lt;/a&gt; for exploring analytical ideas / questions in notebook form (it&#39;s
a little under-documented right now, but it supports tailscale authentication
headers out of the box, I might write more about this later)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://pi-web.dev/&#34;&gt;pi-web&lt;/a&gt; for interactive coding (honestly mostly used for working on this system recursively, but maybe more one day)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#39;m pretty happy with the setup as a learning experience. I&#39;ve been using
various LLMs to build it, but try to understand their end products. Feels like
the appropriate use of technology: the configuration is mostly boilerplate,
the interesting questions for me are higher level: what does each additional piece of functionality allow me to do, what are the
risks, etc. I could of course &amp;quot;do things the hard way&amp;quot; and reproduce tailscale
configuration and systemd files from scratch but it just doesn&#39;t seem quite
worth it. At present, I don&#39;t have the ambition of becoming an infrastructure engineer.&lt;/p&gt;
&lt;p&gt;I don&#39;t really have illusions that this system is incredibly useful or life
changing in itself-- it just replaces a few cloud services I would
otherwise pay for (or be sad when they go away, as happened with Pocket). Most
of the value is in the experience of building it.&lt;/p&gt;
</description></item>
</channel></rss>