unixorn.github.io
https://unixorn.github.io/
Recent content on unixorn.github.iounixorn.github.iohttps://unixorn.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E
https://unixorn.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E
Hugo -- 0.152.2en-usCopyright 2019-2026, Joe Block. All rights reserved.Sun, 01 Mar 2026 12:12:39 -0700Install MQTT into k8s
https://unixorn.github.io/post/homelab/k8s/06-install-mqtt/
Sun, 01 Mar 2026 12:12:39 -0700https://unixorn.github.io/post/homelab/k8s/06-install-mqtt/<p>Now that the cluster is up and has Argo CD controlling application deployment, I’m starting to move my homelab services out of <code>docker-compose</code> stacks and into my k8s cluster.</p>
<p>I run MQTT (Eclipse <a href="https://mosquitto.org/">Mosquitto</a> in my case) as a message bus between <a href="https://www.zigbee2mqtt.io/">zigbee2mqtt</a> and <a href="https://github.com/zwave-js/zwave-js-ui">zwave-js-ui</a> and <a href="https://www.home-assistant.io/">Home Assistant</a>, so it’s the first service I’m moving into the k8s cluster.</p>Install Argo CD in a homelab cluster
https://unixorn.github.io/post/homelab/k8s/05-install-argocd/
Sun, 08 Feb 2026 09:21:34 -0700https://unixorn.github.io/post/homelab/k8s/05-install-argocd/<p>In part five of my kubernetes homelab series, we will install Argo CD into a homelab cluster so we can use gitops practices instead of ad-hoc <code>kubectl</code> commands.</p>
<p>This will make it much easier to recreate the cluster exactly if we decide to move it to new hardware or just want to reset things to a known-good state after experimentation.</p>
<ul>
<li><a href="../01-talos-with-cilium-cni-on-proxmox/">Part 1 - Setting up Talos with a Cilium CNI on proxmox</a></li>
<li><a href="../02-k8s-cilium-r53-and-cert-manager/">Part 2 Add SSL to Kubernetes using Cilium, cert-manager and LetsEncrypt with domains hosted on Amazon Route 53</a></li>
<li><a href="../03-secret-management-with-sops/">Part 3 - Secret Management with SOPS</a></li>
<li><a href="../04-backup-talos-etcd-to-smb/">Part 4 - Back up your Talos etcd cluster to a SMB share</a></li>
<li>Part 5 - Install Argo CD</li>
<li><a href="../06-install-mqtt/">Part 6 - Install MQTT into a k8s cluster</a></li>
</ul>
<h2 id="why-bother-with-gitops-its-a-homelab-and-im-the-only-administrator">Why bother with gitops? It’s a homelab, and I’m the only administrator</h2>
<p>Using gitops to configure your cluster instead of running <code>kubectl apply</code> commands directly makes it possible to reproduce the exact state of the cluster later if you need to revert to a known-good state.</p>Back up your Talos etcd cluster to a smb share
https://unixorn.github.io/post/homelab/k8s/04-backup-talos-etcd-to-smb/
Sat, 24 Jan 2026 12:20:42 -0700https://unixorn.github.io/post/homelab/k8s/04-backup-talos-etcd-to-smb/<p>In this post, I will show how to access smb shares outside the cluster from a Kubernetes Pod. The example is backing up the etcd cluster in my Talos k8s cluster to a share, but you can use this for any service (like Plex or Jellyfin) that need access to files on a NAS.</p>
<p>This is part four of my Homelab Kubernetes series.</p>Secret Management with SOPS
https://unixorn.github.io/post/homelab/k8s/03-secret-management-with-sops/
Mon, 19 Jan 2026 14:19:03 -0700https://unixorn.github.io/post/homelab/k8s/03-secret-management-with-sops/<p>This is part 3 of my Kubernetes homelab cluster setup series - Secrets Management with <a href="https://github.com/getsops/sops">SOPS</a>.</p>Add SSL to Kubernetes using Cilium, cert-manager and LetsEncrypt with domains hosted on Amazon Route 53
https://unixorn.github.io/post/homelab/k8s/02-k8s-cilium-r53-and-cert-manager/
Mon, 05 Jan 2026 22:17:37 -0700https://unixorn.github.io/post/homelab/k8s/02-k8s-cilium-r53-and-cert-manager/<p>In part two of this homelab kubernetes setup series, we’re going to install & configure <a href="https://cert-manager.io/">cert-manager</a> to use <a href="https://letsencrypt.org">LetsEncrypt</a> with <a href="https://aws.amazon.com/route53/">Route 53</a> so we can use SSL to connect to our services.</p>
<ul>
<li><a href="../01-talos-with-cilium-cni-on-proxmox/">Part 1 - Setting up Talos with a Cilium CNI on proxmox</a></li>
<li>Part 2 - Add SSL to Kubernetes using Cilium, cert-manager and LetsEncrypt with domains hosted on Amazon Route 53</li>
<li><a href="../03-secret-management-with-sops/">Part 3 - Set up Secret Management with SOPS</a></li>
<li><a href="../04-backup-talos-etcd-to-smb/">Part 4 - Back up your Talos etcd cluster to a SMB share</a></li>
<li><a href="../05-install-argocd/">Part 5 - Install ArgoCD</a></li>
<li><a href="../06-install-mqtt/">Part 6 - Install MQTT into a k8s cluster</a></li>
</ul>
<p>The tutorials I’ve seen for using cert-manager with a DNS challenge all use CloudFlare. I have my lab domain on <a href="https://aws.amazon.com/route53/">Route 53</a> so this post will cover that instead.</p>Creating a Talos kubernetes cluster with a Cilium CNI on Proxmox
https://unixorn.github.io/post/homelab/k8s/01-talos-with-cilium-cni-on-proxmox/
Sun, 04 Jan 2026 09:27:42 -0700https://unixorn.github.io/post/homelab/k8s/01-talos-with-cilium-cni-on-proxmox/<p>I’ve been meaning to set up a <a href="https://www.siderolabs.com/talos-linux/">Talos</a> linux kubernetes cluster in my homelab for a while and set one up over the holiday break. Here’s how I did it.</p>Switching to Proton.me eMail Advice
https://unixorn.github.io/post/2025-12-26-advice-for-switching-to-proton-hosted-email/
Fri, 26 Dec 2025 15:30:31 -0700https://unixorn.github.io/post/2025-12-26-advice-for-switching-to-proton-hosted-email/<p>After 19 years of hosting email for my domains on Google Workspace (I was an early internal tester when it was still Google Apps) I finally moved my domains to <a href="https://proton.me">proton.me</a> last month when they had a Cyber Monday sale.</p>
<p>There were a lot of reasons that boiled down to:</p>
<ul>
<li>I no longer trust Google to not use my data to train Gemini.</li>
<li>I pay less for 500GB worth of storage for proton services than I did for 30GB on Google. And proton includes a VPN as part of my package’s services.</li>
<li>Proton is a non-profit, so I don’t have to worry about them deciding to sell my data to prop up the stock price in a down quarter.</li>
</ul>
<p>If you have a proton email account <em>but</em> you haven’t already started importing email into proton, don’t kick that off until you read this - it’s what I wish I had known when I was setting up my account. If you don’t have one but are considering one, here’s a <a href="https://pr.tn/ref/3E8ZRJVR">referral link</a> that will get you two weeks for free <em>and</em> $20 off of your first bill. Disclaimer - I get $20 in credit too.</p>Using a NFS Provisioner with Talos
https://unixorn.github.io/post/homelab/talos-nfs-provisioner/
Fri, 12 Dec 2025 23:49:23 -0700https://unixorn.github.io/post/homelab/talos-nfs-provisioner/<p>I’ve been experimenting with running <a href="https://www.talos.dev/">Talos</a> in my home lab. I really like the idea of an immutable OS layer under Kubernetes and wanted to stand up a cluster to run some of my services that are currently run with <code>docker-compose</code>.</p>
<p>I decided to use my Synology to store k8s volumes, here’s how I set that up.</p>Weird shit is afoot with macOS and iTerm
https://unixorn.github.io/post/homelab/weird-shit-is-afoot-with-macos-and-iterm/
Mon, 08 Dec 2025 17:54:19 -0700https://unixorn.github.io/post/homelab/weird-shit-is-afoot-with-macos-and-iterm/<p>So here’s a fun macOS weirdness I ran into this weekend where I couldn’t connect to a port on another machine from a shell session inside of iTerm, even though I was able to <code>ssh</code> to other hosts.</p>Shrimp Food Recipe V2
https://unixorn.github.io/post/aquarium/shrimp-food-recipe-v2/
Tue, 30 Sep 2025 21:22:46 -0600https://unixorn.github.io/post/aquarium/shrimp-food-recipe-v2/<p>Here’s the current (as of 2025-09-30) version of my shrimp food recipe.</p>Building a Debian 13 LXC Template for Proxmox
https://unixorn.github.io/post/homelab/2025-08-13-building-debian-13-lxc-template-for-proxmox/
Fri, 15 Aug 2025 19:10:16 -0600https://unixorn.github.io/post/homelab/2025-08-13-building-debian-13-lxc-template-for-proxmox/<h1 id="building-a-debian-13-trixie-lxc-template-for-proxmox">Building a Debian 13 (Trixie) LXC Template for Proxmox</h1>
<p>Debian 13 (trixie) was released, but (at least as of 2025-08-12) there isn’t a LXC template available for it on proxmox. I wanted a Debian 13 LXC container, so I made a template of my own.</p>
<h2 id="install-tooling">Install tooling</h2>
<p>We’re going to use <a href="https://pve.proxmox.com/wiki/Debian_Appliance_Builder">Debian Appliance Builder</a> to create a Debian 13 LXC template.</p>
<p>First, install the tooling:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">apt update
</span></span><span class="line"><span class="cl">apt install -y dab wget
</span></span></code></pre></div><h2 id="download-debian-13-configuration">Download Debian 13 configuration</h2>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">mkdir dab
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> dab
</span></span><span class="line"><span class="cl"><span class="c1"># Get the debian 13 dab configuration</span>
</span></span><span class="line"><span class="cl">wget -O dab.conf <span class="s2">"https://git.proxmox.com/?p=dab-pve-appliances.git;a=blob_plain;f=debian-13-trixie-std-64/dab.conf;hb=HEAD"</span>
</span></span><span class="line"><span class="cl"><span class="c1"># Get a Makefile to make builds easier</span>
</span></span><span class="line"><span class="cl">wget -O Makefile <span class="s2">"https://git.proxmox.com/?p=dab-pve-appliances.git;a=blob_plain;f=debian-13-trixie-std-64/Makefile;hb=HEAD"</span>
</span></span></code></pre></div><h2 id="build-the-template">Build the template</h2>
<p>Now we can build a template.</p>Nodered, Home Assistant and Tailscale
https://unixorn.github.io/post/homelab/nodered-homeassistant-and-tailscale/
Tue, 15 Jul 2025 14:44:59 -0600https://unixorn.github.io/post/homelab/nodered-homeassistant-and-tailscale/<h1 id="nodered-home-assistant-and-tailscale">Nodered, Home Assistant and Tailscale</h1>
<p>I’m moving my Home Assistant from a docker container to a proxmox VM running HAOS, and as part of that I’m moving Node-RED to its own container so I can move it to other proxmox hosts independently of HAOS.</p>
<p>I’m setting up a new Node-RED instance as part of moving Home Assistant out of docker and onto an HAOS VM. My requirements were:</p>
<ol>
<li>Run Node-RED in a separate VM so I can move it to other proxmox hosts if there is resource contention or I need to fail over</li>
<li>Proper SSL certificate</li>
<li>Easy access via my tailnet</li>
</ol>
<h2 id="pre-requisites">Pre-requisites</h2>
<p>To follow these instructions, you will need:</p>Advice for New Neocaridina Keepers
https://unixorn.github.io/post/aquarium/2025-05-31-advice-for-new-neocaridina-keepers/
Sat, 31 May 2025 08:33:03 -0600https://unixorn.github.io/post/aquarium/2025-05-31-advice-for-new-neocaridina-keepers/<h1 id="advice-for-new-neocaridina-keepers">Advice for New Neocaridina Keepers</h1>
<p>Here’s my advice for someone starting out with neocaridina shrimp. I don’t pretend to be an expert, but my colonies are thriving so I’m doing something right.</p>Shrimp Food Recipe
https://unixorn.github.io/post/aquarium/shrimp-food-recipe/
Sun, 04 May 2025 14:21:53 -0600https://unixorn.github.io/post/aquarium/shrimp-food-recipe/<p>It seems like everyone has their own recipe for home made food to feed their shrimp. Here’s mine.</p>Released ha-mqtt-discoverable 0.19.1
https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.19.1/
Sun, 27 Apr 2025 08:31:56 -0600https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.19.1/<p>Released ha-mqtt-discoverable 0.19.1</p>
<ul>
<li>A lot of code cleanups</li>
<li>Dependency updates</li>
</ul>
<p>Thanks for your contributions and maintenance work, @kratz00</p>
<h2 id="whats-changed">What’s Changed</h2>
<ul>
<li>MegaLinter: fix linter errors by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/323">https://github.com/unixorn/ha-mqtt-discoverable/pull/323</a></li>
<li>Update Pydantic to version 2.10.6 by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/322">https://github.com/unixorn/ha-mqtt-discoverable/pull/322</a></li>
<li>Update pyaml to version 25.1.0 by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/324">https://github.com/unixorn/ha-mqtt-discoverable/pull/324</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/326">https://github.com/unixorn/ha-mqtt-discoverable/pull/326</a></li>
<li>Miscellaneous fixes and improvements by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/325">https://github.com/unixorn/ha-mqtt-discoverable/pull/325</a></li>
<li>ruff: Simplifying Python linter usage by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/327">https://github.com/unixorn/ha-mqtt-discoverable/pull/327</a></li>
<li>SensorInfo: Add ‘suggested_display_precision’ (fixes #179) by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/328">https://github.com/unixorn/ha-mqtt-discoverable/pull/328</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/330">https://github.com/unixorn/ha-mqtt-discoverable/pull/330</a></li>
<li>Misc2 by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/329">https://github.com/unixorn/ha-mqtt-discoverable/pull/329</a></li>
<li>Package Updates by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/334">https://github.com/unixorn/ha-mqtt-discoverable/pull/334</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/336">https://github.com/unixorn/ha-mqtt-discoverable/pull/336</a></li>
<li>Update ruff to version 0.11.4 by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/339">https://github.com/unixorn/ha-mqtt-discoverable/pull/339</a></li>
<li>Update ruff to version 0.11.5 by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/340">https://github.com/unixorn/ha-mqtt-discoverable/pull/340</a></li>
<li>Update pydantic to version 2.11.3 by @kratz00 in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/341">https://github.com/unixorn/ha-mqtt-discoverable/pull/341</a></li>
<li>Update to v0.19.0 for release by @unixorn in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/342">https://github.com/unixorn/ha-mqtt-discoverable/pull/342</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/unixorn/ha-mqtt-discoverable/compare/v0.18.0...v0.19.0">https://github.com/unixorn/ha-mqtt-discoverable/compare/v0.18.0...v0.19.0</a></p>Lima Xbar Plugin 1.5.0
https://unixorn.github.io/post/open-source/lima-xbar-plugin-1.5.0/
Thu, 27 Mar 2025 08:18:51 -0600https://unixorn.github.io/post/open-source/lima-xbar-plugin-1.5.0/<p>Released version 1.5.0 of <a href="https://github.com/unixorn/lima-xbar-plugin">https://github.com/unixorn/lima-xbar-plugin</a></p>
<p>lima-xbar-plugin works with both <a href="https://xbarapp.com/">xbar</a> and <a href="https://github.com/swiftbar/SwiftBar">SwiftBar</a> to add a macos menubar item to control your lima VMs and containers.</p>
<p>Thanks to new contributors <a href="https://github.com/pythoninthegrass">pythoninthegrass</a> and <a href="https://github.com/deepjia">deepjia</a>.</p>Nanotank Setup
https://unixorn.github.io/post/aquarium/nanotank-setup/
Tue, 25 Mar 2025 08:04:04 -0600https://unixorn.github.io/post/aquarium/nanotank-setup/<h1 id="nanotank-setup-advice">Nanotank Setup Advice</h1>
<p>You’ve seen some nice videos on YouTube of small tanks with fresh water shrimp, and now you want one for yourself. Here are some tips on setting a shrimp tank up for yourself.</p>How to install Proxmox on a 2019 Macbook Pro
https://unixorn.github.io/post/homelab/2025-02-01-install-proxmox-on-macbook-pro/
Sat, 01 Feb 2025 10:18:01 -0700https://unixorn.github.io/post/homelab/2025-02-01-install-proxmox-on-macbook-pro/<p>I recently replaced a 2019 Intel MacBook Pro with a M3 Macbook Air, so I decided to wipe the MBP and install <a href="https://www.proxmox.com">proxmox</a> on it.</p>
<p>It wasn’t as straightforward as installing on non-Apple hardware, so I’m documenting what I had to do here.</p>
<p>Note that this post only covers getting things working on a MacBook Pro - look at the many online tutorials for what you should do once your node is up and running.</p>Released ha-mqtt-discoverable v0.16.2
https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.16.2/
Sun, 15 Dec 2024 09:31:56 -0700https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.16.2/<p>Released ha-mqtt-discoverable <a href="https://github.com/unixorn/ha-mqtt-discoverable/releases/tag/v0.16.2">v0.16.2</a> and ha-mqtt-discoverable-cli <a href="https://github.com/unixorn/ha-mqtt-discoverable-cli/releases/tag/v0.16.2">v0.16.2</a></p>
<h2 id="whats-changed">What’s Changed</h2>
<ul>
<li>Added missing last_reset to sensor for metering (electricity,gas, water etc.) by @unl0ck in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/286">https://github.com/unixorn/ha-mqtt-discoverable/pull/286</a></li>
</ul>
<h2 id="new-contributors">New Contributors</h2>
<ul>
<li>@unl0ck made their first contribution in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/286">https://github.com/unixorn/ha-mqtt-discoverable/pull/286</a></li>
</ul>Synchronizing Multiple Piholes with orbital-sync
https://unixorn.github.io/post/homelab/orbital-sync/
Sat, 07 Dec 2024 19:15:14 -0600https://unixorn.github.io/post/homelab/orbital-sync/<p>I run <a href="https://pi-hole.net/">PiHole</a> for ad-blocking on my home network. I’m an SRE in my day job, so of course I’m not running a single instance of something as important as DNS. I also don’t want to have to update things like local DNS entries or blocklists in multiple places, that will cause weird and annoying inconsistencies in my DNS.</p>
<p>Enter <a href="https://github.com/mattwebbio/orbital-sync">orbital-sync</a>.</p>First Neos
https://unixorn.github.io/post/aquarium/first-neos/
Sat, 24 Aug 2024 11:44:57 -0600https://unixorn.github.io/post/aquarium/first-neos/<p>Got my first neocaridinas yesterday!</p>
<p>The new tank has been cycling for six weeks and the water parameters have been good for the last three weeks, so I decided it was past time to add more livestock to the tank so the Nerite doesn’t get lonely.</p>
<p>I decided on Yellow Golden Backs because I thought they’d stand out in my tank, and ordered 20 from <a href="https://LVexoticfish.com">LVexoticfish.com</a>. I have to give them props - as advertised, all the shrimp arrived alive.</p>What are these plants?
https://unixorn.github.io/post/aquarium/plant-question/
Sat, 03 Aug 2024 11:13:46 -0600https://unixorn.github.io/post/aquarium/plant-question/<p>Just started a new 5 gallon tank. Haven’t had fish tanks in years, and someone local generously gave me some plant trimmings when cleaning his tanks, and I forgot what species they are.</p>Hail Mary Podcast
https://unixorn.github.io/post/hail-mary-podcast/
Tue, 30 Jul 2024 10:21:15 -0600https://unixorn.github.io/post/hail-mary-podcast/<p>I was a guest on Pagerduty’s Page it to the Limit podcast in the July 2024 podcast book club episode about Andy Weir’s novel, <a href="https://andyweirauthor.com/">Project Hail Mary.</a>. You can find the episode <a href="https://www.pageittothelimit.com/project-hail-mary/">here</a>.</p>Released ha-mqtt-discoverable v0.14.0
https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.14.0/
Sun, 19 May 2024 07:34:51 -0600https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.14.0/<p>Released <a href="https://github.com/unixorn/ha-mqtt-discoverable/releases/tag/v0.14.0">ha-mqtt-discoverable v0.14.0</a>.</p>
<h2 id="new-contributors">New Contributors</h2>
<ul>
<li>@dianlight made their first contribution in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/167">https://github.com/unixorn/ha-mqtt-discoverable/pull/167</a></li>
<li>@mmaeusezahl made their first contribution in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/178">https://github.com/unixorn/ha-mqtt-discoverable/pull/178</a></li>
<li>@chripede made their first contribution in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/182">https://github.com/unixorn/ha-mqtt-discoverable/pull/182</a></li>
<li>@meowmeowahr made their first contribution in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/197">https://github.com/unixorn/ha-mqtt-discoverable/pull/197</a></li>
</ul>
<h2 id="whats-changed">What’s Changed</h2>
<h3 id="features">Features</h3>
<ul>
<li>Add via_device property to DeviceInfo by @dianlight in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/167">https://github.com/unixorn/ha-mqtt-discoverable/pull/167</a></li>
<li>Fixing a typo in README.md by @mmaeusezahl in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/178">https://github.com/unixorn/ha-mqtt-discoverable/pull/178</a></li>
<li>Fix closed -> opening by @chripede in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/182">https://github.com/unixorn/ha-mqtt-discoverable/pull/182</a></li>
<li>Un-private Binary Sensor update_state by @meowmeowahr in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/197">https://github.com/unixorn/ha-mqtt-discoverable/pull/197</a></li>
</ul>
<h3 id="dependency-updates">Dependency updates</h3>
<ul>
<li>build(deps): Bump gitlike-commands from 0.2.1 to 0.3.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/173">https://github.com/unixorn/ha-mqtt-discoverable/pull/173</a></li>
<li>build(deps-dev): Bump pytest from 7.4.4 to 8.0.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/171">https://github.com/unixorn/ha-mqtt-discoverable/pull/171</a></li>
<li>build(deps-dev): Bump flake8 from 6.1.0 to 7.0.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/168">https://github.com/unixorn/ha-mqtt-discoverable/pull/168</a></li>
<li>build(deps-dev): Bump pre-commit from 3.6.0 to 3.6.1 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/180">https://github.com/unixorn/ha-mqtt-discoverable/pull/180</a></li>
<li>build(deps-dev): Bump pre-commit from 3.6.1 to 3.6.2 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/184">https://github.com/unixorn/ha-mqtt-discoverable/pull/184</a></li>
<li>build(deps-dev): Bump black from 23.12.1 to 24.2.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/183">https://github.com/unixorn/ha-mqtt-discoverable/pull/183</a></li>
<li>build(deps-dev): Bump black from 24.2.0 to 24.3.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/192">https://github.com/unixorn/ha-mqtt-discoverable/pull/192</a></li>
<li>build(deps-dev): Bump pytest from 8.0.0 to 8.1.1 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/190">https://github.com/unixorn/ha-mqtt-discoverable/pull/190</a></li>
<li>build(deps-dev): Bump pre-commit from 3.6.2 to 3.7.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/195">https://github.com/unixorn/ha-mqtt-discoverable/pull/195</a></li>
<li>build(deps-dev): Bump black from 24.3.0 to 24.4.0 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/198">https://github.com/unixorn/ha-mqtt-discoverable/pull/198</a></li>
<li>build(deps-dev): Bump black from 24.4.0 to 24.4.2 by @dependabot in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/200">https://github.com/unixorn/ha-mqtt-discoverable/pull/200</a></li>
<li>Bump pydantic version to ^2.0.0 by @mmaeusezahl in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/191">https://github.com/unixorn/ha-mqtt-discoverable/pull/191</a></li>
<li>Fix poetry lock by @unixorn in <a href="https://github.com/unixorn/ha-mqtt-discoverable/pull/206">https://github.com/unixorn/ha-mqtt-discoverable/pull/206</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/unixorn/ha-mqtt-discoverable/compare/v0.13.1...v0.14.0">https://github.com/unixorn/ha-mqtt-discoverable/compare/v0.13.1...v0.14.0</a></p>Store NUT metrics in Prometheus so we can display them with Grafana
https://unixorn.github.io/post/homelab/homelab-nut-prometheus-grafana/
Sun, 21 Apr 2024 13:27:16 -0600https://unixorn.github.io/post/homelab/homelab-nut-prometheus-grafana/<p>I ordered a second UPS because thanks to <a href="https://github.com/Brandawg93/PeaNUT">PeaNUT</a>, I saw that my current UPS is only providing 20 minutes of uptime. Unfortunately, as of this post, PeaNUT will only read one UPS’ metrics from <a href="https://networkupstools.org/">Network UPS Tools</a> per PeaNUT instance, so I’m going to start scraping the metrics into Prometheus and displaying them with Grafana. Here’s how I did it.</p>Setup Prometheus and Grafana in Your Homelab
https://unixorn.github.io/post/homelab/homelab-setup-prometheus-and-grafana/
Sat, 13 Apr 2024 14:19:26 -0600https://unixorn.github.io/post/homelab/homelab-setup-prometheus-and-grafana/<p>I wanted nice graphs for the various metrics I collect in my homelab and from my Home Assistant server.</p>
<p>Here’s how I installed Prometheus and Grafana in my homelab to get them.</p>Set up nut-upsd and peanut in your homelab
https://unixorn.github.io/post/homelab/homelab-nut-upsd/
Sat, 06 Apr 2024 16:27:06 -0600https://unixorn.github.io/post/homelab/homelab-nut-upsd/<h1 id="set-up-nut-upsd-and-peanut-in-your-homelab">Set up nut-upsd and peanut in your homelab</h1>
<p>I run my Synology server and network switches off a UPS. I decided I wanted a dashboard for the UPS, here’s how I did set up <a href="https://networkupstools.org/">Network UPS Tools</a>, aka NUT, and the <a href="https://github.com/Brandawg93/PeaNUT">PeaNUT</a> dashboard.</p>Released ha-mqtt-discoverable 0.12.0
https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.12.0/
Wed, 22 Nov 2023 19:08:25 -0700https://unixorn.github.io/post/hass/ha-mqtt-discoverable-0.12.0/<p>Released ha-mqtt-discoverable 0.12.0</p>Weird Home Assistant Scripts Bug
https://unixorn.github.io/post/hass/2023-11-weird-ha-scripts-bug/
Wed, 22 Nov 2023 15:55:25 -0700https://unixorn.github.io/post/hass/2023-11-weird-ha-scripts-bug/<p>I ran into a weird Home Assistant scripts issue when I upgraded to 2023.11 from 2023.06 (I know, but I didn’t need the new features and had higher priority stuff to deal with) last week.</p>
<p>After the update, when I went to add or edit a script, I started seeing 500s.</p>
<p>After some messing around, I eventually moved the couple scripts I had from <code>scripts.yaml</code> as inline scripts in <code>configuration.yaml</code>, restarted, and when I went to edit them, HA offered to migrate them into <code>scripts.yaml</code>. Annoyingly, <em>then</em> when I went to create a new script, HA didn’t return 500s, but the new script didn’t show up in the script list either. I could see it in <code>scripts.yaml</code>, though, and <code>configuration.yaml</code> had the expected <code>script: !include scripts.yaml</code> line in it.</p>Homelab Upgrade from USG-Pro to UDM-Pro
https://unixorn.github.io/post/2023-08-homelab-upgrade/
Sat, 26 Aug 2023 13:30:26 -0600https://unixorn.github.io/post/2023-08-homelab-upgrade/<p>Last Tuesday night, my USG Pro died. I got it secondhand and I got almost five years use out of it, so it was past time for a more performant replacement.</p>Set up nginx-proxy-manager with LetsEncrypt SSL certificates
https://unixorn.github.io/post/hass/2023-07-09-set-up-nginx-proxy-manager/
Sat, 22 Jul 2023 08:19:38 -0600https://unixorn.github.io/post/hass/2023-07-09-set-up-nginx-proxy-manager/<p>In the next few posts, I’m going to document how to set up Home Assistant (HA) from scratch. We’re going to want to protect the admin UI interfaces for HA and its support services with SSL, and add authentication to services that don’t provide it themselves.</p>
<p>We’re going to do this with <a href="https://nginxproxymanager.com/">Nginx Proxy Manager</a> because it has built in support for using <a href="https://letsencrypt.org">LetsEncrypt</a> to obtain free SSL certificates, supports adding authentication to services that don’t do it themselves, and is overall easy to use.</p>
<p>Before I start writing more Home Assitant articles, let’s set up a SSL proxy server to keep everything secure.</p>Installing ESPHome
https://unixorn.github.io/post/hass/2023-05-21-install-esphome/
Mon, 22 May 2023 10:32:34 -0600https://unixorn.github.io/post/hass/2023-05-21-install-esphome/<p>Some of my posts assume that the user already has <a href="https://esphome.io/">ESPHome</a> installed, so I’m documenting how to install it here so I don’t have to repeat it everywhere.</p>Blog Comments via Mastodon
https://unixorn.github.io/post/2023-03-blog-comments-via-mastodon/
Wed, 05 Apr 2023 15:45:03 -0600https://unixorn.github.io/post/2023-03-blog-comments-via-mastodon/<p>As part of moving from Twitter to Mastodon I decided to add comments to the blog using Fediverse posts. Fortunately, Carl Schwan showed how he does it on his blog <a href="https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/">here</a>.</p>
<p>Here are the exact tweaks to his post I did to get it working with the <a href="https://github.com/adityatelange/hugo-PaperMod">papermod</a> theme I’m using on this blog.</p>Booting an Orange Pi 5 from NVMe
https://unixorn.github.io/post/2023-03-boot-orange-pi-5-from-nvme/
Fri, 31 Mar 2023 11:08:42 -0600https://unixorn.github.io/post/2023-03-boot-orange-pi-5-from-nvme/<p>Just got an Orange Pi 5. I couldn’t find a simple set of instructions on how to boot it off the M.2 NVMe slot, so I’m documenting it here.</p>Add Smarts to IKEA Vindriktning Sensors
https://unixorn.github.io/post/add-smarts-to-ikea-vindriktning-air-sensors/
Sat, 18 Mar 2023 13:46:13 -0600https://unixorn.github.io/post/add-smarts-to-ikea-vindriktning-air-sensors/<p>We’re doing a kitchen & bathrooms renovation, and the construction is generating a lot of dust, to the point that I was changing the HVAC filter twice a week. I wanted to see just how much garbage is in the air, so I started looking around for air quality sensors. Naturally I wanted one that I could integrate into my Home Assistant so I could generate notifications if the air was extra filthy.</p>Released ha-mqtt-discoverable 0.8.0
https://unixorn.github.io/post/ha-mqtt-discoverable-0.8.0/
Sat, 11 Mar 2023 16:39:38 -0700https://unixorn.github.io/post/ha-mqtt-discoverable-0.8.0/<p>Released version 0.8.0 of ha-mqtt-discoverable and version 0.2.0 of ha-mqtt-discoverable-cli today.</p>Restic Backups on TrueNAS
https://unixorn.github.io/post/restic-backups-on-truenas/
Fri, 13 Jan 2023 11:16:19 -0700https://unixorn.github.io/post/restic-backups-on-truenas/<p>I’ve been backing my homelab up with <code>duplicacy</code> (See <a href="https://unixorn.github.io/post/backing-up-the-cluster-with-duplicacy/">Backing Up the Cluster Using Duplicacy</a>), but I’m fed up with it returning a <code>0</code> exit code <em>even if there’s a problem with the backup</em>. This makes me have to do a lot of annoying rummaging through log output to be sure that a backup actually worked, so I decided to switch to <a href="https://restic.net/">restic</a>.</p>
<p>In this blog entry, I’m going to explain how to create a jail in TrueNAS, mount directories you want to back up into the jail, install <a href="https://restic.net/">restic</a>, and how to use it to back up to <a href="https://www.backblaze.com/b2/cloud-storage.html">Backblaze b2</a>.</p>Fix Congo Backticks
https://unixorn.github.io/post/fix-congo-backticks/
Mon, 14 Nov 2022 19:12:41 -0700https://unixorn.github.io/post/fix-congo-backticks/<p>I considered a switch to the <a href="https://hugothemesfree.com/a-simple-lightweight-theme-for-hugo-built-with-tailwind-css/">Congo</a> theme for <a href="https://gohugo.io/">Hugo</a>. The one thing I didn’t like in it was the way it handles inline backticks - it displays them, in addition to formatting the enclosed text as code.</p>
<p>To fix it, create <code>assets/css/custom.css</code> with the following contents:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="p">.</span><span class="nc">prose</span> <span class="nt">code</span><span class="p">::</span><span class="nd">before</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="k">content</span><span class="p">:</span> <span class="s1">''</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p">.</span><span class="nc">prose</span> <span class="nt">code</span><span class="p">::</span><span class="nd">after</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl"> <span class="k">content</span><span class="p">:</span> <span class="s1">''</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div>Switching to Mastodon
https://unixorn.github.io/post/switching-to-mastodon/
Thu, 10 Nov 2022 08:39:22 -0700https://unixorn.github.io/post/switching-to-mastodon/<p>I’m moving from Twitter to Mastodon. Specifically, I’m @[email protected]. Here are my first impressions.</p>Zigbee and Zwave Setup Tips
https://unixorn.github.io/post/zigbee-and-zwave-setup-tip/
Sun, 06 Nov 2022 14:47:14 -1000https://unixorn.github.io/post/zigbee-and-zwave-setup-tip/<p>Some tips about setting up Zigbee or Z-wave mesh networks.</p>
<p>I’ve had a few people new to Home Assistant ask about how to best set up their mesh networks. Here’s my take on what works best.</p>Switch Home Assistant to Use PostgreSQL Instead of SQLite
https://unixorn.github.io/post/hass-using-postgresql-instead-of-sqlite/
Sat, 05 Nov 2022 09:42:58 -0600https://unixorn.github.io/post/hass-using-postgresql-instead-of-sqlite/<p>I wanted to switch my new Home Assistant (HA) installation to write data to <a href="https://www.postgresql.org/">PostgreSQL</a> instead of SQLite for a variety of reasons. Here’s how I did it.</p>
<p>Here’s why I decided to switch:</p>
<ul>
<li><strong>Resilience</strong>. If you’re running Home Assistant on a Raspberry Pi’s SD card, the constant churn of history updates will eventually destroy the card. The more entities you have, the faster HA will grind your SD card to failure. Writing all that to another server that is writing to a real SSD or spinning disk eliminates that problem.</li>
<li><strong>Convenience</strong>. I can back up the postgres database without having to stop HA. I don’t even have to run the backup on the HA server.</li>
<li><strong>Speed</strong>. Using a real database will speed up history display, especially once you have a large number of entities.</li>
</ul>Fix Securifi Peanut issue with zigbee2mqtt
https://unixorn.github.io/post/securifi-peanut-gotcha/
Thu, 06 Oct 2022 21:20:45 -1000https://unixorn.github.io/post/securifi-peanut-gotcha/<p>Securifi Peanut plugs have issues with zigbee2mqtt.</p>
<p>I have several Securifi <a href="https://smile.amazon.com/gp/product/B00TC9NC82">Peanut</a> Zigbee switches. Overall, they’re nice little smart plugs and make good Zigbee routers to strengthen your Zigbee mesh, but they have one annoying issue - <a href="https://zigbee2mqtt.io">zigbee2mqtt</a> doesn’t recognize them perfectly, though there’s a simple fix that I’m going to document here.</p>Use Pagerduty With Home Assistant
https://unixorn.github.io/post/use-pagerduty-with-home-assistant/
Sat, 17 Sep 2022 15:38:01 -0600https://unixorn.github.io/post/use-pagerduty-with-home-assistant/<p>I wanted my Home Assistant to be able to send me alerts when Bad Things are detected like water on my basement floor. I’m an SRE, and have been using PagerDuty for years, so I decided to set up a personal <a href="https://www.pagerduty.com/">PagerDuty</a> account and connect it to my Home Assistant.</p>Fixing Autodesk Fusion 360 First Time Launch on macOS Problems
https://unixorn.github.io/post/autodesk-fusion-signup/
Sun, 01 May 2022 18:06:38 -0600https://unixorn.github.io/post/autodesk-fusion-signup/<p>I signed up for the free personal edition of Autodesk Fusion 360 to get started with 3d printing, and the first time I tried to launch it on macOS, it wouldn’t let me in because it refused to create a new team for me to join.</p>
<p>The solution ended up being to quit Fusion 360, open the <a href="http://login.autodesk360.com/login/signup?product=fusion&edition=business">Fusion Team Signup</a> page in a browser, create a team there, then restart Fusion 360.</p>Western Digital Red drive SMR Fiasco
https://unixorn.github.io/post/western-digital-red-smr-fiasco/
Sat, 15 Jan 2022 07:32:37 -0700https://unixorn.github.io/post/western-digital-red-smr-fiasco/<p>TL;DR - SMR drives can take thirteen to sixteen times as long to resilver in your ZFS raid than CMR drives. If they even succeed. This wouldn’t be a big deal, except that Western Digital started using SMR technology in their WD-Red drives that are marketed toward SOHO and small business raid, without any warnings about the RAID performance implications.</p>
<p>I got lucky when I bought my last batch of Reds, they were all CMR, but it was pure luck - I bought them based on Western Digital’s reputation and because I’ve seen multiple NAS vendors recommend WD-REDs in the past.</p>Sysadvent 2021 Articles
https://unixorn.github.io/post/sysadvent-2021-article/
Tue, 07 Dec 2021 11:13:39 -0700https://unixorn.github.io/post/sysadvent-2021-article/<p>I wrote two articles in sysadvent 2021</p>
<ul>
<li><a href="https://sysadvent.blogspot.com/2021/12/day-7-baking-multi-architecture-docker.html">Baking Multi-Architecture Docker Images</a></li>
<li><a href="https://sysadvent.blogspot.com/2021/12/day-16-setting-up-k3s-in-your-home-lab.html">Setting up k3s in your home lab</a></li>
</ul>AWS IAM Self Tagging EC2 Instances
https://unixorn.github.io/post/iam-self-tagging/
Sun, 13 Jun 2021 15:21:03 -0600https://unixorn.github.io/post/iam-self-tagging/<p>For a variety of reasons, I needed to enable some EC2 instances to write/update a single EC2 tag, but the instaces needed to only be able to tag themselves.</p>Setting up Shinobi and a Wyze G2 Camera
https://unixorn.github.io/post/setting-up-shinobi-and-a-wyze-g2-camera/
Sun, 14 Mar 2021 01:59:26 -0700https://unixorn.github.io/post/setting-up-shinobi-and-a-wyze-g2-camera/<p>I wanted to set up a security camera outside, but I didn’t want to be dependent on an outside cloud service - if my internet goes out, I don’t want to lose my ability to record video.</p>
<p>Wyze cameras are nice and cheap, and you can reflash them to support RTSP in addition to streaming to the Wyze cloud.</p>Home Assistant Printer Power Management
https://unixorn.github.io/post/home-assistant-printer-power-management/
Sat, 13 Feb 2021 12:08:24 -0700https://unixorn.github.io/post/home-assistant-printer-power-management/<p>I’ve got an old HP laser printer in my basement. We barely print 10 pages a month between the two of us, so we only turn it on when we’re going to print. That’s a hassle though, because inevitably we forget to shut it off sometimes and it stays on overnight or even for days, and while it has a powersave mode, the 4050N is so old that even that burns a good amount of power.</p>
<p>Enter Home Assistant.</p>Run a CUPSD print server on Raspberry Pi
https://unixorn.github.io/post/cupsd-setup/
Mon, 08 Feb 2021 12:11:24 -0700https://unixorn.github.io/post/cupsd-setup/<p>I have an old HP 4050N. For a variety of reasons, I want to have it behind a print server instead of having my laptops print directly to it. Here’s how I set that up.</p>Home Assistant Notifications via Twilio SMS
https://unixorn.github.io/post/home-assistant-notifications-via-twilio/
Sun, 17 Jan 2021 16:47:09 -0700https://unixorn.github.io/post/home-assistant-notifications-via-twilio/<h2 id="sending-notifications-from-home-assistant-via-twilio-sms">Sending notifications from Home Assistant via Twilio SMS</h2>
<p>I got a post published at work about <a href="https://www.twilio.com/blog/home-assistant-twilio-sms-alerts">How to Receive Alerts from Home Assistant with Twilio SMS</a>, so I won’t replicate it here.</p>
<p>TL;DR - It is super easy to send SMS messages via Twilio SMS with <code>curl</code>.</p>
<p>Update: I wrote another article, <a href="https://unixorn.github.io/post/use-pagerduty-with-home-assistant/">Use PagerDuty with Home Assistant</a> this time for using PagerDuty which allows automatically de-duping notifications.</p>2021 Georgia Runoff Elections
https://unixorn.github.io/post/2021-runoff-election/
Thu, 12 Nov 2020 11:30:33 -0700https://unixorn.github.io/post/2021-runoff-election/<p>Biden won! Awesome! The fight isn’t over though.</p>
<p>Time to donate to the Georgia Runoff Senate Elections. I’ve set up identical fundraisers, this time for all the different Star Trek Series.</p>
<p>Donate to your favorite series link and we’ll see which series has the most fan support.</p>
<ul>
<li>TOS - <a href="https://secure.actblue.com/donate/ga-tos">https://secure.actblue.com/donate/ga-tos</a></li>
<li>TNG - <a href="https://secure.actblue.com/donate/ga-tng">https://secure.actblue.com/donate/ga-tng</a></li>
<li>DS9 - <a href="https://secure.actblue.com/donate/ga-ds9">https://secure.actblue.com/donate/ga-ds9</a></li>
<li>Enterprise - <a href="https://secure.actblue.com/donate/ga-enterprise">https://secure.actblue.com/donate/ga-enterprise</a></li>
<li>Voyager - <a href="https://secure.actblue.com/donate/ga-voyager">https://secure.actblue.com/donate/ga-voyager</a></li>
<li>Discovery - <a href="https://secure.actblue.com/donate/ga-discovery">https://secure.actblue.com/donate/ga-discovery</a></li>
<li>Lower Decks - <a href="https://secure.actblue.com/donate/ga-lowerdecks">https://secure.actblue.com/donate/ga-lowerdecks</a></li>
<li>Picard - <a href="https://secure.actblue.com/donate/ga-picard">https://secure.actblue.com/donate/ga-picard</a></li>
</ul>Add Plex to Home Assistant
https://unixorn.github.io/post/add-plex-to-hass/
Sun, 08 Nov 2020 21:10:48 -0700https://unixorn.github.io/post/add-plex-to-hass/<p>Adding the Plex integration to Home Assistant is pretty straightforward with the exception of finding your Plex token.</p>
<h2 id="find-your-plex-token">Find Your Plex token:</h2>
<ol>
<li>Sign into your <a href="https://plex.tv">Plex.tv</a> account</li>
<li>Browse to one of the media files (TV episode, movie) on your connected server. You’ll need a Plex pass for this.</li>
<li>Select <strong>Get info</strong></li>
<li>Click <strong>View XML</strong></li>
<li><em>Ignore the XML.</em> Look in the URL to the XML page - you’ll see <code>Plex-Token\=XYZZY</code>. That’s the token you’ll need.</li>
</ol>
<h2 id="set-up-the-plex-home-assistant-integration">Set up the Plex Home Assistant Integration</h2>
<p>Once you have the token,</p>2020 Politics
https://unixorn.github.io/post/2020-elections/
Mon, 12 Oct 2020 08:03:55 -0600https://unixorn.github.io/post/2020-elections/<p>Before anyone complains about me getting political on what was mainly a tch site, remember that <em>not</em> being political is a luxury that only people not getting screwed by the current political landscape can afford.</p>
<p>In no particular order, the attempts to roll back rights for LGBTQ+ citizens, the assaults on womens’ rights, the handling of the COVID-19 crisis, packing the Supreme Court with a hypocritical last second Justice, putting kids in cages, the ongoing destruction of the political norms that have existed for decades, the ignoring scientific facts, etc, etc all have focused my efforts on supporting one party.</p>Building Multi Architecture Docker Images with buildx
https://unixorn.github.io/post/multi-architecture-images/
Sat, 13 Jun 2020 09:07:49 -0600https://unixorn.github.io/post/multi-architecture-images/<p>I’ve got a mix of architectures in my basement cluster - some Odroid HC2s that are <code>arm7</code>, some Raspberry Pi 4s that are <code>arm64</code>, and am soon going to add an Intel node as well. It’s more hassle than it’s worth to have to specify different images for the different architectures. I already build my own copies of images, so I decided to start building all my images as multiarchitecture images.</p>Setting up an ODROID N2
https://unixorn.github.io/post/setting-up-an-n2/
Sun, 29 Mar 2020 15:37:45 -0700https://unixorn.github.io/post/setting-up-an-n2/<p>I wanted a machine with more memory to be the master node for my ARM k3s cluster. I had an Odroid N2 with 4GB of RAM, sitting around, so here’s the log of getting it installed and running.</p>Backing Up the Cluster with Duplicacy
https://unixorn.github.io/post/backing-up-the-cluster-with-duplicacy/
Sun, 01 Sep 2019 15:47:23 -0600https://unixorn.github.io/post/backing-up-the-cluster-with-duplicacy/<h2 id="do-not-use-duplicacy">Do not use duplicacy!</h2>
<p>TL;DR: duplicacy is unusable if you’re serious about backing up your data. Use restic instead!</p>
<p>I wanted to ensure any data I put into my <a href="https://unixorn.github.io/post/k3s-on-arm/">ARM k3s cluster</a> is backed up to prevent data loss.</p>
<p>I no longer recommend duplicacy. Instead, read my article on <a href="https://unixorn.github.io/post/restic-backups-on-truenas/">restic backups on TrueNas</a> instead.</p>
<p>2025 edit: This post is only here for historical reasons. <strong><em>Do NOT use duplicacy</em></strong>. It does not report backup errors in its exit code. You will have to parse its logs yourself and hope your regex didn’t miss an error condition. And <em>every</em> update, you’ll have to check and make sure it hasn’t changed anything that your regex <em>was</em> catching. Backups are supposed to be something you set up once and ignore other than to do periodic restore tests, and duplicacy fails that simple criteria.</p>Growing EBS Volumes in Place
https://unixorn.github.io/post/growing-ebs-volumes-in-place/
Tue, 20 Aug 2019 07:10:27 -0600https://unixorn.github.io/post/growing-ebs-volumes-in-place/<p>Yesterday I had to grow a live filesystem on a server in EC2, without downtime. I do this just infrequently enough to not <em>quite</em> remember all the details without poking around the internet, so I’m documenting it all in one place.</p>Trying K3s on ARM, Part 1
https://unixorn.github.io/post/k3s-on-arm/
Fri, 09 Aug 2019 09:02:31 -0600https://unixorn.github.io/post/k3s-on-arm/<h2 id="why-k3s-and-not-stick-with-k8s">Why k3s and not stick with k8s?</h2>
<p>I wanted to experiment with <a href="https://k3s.io">k3s</a>. They package everything you need in a single binary, don’t package in deprecated parts of k8s, and it works on Intel, ARMv7 and ARM64. It seemed like it’d be a less painful way to runn Kubernetes on my ARM cluster.</p>Equifax 2017 Breach Settlement Information
https://unixorn.github.io/post/equifax-2017-breach-settlement/
Sat, 27 Jul 2019 07:09:10 -0600https://unixorn.github.io/post/equifax-2017-breach-settlement/<p>Get your money from the Equifax settlement regarding the 2017 security breach.</p>Adding a Distributed Filesystem to the Cluster
https://unixorn.github.io/post/adding-a-distributed-filesystem-to-cluster/
Sun, 23 Jun 2019 17:22:47 -0700https://unixorn.github.io/post/adding-a-distributed-filesystem-to-cluster/<p>One of the reasons I set up my cluster was that I’m running out of space on my NAS. I don’t want to buy a whole new chassis, and while I could have put individual file shares on each cluster node, that would be both inconvenient and not provide any data redundancy without a lot of brittle home-rolled hacks to <code>rsync</code> data from node to node. And since distributed file systems are a thing, I’d rather not resort to hacks.</p>Things I Learned About Docker Mac
https://unixorn.github.io/post/til-about-docker-mac/
Wed, 08 May 2019 09:11:31 -0600https://unixorn.github.io/post/til-about-docker-mac/<p>I had a bunch of cruft in start scripts that would determine the IP of my laptop and set it as an environment variable to pass to <code>docker-compose</code> and it turns out that with Docker for Mac you don’t have to do all that work - just use <code>docker.for.mac.localhost</code> as a hostname.</p>Fix macOS Captive WIFI Portal Issue
https://unixorn.github.io/post/fix-macos-captive-portal-issue/
Tue, 05 Mar 2019 22:48:25 -0700https://unixorn.github.io/post/fix-macos-captive-portal-issue/<p>I’m not sure if this is just macOS Mojave being flaky or some interaction with the security malware installed on my work laptop, but it refuses to connect to some captive portals.</p>Parts list for the ARM cluster
https://unixorn.github.io/post/arm_cluster_parts_list/
Fri, 01 Mar 2019 21:49:17 -0700https://unixorn.github.io/post/arm_cluster_parts_list/ARM cluster parts listGetting an ARM kubernetes cluster up and running
https://unixorn.github.io/post/in_the_beginning_there_was_bare_metal/
Sun, 17 Feb 2019 16:00:05 -0700https://unixorn.github.io/post/in_the_beginning_there_was_bare_metal/In the beginning, there was bare metal
https://unixorn.github.io/about-orig/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/about-orig/<p>I’m an SRE in Denver for Twilio.</p>
<p>I like cooking, photography, and working on distributed infrastructure.</p>
<p>I’m the organizer for Denver <a href="https://www.meetup.com/Denver-CoffeeOps/">CoffeeOps</a>, which currently meets online - the meetup link has the Google Meet details.</p>
<p>I have a variety of DevOps (and DevOOPs) themed swag on <a href="https://www.redbubble.com/people/unixorn/collections/1069603-devoops?asc=u">redbubble</a>, if you’d like to buy something and contribute to my hardware habit, or you can contribute at <a href="https://www.patreon.com/unixorn">https://www.patreon.com/unixorn</a>.</p>
<p><script type="text/javascript" src="http://www.redbubble.com/assets/external_portfolio.js"></script>
<script id="rb-xzfcxvzx" type="text/javascript">new RBExternalPortfolio('www.redbubble.com', 'unixorn', 3, 3).renderIframe();</script>
<a href="https://patreon.com/unixorn?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink">https://patreon.com/unixorn?utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink</a></p>
https://unixorn.github.io/about/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/about/<h1 id="about-me">About Me</h1>
<p>I’m an SRE in Denver. Please don’t contact me about jobs involving blockchain, I am not interested in working with griftcoins in any way.</p>
<p>I like cooking, photography, aquariums, home automation and working on distributed infrastructure.</p>
<p>You can find me online at:</p>
<ul>
<li>Mastodon: <a href="https://hachyderm.io/@unixorn">@[email protected]</a></li>
</ul>
<p>Among other projects, I maintain:</p>
<ul>
<li>The <a href="https://github.com/unixorn/awesome-zsh-plugins/">awesome-zsh-plugins</a> list of ZSH frameworks, plugins, themes, tab completions and utilities.</li>
<li>The <a href="https://github.com/unixorn/git-extra-commands/">git-extra-commands</a> collection of <code>git</code> helper scripts and other resources</li>
<li>The <a href="https://github.com/unixorn/zsh-quickstart-kit">ZSH Quickstart Kit</a> an opinionated but fully customizable ZSH setup</li>
<li>The <a href="https://github.com/unixorn/sysadmin-reading-list">Sysadmin Reading List</a> collection of resources for SREs and DevOPs professionals.</li>
</ul>
<p>I’m also the organizer for the Denver <a href="https://www.meetup.com/Denver-CoffeeOps/">CoffeeOps</a> meetup, which currently meets online - the meetup link details are posted in the Colorado channels of both the <a href="https://hangops.slack.com">hangops</a> and <a href="https://coffeeops.slack.com">coffeeops</a> slacks.</p>
https://unixorn.github.io/about.unfucked/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/about.unfucked/<h1 id="about-me">About Me</h1>
<p>I’m an SRE in Denver for Charter. Please don’t contact me about jobs involving blockchain, I am not interested in working with griftcoins in any way.</p>
<p>I like cooking, photography, aquariums, home automation and working on distributed infrastructure.</p>
<p>You can find me online at:</p>
<ul>
<li>Mastodon: <a href="https://hachyderm.io/@unixorn">@[email protected]</a></li>
</ul>
<p>I’m the organizer for the Denver <a href="https://www.meetup.com/Denver-CoffeeOps/">CoffeeOps</a> meetup, which currently meets online - the meetup link details are posted in the Colorado channels of both the <a href="https://hangops.slack.com">hangops</a> and <a href="https://coffeeops.slack.com">coffeeops</a> slacks.</p>
https://unixorn.github.io/aquarium-resources/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/aquarium-resources/<h1 id="aquarium-resources">Aquarium Resources</h1>
<p>Here are some resources I found useful</p>
<h2 id="plants">Plants</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=YfNU5ZxOqVw">Ranking the Best Nutrient Control Plants</a></li>
</ul>
<h2 id="tank-setup">Tank Setup</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=F-yywhyv3ho">How To Make Your First Shrimp Tank (EASY STEP BY STEP NEOCARIDINA TUTORIAL)</a> by MD Fish Tanks. He’s got a incredible amount of good content</li>
</ul>
https://unixorn.github.io/contact/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/contact/<p>Email me at blog @ unixorn.net.</p>
<p>You can find me around the internet at:</p>
<ul>
<li><a href="https://hachyderm.io/@unixorn">@[email protected]</a> on Mastodon</li>
<li><a href="https://www.instagram.com/apeseekingknowledge/">apeseekingknowledge</a> on Instagram.</li>
<li><a href="https://twitter.com/curiousbiped">curiousbiped</a> <del>on Twitter</del> deprecated, use Mastodon instead</li>
<li><a href="https://bsky.app/profile/unixorn.bsky.social">unixorn.bsky.social</a> on Bluesky</li>
<li><a href="https://github.com/unixorn">unixorn</a> on GitHub</li>
<li>I’m unixorn on <a href="https://www.redbubble.com/people/unixorn?utm_campaign=external-portfolio&utm_medium=embedded&utm_source=unixorn&asc=u">redbubble</a></li>
</ul>
https://unixorn.github.io/holopinholo/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/holopinholo/<h1 id="holopin-test">Holopin test</h1>
<p><a href="https://holopin.io/@unixorn"><img alt="An image of @unixorn’s Holopin badges, which is a link to view their full Holopin profile" loading="lazy" src="https://holopin.me/unixorn"></a></p>
https://unixorn.github.io/jfc/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/jfc/<h1 id="ziggy">Ziggy</h1>
<p>Stardust</p>
https://unixorn.github.io/post/2023-10-16-samba-and-moosefs/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/post/2023-10-16-samba-and-moosefs/<p>title: “Set up samba access to moosefs”
date: 2023-05-21T18:15:48-06:00
draft: true
tags:</p>
<ul>
<li>samba</li>
<li>homelab</li>
<li>moosefs</li>
<li>howto</li>
</ul>
<hr>
<p>Here’s how I set up samba access to my moosefs distributed filesystem</p>
https://unixorn.github.io/projects/
Mon, 01 Jan 0001 00:00:00 +0000https://unixorn.github.io/projects/<h1 id="some-projects-i-maintain-andor-created">Some projects I maintain and/or created</h1>
<ul>
<li><a href="https://github.com/unixorn/apgar">apgar</a> - Apgar is a quick and dirty health-check driver written in Go to prevent dependency conflicts. It is explicitly designed to be simple and not interfere with anything else running on your servers.</li>
<li><a href="https://github.com/unixorn/awesome-zsh-plugins">awesome-zsh-plugins</a> - A list of ZSH frameworks, plugins, themes, tab-completions and tutorials.</li>
<li><a href="https://dotfiles.github.io">dotfiles.github.io</a> - The unofficial guide to dotfiles on GitHub.</li>
<li><a href="https://github.com/unixorn/git-extra-commands">git-extra-commands</a> - A collection of useful extra <code>git</code> scripts I’ve discovered or written, packaged for ease of use with shell frameworks. It also includes lists of <code>git</code> tutorials and other <code>git</code> resources.</li>
<li><a href="https://github.com/unixorn/ha-mqtt-discoverable-cli">ha-mqtt-discoverable-cli</a> - A set of command line tools usable by shell scripts that uses <a href="https://github.com/unixorn/ha-mqtt-discoverable">ha-mqtt-discoverable</a> to make it easy to create MQTT topics that will automatically be detected by <a href="https://home-assistant.io">Home Asssistant</a> as entities.</li>
<li><a href="https://github.com/unixorn/ha-mqtt-discoverable">ha-mqtt-discoverable</a> - A python module that lets you create sensor and device MQTT topics that will automatically be detected by <a href="https://home-assistant.io">Home Asssistant</a>.</li>
<li><a href="https://github.com/unixorn/internet-of-trash/">Internet-of-Trash</a> - There are many IOT devices out there, and it’s hard to know which ones are any good. This list shows you products that are known to <em>not</em> work well with <a href="https://www.home-assistant.io">Home Assistant</a> so you can avoid wasting money on them.</li>
<li><a href="https://github.com/unixorn/online-devops-meetups">online-devops-meetups</a> - A list of free online devops meetups.</li>
<li><a href="https://github.com/unixorn/sysadmin-reading-list">sysadmin-reading-list</a> - A reading/viewing list for larval stage SRE/DevOps engineers.</li>
<li><a href="https://github.com/unixorn/tumult.plugin.zsh">tumult</a> - Tumult is a collection of macOS-specific functions and scripts for your command-line environment. It is packaged as a ZSH plugin, but can be used in <code>bash</code>, <code>fish</code> or other shells as well.</li>
<li><a href="https://github.com/unixorn/works-with-home-assistant">Works With Home Assistant</a> - Not all IOT devices that claim to work with HA actually work well. This is a list of stuff that has been vouched to work well with <a href="https://www.home-assistant.io">Home Assistant</a>.</li>
<li><a href="https://github.com/unixorn/zsh-quickstart-kit">zsh-quickstart-kit</a> - A simple quick start for switching to ZSH. Includes a curated list of plugins that’s easily overridden if you want to change it, is easily customizable without needing to maintain your own fork of the kit, and tweaks the setup to allow history de-duplication, history sharing across shells on the same machine, tab completion for a lot of commands that are not included in a stock ZSH install, and on macOS will load a bunch of command line tools for manipulating your Mac.</li>
</ul>