<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Open Source | Antoine Weill--Duflos</title>
    <link>https://antoine.weill-duflos.fr/en/tag/open-source/</link>
      <atom:link href="https://antoine.weill-duflos.fr/en/tag/open-source/index.xml" rel="self" type="application/rss+xml" />
    <description>Open Source</description>
    <generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 13 Apr 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://antoine.weill-duflos.fr/media/icon_hu_d686267daab28486.png</url>
      <title>Open Source</title>
      <link>https://antoine.weill-duflos.fr/en/tag/open-source/</link>
    </image>
    
    <item>
      <title>Everything I Self-Host: The Full Service Catalog</title>
      <link>https://antoine.weill-duflos.fr/en/post/service-catalog/</link>
      <pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://antoine.weill-duflos.fr/en/post/service-catalog/</guid>
      <description>&lt;h1&gt;&lt;/h1&gt;
&lt;p&gt;In a &lt;a href=&#34;https://antoine.weill-duflos.fr/en/post/komodo/&#34;&gt;companion post&lt;/a&gt; I covered the infrastructure and orchestration layer of my homelab. This post is the full service catalog: everything that actually runs on top of that infrastructure.&lt;/p&gt;
&lt;h2 id=&#34;productivity--data&#34;&gt;Productivity &amp;amp; Data&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Nextcloud&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;File sync and collaboration&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Paperless&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Document management with OCR&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Grocy&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Grocery and household tracking&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Actual&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Budget tracking&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Monica&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Personal CRM&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;NocoDB&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Database web UI (Airtable alternative)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;n8n&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Workflow automation&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;media--photos&#34;&gt;Media &amp;amp; Photos&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Immich&lt;/strong&gt; (2 instances)&lt;/td&gt;
          &lt;td&gt;Photo management (Google Photos alternative)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Jellyfin&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Media streaming server&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Kavita&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Ebook and manga reader&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Prowlarr&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Indexer management&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Strava Stats&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Fitness statistics dashboard&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;home-automation--security&#34;&gt;Home Automation &amp;amp; Security&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Home Assistant&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Home automation hub&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Frigate&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;NVR with AI object detection (&lt;a href=&#34;https://antoine.weill-duflos.fr/en/post/frigate/&#34;&gt;details&lt;/a&gt;)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;ESPHome&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;IoT firmware compiler for custom sensors&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;communication&#34;&gt;Communication&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Matrix&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Self-hosted messaging (Synapse)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;TT-RSS&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;RSS reader&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;ai--compute&#34;&gt;AI &amp;amp; Compute&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Ollama&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;LLM inference on Intel Arc B580&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;llama.cpp&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Vision model for Frigate scene descriptions&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;MCP Server&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Obsidian vault API for AI assistants&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;infrastructure&#34;&gt;Infrastructure&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Komodo&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Deployment orchestration (&lt;a href=&#34;https://antoine.weill-duflos.fr/en/post/komodo/&#34;&gt;details&lt;/a&gt;)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Gitea&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Self-hosted Git&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Traefik&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Reverse proxy with auto TLS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Authelia&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Single sign-on + two-factor authentication&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Technitium DNS&lt;/strong&gt; (x2)&lt;/td&gt;
          &lt;td&gt;Internal DNS zones (redundant)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Unbound&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Recursive DNS resolver (on OPNsense)&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;OPNsense&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Firewall, router, VPN&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Omada Controller&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;WiFi access point management&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Dockge&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Docker Compose UI&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;monitoring--observability&#34;&gt;Monitoring &amp;amp; Observability&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Metrics collection&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Dashboards and visualization&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Uptime Kuma&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Service uptime monitoring&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;cAdvisor&lt;/strong&gt; (x2)&lt;/td&gt;
          &lt;td&gt;Container resource metrics&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;NetAlertX&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Network device monitoring&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;LibreSpeed&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;LAN speed testing&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;MySpeed&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Internet speed tracking over time&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;ntfy&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Push notifications&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Chrony + GPS&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Stratum 1 NTP time source&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;backup--sync&#34;&gt;Backup &amp;amp; Sync&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Proxmox Backup Server&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;VM and container backups&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Resilio Sync&lt;/strong&gt; (x2)&lt;/td&gt;
          &lt;td&gt;Cross-site file synchronization&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Storj&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Decentralized storage node&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;security--access&#34;&gt;Security &amp;amp; Access&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Vaultwarden&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Bitwarden-compatible password manager&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Guacamole&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Browser-based remote desktop&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;WireGuard&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;VPN (on OPNsense)&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;web--analytics&#34;&gt;Web &amp;amp; Analytics&lt;/h2&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Service&lt;/th&gt;
          &lt;th&gt;What it does&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Matomo&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Privacy-respecting web analytics&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;Whoogle&lt;/strong&gt;&lt;/td&gt;
          &lt;td&gt;Private Google search proxy&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;why-self-host-all-of-this&#34;&gt;Why self-host all of this?&lt;/h2&gt;
&lt;p&gt;The obvious question is: why not just use cloud services? A few reasons:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Data sovereignty.&lt;/strong&gt; My photos, documents, passwords, and communications stay on hardware I control. No third party is mining my data or training models on it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No subscriptions.&lt;/strong&gt; The total recurring cost is electricity. No monthly fees for photo storage, file sync, password management, or any of the other services that cloud providers love to charge for.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reliability.&lt;/strong&gt; My services don&amp;rsquo;t go down when someone else&amp;rsquo;s cloud has an outage. They also don&amp;rsquo;t get discontinued, acquired, or enshittified.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Learning.&lt;/strong&gt; Running this infrastructure teaches you more about networking, Linux, containers, storage, and monitoring than any course ever could.&lt;/p&gt;
&lt;p&gt;The trade-off is maintenance time. But with proper orchestration (see the &lt;a href=&#34;https://antoine.weill-duflos.fr/en/post/komodo/&#34;&gt;Komodo post&lt;/a&gt;), that time is minimal. Most days, everything just runs.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
