<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>beerdy.io</title>
    <link>https://beerdy.io/</link>
    <description>Recent content on beerdy.io</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Wed, 29 Oct 2025 18:52:29 -0600</lastBuildDate>
    
        <atom:link href="https://beerdy.io/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Home Assistant on FreeBSD</title>
      <link>https://beerdy.io/2025/10/homeassistant-on-freebsd/</link>
      <pubDate>Wed, 29 Oct 2025 18:52:29 -0600</pubDate>
      
      <guid>https://beerdy.io/2025/10/homeassistant-on-freebsd/</guid>
      <description>&lt;p&gt;After a drive failed in my build server caused me to lose all the work I
did to build packages for Home Assistant, I finally got motivated to
rebuild it again.
It took a long time to figure it all out again and never wanted to have
to start from scratch so all of it is pushed into a git repo&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; that
can be used as a poudriere ports overlay.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Switching to arm64</title>
      <link>https://beerdy.io/2024/05/switching-to-arm64/</link>
      <pubDate>Thu, 02 May 2024 18:09:22 -0600</pubDate>
      
      <guid>https://beerdy.io/2024/05/switching-to-arm64/</guid>
      <description>&lt;p&gt;Recently support for armv7 from Rust has been annoying to build, so I
have decided to switch to arm64 for my Raspberry Pis.
This makes building all of HomeAssistant much easier so I can get back
to working on my setting up my Z-Wave switches again.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>BSDCan 2023 Day 2</title>
      <link>https://beerdy.io/2023/05/bsdcan2023-day2/</link>
      <pubDate>Sat, 20 May 2023 07:22:50 -0600</pubDate>
      
      <guid>https://beerdy.io/2023/05/bsdcan2023-day2/</guid>
      <description>&lt;p&gt;Some notes about the talks I attended at BSDCan 2023 on the first day.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>BSDCan 2023 Day 1</title>
      <link>https://beerdy.io/2023/05/bsdcan2023-day1/</link>
      <pubDate>Fri, 19 May 2023 13:50:31 -0600</pubDate>
      
      <guid>https://beerdy.io/2023/05/bsdcan2023-day1/</guid>
      <description>&lt;p&gt;Some notes about the talks I attended at BSDCan 2023 on the first day.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>BSDCan 2023 Devsummit</title>
      <link>https://beerdy.io/2023/05/bsdcan2023-devsummit/</link>
      <pubDate>Thu, 18 May 2023 13:47:31 -0600</pubDate>
      
      <guid>https://beerdy.io/2023/05/bsdcan2023-devsummit/</guid>
      <description>&lt;p&gt;At the BSDCan DevSummit I enjoyed multiple talks, included the Have,
Need, Want and Axe Session.
I started thinking about what items I could work on.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Zwave on FreeBSD</title>
      <link>https://beerdy.io/2021/12/zwave-on-freebsd/</link>
      <pubDate>Sun, 26 Dec 2021 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2021/12/zwave-on-freebsd/</guid>
      <description>&lt;p&gt;Some random notes about using Z-Wave JS on FreeBSD.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.getzooz.com/zooz-zst10-s2-stick.html&#34;&gt;Zooz S2 ZST10&lt;/a&gt;
works well on FreeBSD using the
&lt;a href=&#34;https://www.freebsd.org/cgi/man.cgi?query=uslcom&amp;amp;manpath=FreeBSD+13.0-RELEASE&#34;&gt;uslcom(4)&lt;/a&gt;
driver.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Creating Custom FreeBSD AMIs for Jenkins - Part 2</title>
      <link>https://beerdy.io/2021/11/creating-custom-freebsd-amis-for-jenkins-part-2/</link>
      <pubDate>Mon, 08 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2021/11/creating-custom-freebsd-amis-for-jenkins-part-2/</guid>
      <description>&lt;p&gt;After creating a brand new AMI from the latest and greatest FreeBSD, we
would be remiss if we did not properly test that it boots and can do a
basic build.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Creating Custom FreeBSD AMIs for Jenkins - Part 1</title>
      <link>https://beerdy.io/2021/11/creating-custom-freebsd-amis-for-jenkins-part-1/</link>
      <pubDate>Mon, 01 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2021/11/creating-custom-freebsd-amis-for-jenkins-part-1/</guid>
      <description>&lt;p&gt;Currently one of my customers is using the FreeBSD 13.0-RELEASE AMIs that
are provided by the FreeBSD Release Engineering team.
While at first these AMIs made our lives easier, as we have grown there
are a couple of problems and opportunities for optimization that have
become apparent:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OpenVPN Error calling protect() on a M1 MacBook Pro</title>
      <link>https://beerdy.io/2021/10/openvpn-error-calling-protect-m1-macbookpro/</link>
      <pubDate>Wed, 27 Oct 2021 10:53:10 -0600</pubDate>
      
      <guid>https://beerdy.io/2021/10/openvpn-error-calling-protect-m1-macbookpro/</guid>
      <description>&lt;p&gt;After getting my new MacBook Pro with the new M1 Pro CPU and running the
Migration Assistant I started seeing the following error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Error calling protect()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Unfortunately I didn&amp;rsquo;t take a screenshot so this might not be the exact
error, but it is pretty close.&lt;/p&gt;
&lt;p&gt;The solution is kind of silly, but just download the latest version of
OpenVPN from their &lt;a href=&#34;https://openvpn.net&#34;&gt;website&lt;/a&gt; and reinstall it over
the top of the existing install.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Jenkins with FreeBSD Agents in ec2</title>
      <link>https://beerdy.io/2021/10/jenkins-with-freebsd-agents-in-ec2/</link>
      <pubDate>Thu, 21 Oct 2021 14:24:35 -0600</pubDate>
      
      <guid>https://beerdy.io/2021/10/jenkins-with-freebsd-agents-in-ec2/</guid>
      <description>&lt;p&gt;One of my customers needs to have builds done on arm64 hosts, but they
lack the necessary hardware to do so in house and procuring such hardware
can be very difficult due to vendors EoL some hardware without the
replacement hardware being ready to ship.
Currently they already have Jenkins configured with a couple of amd64
build agents that do most of the building, so we wanted something we
could just drop in to their existing infrastructure.
So we started evaluating different options like Equinix Metal (formerly
Packet.net) and AWS ec2.
Both provide nice options for being able to fire up a host and do a build
and then shut it off when the build is complete.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Poudriere Missing param.h</title>
      <link>https://beerdy.io/2021/10/poudriere-missing-param.h/</link>
      <pubDate>Tue, 19 Oct 2021 13:27:02 -0600</pubDate>
      
      <guid>https://beerdy.io/2021/10/poudriere-missing-param.h/</guid>
      <description>&lt;p&gt;Building a new FreeBSD poudriere jail, sometimes runs into the following
error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;awk: can&#39;t open file /usr/local/poudriere/jails/aarch64/usr/include/sys/param.h
  source line number 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a bug in &lt;code&gt;poudriere-devel-3.3.99.20210907_1&lt;/code&gt; and it is fixed in
main already but not in a package yet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: New package has been published with the fix.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Setting Up Hashicorp Vault on FreeBSD</title>
      <link>https://beerdy.io/2021/09/setting-up-hashicorp-vault-on-freebsd/</link>
      <pubDate>Fri, 10 Sep 2021 17:56:56 -0600</pubDate>
      
      <guid>https://beerdy.io/2021/09/setting-up-hashicorp-vault-on-freebsd/</guid>
      <description>&lt;p&gt;Vault works well on FreeBSD, but there are a couple of quirks to be aware
of.  This guide will help take care of those.&lt;/p&gt;
&lt;h2 id=&#34;installing-vault&#34;&gt;Installing Vault&lt;/h2&gt;
&lt;p&gt;Follow the normal install method:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-sh&#34;&gt;pkg install vault
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;settings-for-use-in-jail&#34;&gt;Settings for use in Jail&lt;/h2&gt;
&lt;p&gt;Using vault in a jail requires the option &lt;code&gt;allow.mlock&lt;/code&gt; to be set.&lt;/p&gt;
&lt;p&gt;Using ezjail and a jail called &lt;code&gt;vault&lt;/code&gt; just modify the config file
&lt;code&gt;/usr/local/etc/ezjail/vault&lt;/code&gt; on the host and set:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>PXE Booting multiple Raspberry Pi 3s with FreeBSD</title>
      <link>https://beerdy.io/2021/06/pxe-booting-rpi/</link>
      <pubDate>Sat, 19 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2021/06/pxe-booting-rpi/</guid>
      <description>&lt;p&gt;To make it easier to upgrade the various Raspberry Pis that are around,
lets PXE boot them so they can be upgraded easily.&lt;/p&gt;
&lt;p&gt;In this article we will use the following tools to create a shared base
system and then individual mounts for each RPi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NFS&lt;/li&gt;
&lt;li&gt;Poudriere&lt;/li&gt;
&lt;li&gt;PXE&lt;/li&gt;
&lt;li&gt;TFTP&lt;/li&gt;
&lt;li&gt;ZFS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To make cable management easier, each Raspberry Pi is connected to a PoE
switch using one of these
&lt;a href=&#34;https://www.adafruit.com/product/3785&#34;&gt;Adafruit PoE Splitter&lt;/a&gt;.
Using PoE for power also has the additinal benefit of each Rasperry Pi
being powered by the UPS that the switch is connected to.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building FreeBSD cloudinit images for Terraform</title>
      <link>https://beerdy.io/2020/10/building-freebsd-cloudinit-images/</link>
      <pubDate>Mon, 26 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2020/10/building-freebsd-cloudinit-images/</guid>
      <description>&lt;p&gt;Setting up FreeBSD to run cloudinit to make custom images is pretty easy.&lt;/p&gt;
&lt;p&gt;The first step is to boot a basic image or the install ISO and install
FreeBSD.
Once it is up and running then install cloudinit:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-sh&#34;&gt;pkg install net/cloud-init
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And enable cloudinit:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-sh&#34;&gt;sysrc cloudinit_enable=YES
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Currently there is a bug in cloud-init where it does not try to mount the
correct filesystem with the correct type on FreeBSD.
It tries to use the old outdated &lt;code&gt;vfat&lt;/code&gt; type, instead of &lt;code&gt;mosdosfs&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Testing Nomad &amp; Consul with FreeBSD Jails</title>
      <link>https://beerdy.io/2020/10/testing-nomad-consul-with-freebsd-jails/</link>
      <pubDate>Wed, 07 Oct 2020 19:14:28 -0600</pubDate>
      
      <guid>https://beerdy.io/2020/10/testing-nomad-consul-with-freebsd-jails/</guid>
      <description>&lt;p&gt;For awhile now I have been meaning to evaluate
&lt;a href=&#34;https://www.nomadproject.io&#34;&gt;Nomad&lt;/a&gt;
and &lt;a href=&#34;https://www.consul.io&#34;&gt;Consul&lt;/a&gt;
for managing servers as well as batch jobs.
It has lots of features that are attractive and would make managing
services very easy using the Consul service mesh and health checks.
One of the downsides is that it takes some configuration and setup to
get it configured for maximum success, with multiple copies of the Nomad
Server and Consul Server running in each datacenter.
The other side of the coin is other solutions require setting up an
external database that will then have to be managed and monitored.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Building 32bit u-boot for the RPi3</title>
      <link>https://beerdy.io/2020/05/building-32bit-uboot-for-the-rpi3/</link>
      <pubDate>Thu, 28 May 2020 17:57:12 -0600</pubDate>
      
      <guid>https://beerdy.io/2020/05/building-32bit-uboot-for-the-rpi3/</guid>
      <description>&lt;p&gt;Previously it has not been possible to use the camera module on FreeBSD
due to the RPi tools not working on 64-bit architectures.
I have recently added a version of the
&lt;a href=&#34;https://www.freshports.org/sysutils/u-boot-rpi3-32/&#34;&gt;u-boot port&lt;/a&gt;
for the Raspberry Pi 3 that is built in 32-bit mode.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>MQTT and Graphite With mqtt2graphite</title>
      <link>https://beerdy.io/2020/05/mqtt-and-graphite-with-mqtt2graphite/</link>
      <pubDate>Fri, 22 May 2020 14:50:15 -0600</pubDate>
      
      <guid>https://beerdy.io/2020/05/mqtt-and-graphite-with-mqtt2graphite/</guid>
      <description>&lt;p&gt;For the past few years I have been operating a small number of Arduino
Ethernets with DHT22 sensors, push data into Graphite.
They have worked reasonably well, but had one major issue.
Graphite required that the data flow include the Unix Epoch time and
the Arduino time counter over flows every ~50 days.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Updated Tarsnap Backup Script</title>
      <link>https://beerdy.io/2020/05/updated-tarsnap-backup-script/</link>
      <pubDate>Tue, 05 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2020/05/updated-tarsnap-backup-script/</guid>
      <description>&lt;p&gt;For awhile I have been using a &lt;a href=&#34;https://www.tarsnap.com&#34;&gt;Tarsnap&lt;/a&gt; backup
script written by
&lt;a href=&#34;https://www.bishnet.net/tim/blog/2009/01/28/automating-tarsnap-backups/&#34;&gt;Tim Bishop&lt;/a&gt;.
It is very handy but recently I was setting up Tarsnap again on a new
machine and I noticed that it is not designed to be run more frequently
than daily.
So I decided to take a stab at making it handle being run more often
and keeping the number of daily/weekly/monthly backups that are actually
desired.&lt;/p&gt;
&lt;p&gt;Changing the delete portion to something like this should do the trick:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Running PostgreSQL in a FreeBSD Jail</title>
      <link>https://beerdy.io/2017/11/running-postgresql-in-a-freebsd-jail/</link>
      <pubDate>Tue, 07 Nov 2017 15:52:15 -0600</pubDate>
      
      <guid>https://beerdy.io/2017/11/running-postgresql-in-a-freebsd-jail/</guid>
      <description>&lt;p&gt;In the past we had to use the old SysV IPC sysctls and change the UID
that each PostgreSQL server ran as under in each Jail.
Which was annoying and error prone.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>EuroBSDCon FreeBSD DevSummit 2013</title>
      <link>https://beerdy.io/2013/12/eurobsdcon-freebsd-devsummit-2013/</link>
      <pubDate>Thu, 05 Dec 2013 00:00:00 +0000</pubDate>
      
      <guid>https://beerdy.io/2013/12/eurobsdcon-freebsd-devsummit-2013/</guid>
      <description>&lt;p&gt;For some reason I could not find any pictures online of the awesome
shirt from the EuroBSDCon 2013 DevSummit.
So here it is!&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
