Wildcard LetsEncrypt certificates with Traefik and Cloudflare

Wildcard certificates make it easy to secure lots of subdomains under a single domain. For example, you can secure web.example.com and mail.example.com with a single certificate for *.example.com. Fortunately, LetsEncrypt allows you to get wildcard certificates via a DNS ownership check (often called a DNS-01 challenge). Fortunately, Traefik can request a certificate from LetsEncrypt automatically and complete the challenge for you. It can publish DNS records to multiple providers, but my favorite is Cloudflare....

2021-08-16 路 4 min 路 Major Hayden

Build Fedora AWS images in GitHub Actions with Image Builder

GitHub Actions provides infrastructure for all kinds of amazing automation. Anyone can test software, build packages, deploy applications, or even publish a blog (like this one!) with a few snippets of YAML. I often use it to bundle my software in a container after testing it. 馃 One day, as I was working through another Packer configuration, I wondered if there was a way to build cloud images directly in GitHub Actions without building an instance in the cloud, making tons of changes, and snapshotting that image....

2021-08-06 路 7 min 路 Major Hayden

DHCPv6 prefix delegation with systemd-networkd

My home internet comes from Spectrum (formerly Time Warner Cable) and they offer IPv6 addresses for cable modem subscribers. One of the handy features they provide is DHCPv6 prefix delegation. If you鈥檙e not familiar with that topic, here鈥檚 a primer on how you get IPv6 addresses: SLAAC: Your machine selects an IPv6 address based on router advertisements DHCPv6: Your machine makes a DHCPv6 request (a lot like DHCP requests) and gets an address back to use DHCPv6 with prefix delegation: Your machine makes a special DHCPv6 request where you provide a hint about the size of the IPv6 network prefix you want....

2021-07-28 路 4 min 路 Major Hayden

Enable dark mode in Firefox without changing themes

Most modern web browsers, such as Firefox, take cues from the desktop environment or from themes applied to the browser to determine whether a user wants light or dark mode from websites. This is often done through the prefers-color-scheme CSS media feature: .day { background: #eee; color: black; } .night { background: #333; color: white; } @media (prefers-color-scheme: dark) { .day.dark-scheme { background: #333; color: white; } .night.dark-scheme { background: black; color: #ddd; } } @media (prefers-color-scheme: light) { ....

2021-07-19 路 2 min 路 Major Hayden

Enable touchpad tap to click in i3

One of the first things I look for on a fresh installation of a laptop is how to enable tap-to-click automatically. Most window managers and desktop environments make this easy with a control panel that has toggles or drop-down menus. However, this requires a little more effort in i3. Fortunately, there are two routes to get it enabled: in xorg鈥檚 configuration or via your i3 configuration. Via the i3 configuration The advantage of this method is that it鈥檚 easy to configure and test out quickly....

2021-07-18 路 4 min 路 Major Hayden

Tray icons in i3

The i3 window manager delivers a lot of what I like: simplicity, speed, and configurability. Some things, like tray icons, magically appear in other window managers. These items require a bit more configuration within i3 to get them set up well. In this post, I鈥檒l explain how I handle tray icons in i3. Basic configuration The tray icon configuration is within the bar configuration for i3. You control it via tray_output....

2021-07-12 路 2 min 路 Major Hayden

Persuasion engineering

Mentorship stands out as one of my favorite parts of working in technology and I鈥檝e been fortunate to be on both sides of mentoring relationships over the years. One common aspect of career growth is the ability to come up with a solution and then persuade other people to get on board with it. Not every change is a winner, but if you feel strongly that your solution will improve your product, transform your customer experience, or just make everyone鈥檚 lives a little easier, how do you convince other people to join you?...

2021-07-11 路 12 min 路 Major Hayden

Rootless container management with docker-compose and podman

Everyone has an opinion for the best way to manage containers, and there are many contenders depending on how much complexity you can handle and how much automation you require. One of my favorite ways to manage containers is docker-compose. Overview of docker-compose docker-compose uses a simple YAML syntax to explain what your desired end state should look like. The compose specification covers all of the relevant configurations for containers, volumes, networks, and more....

2021-07-09 路 4 min 路 Major Hayden

A new future for icanhazip

In the summer of 2009, I had an idea. My workdays were spent deploying tons of cloud infrastructure as Rackspace acquired Slicehost and we rushed to keep up with the constant demands for new infrastructure from our customers. Working quickly led to challenges with hardware and networking. That was a time where the I Can Has Cheeseburger meme was red hot just about everywhere. We needed a way to quickly check the public-facing IP address of lots of backend infrastructure and our customers sometimes needed that information, too....

2021-06-06 路 7 min 路 Major Hayden

Efficient emojis with rofimoji

Emojis brighten up any message or document. They also serve as excellent methods for testing whether your application handles strings appropriately. (This can be a lot of fun.) 馃き I constantly obsess with efficiency and shortening the time and effort required to get my work done. I noticed that I could type short text emoticons like :) and ;) so much faster than I could use emojis. This simply would not do....

2021-05-15 路 2 min 路 Major Hayden