This is my home page

Thank you for venturing into my corner of The Internet, to read my stories of engineering and technology, and explore the projects I’ve created and am in the process of creating. I primarily focus on home automation, homelab, and virtualization, but also enjoy building and making things. Feel free to browse the blog for regular updates, project pages for long term project descriptions, and my Youtube and Twitch channels for video content and casual relaxation. I hope you enjoy your journey along the way!

A $9 Introduction to the RISC-V Future of Computing

Is RISC-V the future of computing? I sure hope so. So I tracked down one of the cheapest Linux-capable SBCs that supports this architecture, the Milk-V Duo. For a retail price of $9, this little guy offers a RV64 Linux environment complete with busybox, Ethernet, and a wide assortment of IO rivaling some microcontrollers. Today I’m going to steup the board and start learning about RISC-V computing! Fundamentally, the RISC-V architecture is a document which describes the binary machine lanuage of a 32, 64, or 128 bit processor with integer and optional floating point support, but it’s also symbolic of the shift to open computing for the future, and as a computer engineer I’m excited to learn more about it.
read more →

Packet Capture in Proxmox

When you’re troubleshooting network issues, it’s often extremely helpful to view and analyze packet captures. The de-facto tool for this is the open-source Wireshark, which has an extensive protocol decoding capability. So, as a Proxmox user, it would be nice to be able to analyze VM networking issues using Wireshark. Unfortunately for us, Wireshark is a graphical application and Proxmox’s web UI doesn’t support it. However, we can use the command-line tool tcpdump to create a pcap file, and then analyze that file in Wireshark.
read more →

REALLY Persistent Ethernet Interfaces on Linux

So Linux has adopted Persistent Device Naming, which is a really great thing for most systems. Unlike the old days where we just had eth0 and eth1 and eth2 etc (which at least has no spaces unlike Local Area Connection 6 that another OS uses), whose order depended on driver initialization in the kernel. Most people just had eth0 and were happy, and most people will still just have one Ethernet interface and will still be happy.
read more →

Migrating my PERSONAL SERVER from TrueNAS to Proxmox

Today I’m taking my 10 servers and hopefully working that list down to just 7! JUST SEVEN! So, driven by my desire to consolidate my critical services into one box so I can lab away with the rest of the boxes, I am taking the time to shut down some of the most critical servers in the house and re-home them, then disassemble the parts for the next project. Come along with me on this adventure!
read more →

Mellanox NICs with VLAN-Aware Bridges on Linux

A Discord member of mine came to me with an interesting problem - enbling the VLAN-aware bridge in Proxmox would cause all network traffic on the physical card to stop, entirely. Definitely a frustrating issue, especially since the kernel logs made no sense. The Problem Here’s what he sent from dmesg: [ 32.732509] mlx5_core 0000:19:00.1: mlx5e_vport_context_update_vlans:179:(pid 13470): netdev vlans list size (4080) > (512) max vport list size, some vlans will be dropped [ 32.
read more →

Gitea: Easy Self-Hosted Git Repositories!

Contents Video Installation Configure HTTPS Self-Signed Configure HTTPS Let’s Encrypt Video Installation I’m using an LXC container in Proxmox running Debian 12. You’re free to use any other Debian 12 system, and the instructions should still work. It’s not particularly resource intensive, but you can monitor it to see if you need to increase the RAM/CPU allocations. I also added a second mount point to /var/lib/gitea, which is where all of the Gitea data will be stored.
read more →

Should I use TAPE BACKUP in 2023? LTO-5 Drive with Proxmox Backup Server

As promised in a previous video about my Proxmox Backup Server, I have a Quantum LTO-5 tape drive that I’m going to try and use to implement a proper 3-tier backup strategy with offsite tapes. I’m currently using Linode’s object storage for backing up my personal data (~200G), and not backing up the video files outside of the two existing copies (on the storage server and the PBS server). With the affordability of tapes, I can keep the video files and personal data off-site reliably.
read more →

MOVING My Website from Static Hosting to Caddy!

I’ve been using Linode’s object hosting for my website for ~2 years now, and it’s time for a change. I’m not unhappy with Linode, but object hosting isn’t for me any more and I’d like to move up to a virtual private server. Object hosting is a fantastic way to get started with a static website for a low cost, but I want better backend analytics and more control of the whole process, so I’m setting up my own VPS using Caddy.
read more →

Layer 4 vs Layer 7 Reverse Proxies: Using HAProxy to front Web Services (for IPv4 to v6 Transition)

A common challenge in web design and network architecture is grouping multiple web services in a single host, or behind a single IP address. This is especially true with IPv4 due to the scarcity of addresses. The solution to this is a reverse proxy or load balancer. Essentially, this takes connections from clients and dispatches them to the correct server based on the domain name or URL in the request. In this video, I’m going to explain what a layer 4 or layer 7 load balancer even is, and setup a layer 4 example using HAProxy.
read more →

The Power of Zero-Trust Architecture: Building a Secure Internal Network with Nebula

Imagine if we could establish a level of trust that in our network, we can verify with certainty that a computer really is who it says it is. By bringing mutual authentication and trust into networking, we can better make security decisions on when connections should be allowed. This can enable our services to talk to each other securely over the global internet, and reduce the dependence on a a trusted perimeter.
read more →