<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>TrueNAS on Maxime Moreillon</title>
    <link>https://articles.maximemoreillon.com/tags/truenas/</link>
    <description>Recent content in TrueNAS on Maxime Moreillon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 15 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://articles.maximemoreillon.com/tags/truenas/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Secondary server in Switzerland</title>
      <link>https://articles.maximemoreillon.com/articles/secondary-server-switzerland/</link>
      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>https://articles.maximemoreillon.com/articles/secondary-server-switzerland/</guid>
      
      <description>&lt;p&gt;I built a secondary server at my parents&amp;rsquo; house in Switzerland. It acts as an offsite target for TrueNAS replication and runs its own small Kubernetes cluster for workloads I want to keep running independently of the main homelab.&lt;/p&gt;
&lt;h2 id=&#34;hardware&#34;&gt;Hardware&lt;/h2&gt;
&lt;p&gt;The setup mirrors my main homelab — &lt;a href=&#34;https://www.proxmox.com/&#34;&gt;Proxmox&lt;/a&gt; as the hypervisor, &lt;a href=&#34;https://www.talos.dev/&#34;&gt;Talos Linux&lt;/a&gt; for Kubernetes — but scaled down and built for a spare room rather than a rack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No rack-mount chassis, just a small tower case.&lt;/li&gt;
&lt;li&gt;A single pair of NVMe SSDs, mirrored, holding both the Proxmox boot install and the VM storage — unlike the main homelab, there&amp;rsquo;s no separate SSD pool on the TrueNAS VM, only HDDs.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;networking&#34;&gt;Networking&lt;/h2&gt;
&lt;p&gt;Sensitive services such as the Proxmox UI and the Talos API are not exposed directly — they&amp;rsquo;re only reachable over &lt;a href=&#34;https://tailscale.com/&#34;&gt;Tailscale&lt;/a&gt;, which also links the server back to my main network so it can talk to the primary site.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Dynamic storage provisioning with democratic-csi</title>
      <link>https://articles.maximemoreillon.com/articles/democratic-csi/</link>
      <pubDate>Mon, 10 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://articles.maximemoreillon.com/articles/democratic-csi/</guid>
      
      <description>&lt;p&gt;My Talos cluster needed persistent storage backed by the TrueNAS VM that already manages my disks with ZFS. Rather than provisioning volumes on TrueNAS by hand for every workload, I installed &lt;a href=&#34;https://github.com/democratic-csi/democratic-csi&#34;&gt;democratic-csi&lt;/a&gt;, a CSI driver that lets Kubernetes provision storage on TrueNAS directly.&lt;/p&gt;
&lt;h2 id=&#34;how-it-works&#34;&gt;How it works&lt;/h2&gt;
&lt;p&gt;democratic-csi talks to the TrueNAS API. When a &lt;code&gt;PersistentVolumeClaim&lt;/code&gt; is created in the cluster, it creates a matching resource on TrueNAS and hands it back to Kubernetes as a &lt;code&gt;PersistentVolume&lt;/code&gt;, so provisioning stays entirely declarative — no manual dataset or zvol creation.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
