RSSAmplifier

Blog

Blog on dlford.io

Recent content in Blog on dlford.io

dlford.ioRSS feed ↗38 posts

Latest posts

How to Home Lab Season 2 Part 1: Getting Started with Kubernetes


 
 How to Home Lab Season 2! 
 This series is intended to be a redux of my original How to Home Lab series, sort of a “jumping on” point for new folks to get started in 2026, but also a natural continuation of the original series. I do recommend skimming through the original series 
 if you haven’t read it, but you shouldn’t need that to follow along with…

Why Web Accessibility is so Ambiguous, and How to Navigate it


 
 Introduction 
 I would hope by now we’re all well aware of web accessibility, at least in a big picture sense, but I think we could all benefit from a deeper understanding of what it means and how it is achieved. The intent of this article is to put anyone willing on the right path to becoming an expert on web accessibility, so let’s start out by discussing why it…

dlford.io Redesign 2025 and Post-Mortem


 
 Remember Me? 
 Hey folks, it’s been a while, but I’m back with a brand new site and ready to get back to writing! Today, I want to talk openly about what happened and what I’m doing to improve. 
 In 2022 I rebuilt this site, leaving behind a bloated Gatsby build for what felt like a fresh and clean Hugo and Webpack system. I wrote five articles in 2022 and…

Hardware Hacking: MikroTik 10GbE Copper Cooling


 
 I recently set up a new NAS that supports 10GbE networking, which is great because I’ll be using it to provide some persistent storage for my Kubernetes cluster for workloads where HA is not necessary. I’ll be writing more about my NAS setup and Kubernetes cluster in the future, so be sure to check back if you’re interested in that! 
 Unfortunately, I quickly…

Building Crazy Fast Websites with Hugo and Webpack - Part 2


 
 Webpack 
 Webpack is a module bundler, we will use it to compile all of the JavaScript for a page into a single module (technically two modules, more on that later). Webpack separates the code based on how it’s used, which helps to reduce unused code and speed up page load times because the bundles are smaller, it’s also much faster to download one file than all the…

Why a Chromebook Has Replaced My Laptop


 
 Why a Chromebook? 
 Chromebooks are affordable, secure, and reasonably light weight, that makes them ideal for travel because if it gets lost, damaged, or stolen, you’ll be in a much better place than if it happened to an expensive laptop. In addition, the modern Intel i3 series processors are quite powerful. I regularly do software development work on an i3 Chromebook and it…

Full-Stack Web Authentication - Part 1


 
 Introduction 
 Welcome! Web authentication is a big topic, but this series will focus mainly on a handful of strategies that I typically utilize most. We will start simple and add on to the demo project to improve performance and security throughout the series. 
 I’ve set up a GitHub repository that you can follow along with if you’d like, I’ll keep a separate…

Building Crazy Fast Websites with Hugo and Webpack - Part 1


 
 What is Hugo 
 Hugo is a static site generator, it takes in content in the form of markdown and creates HTML pages based on templates you provide. 
 Hugo was built on the Go programming language, if you are not familiar with Go I would highly recommend reading this great series from The New Dynamic on working with data in Hugo, which will give you some great starting knowledge.…

Orchestrate Your Systems with Ansible Playbooks - How to Home Lab Part 10


 
 What is Ansible 
 Ansible is an administrative tool that aims to make server management easier by using declarative and idempotent configuration files. 
 Declarative VS Imparative 
 Declarative means you are expressing the what without the how , this makes things easier to read and make sense of. Below is a contrived example of the difference: 
 Declarative 
 
…

dlford.io Redesign 2022, and What the Future Holds


 
 Well, it’s 2022 
 My last article here was almost exactly two years ago. I’ll spare you the excuses;
I got busy, life happened, and here we are. 
 The good news is - I am back at it! 
 The New Site 
 Yep, I rebuilt the site again. Gatsby was great, don’t get me wrong, but it just
feels so heavy now. Maybe I added too many cool features, but…

How to Build a Hand Wired Split Ergonomic Keyboard with Per-Key RGB LEDs


 
 Quick side note: check out my latest keyboard, The Quokka: 
 
 GitHub - dlford/quokka: A split ortholinear keyboard designed for the small handed A split ortholinear keyboard designed for the small handed - dlford/quokka 
 Parts List ( *Affiliate links ): 
 
 Amoeba Royale 
 PCBs x36 (I ordered from JLCPCB 
 for dirt cheap) 
 Dactyl Minidox Housing 
…

Expanding Your Home Network - How to Home Lab Part 9


 
 Introduction 
 Hello again! It’s been a while since my last article but I’m still at it, hopefully, you’ve had time to acquire some hardware for your pfSense instance, in this segment we’ll be moving pfSense to the edge of your network to realize a ton of benefits that are only possible in this configuration. 
 Why? Well, if you’re still here, then…

How to Set Up Serverless Form Submissions with AWS Lambda


 
 Introduction 
 We’re going to set up two Lambda functions that send out form data via an external Email server, you could also use SES instead of the external Email server if desired . The first will handle a simple application/json post request, and the second will handle multipart/form-data requests with file attachments. 
 Getting Started 
 First, we need to…

Introduction to Docker: Installation and Usage - How to Home Lab Part 8


 
 Important note 
 I will soon be covering the process of migrating the home lab pfSense instance to serve the entire home network, so we can make better use of pfSense and make accessing VMs a lot easier. This is best done with some extra hardware for pfSense, it can be done while keeping pfSense as a VM but I don’t recommend it unless you have a cluster of Proxmox hosts to…

Cloud Native Development with Docker Desktop for Windows


 
 Introduction 
 I will explain in this article my setup for Dockerizing a Gatsby project, and a full-stack web app using NextJS, Semantic-UI, Apollo/GraphQL, ExpressJS, MongooseJS/MongoDB, and NGINX. 
 We will stand up the default Gatsby starter project, and then a quick and dirty no-frills issue tracker app with NextJS. 
 There is more than one way to peel this potato, this…

Log Management - How to Home Lab Part 7


 
 Important note 
 I will soon be covering the process of migrating the home lab pfSense instance to serve the entire home network, so we can make better use of pfSense and make accessing VMs a lot easier. This is best done with some extra hardware for pfSense, it can be done while keeping pfSense as a VM but I don’t recommend it unless you have a cluster of Proxmox hosts to…

Setting up a Remote Docker VSCode Development Server


 
 The Why 
 I recently picked up a cheap 10.1" ARM Chromebook to try out as a light-weight mobile development machine (an Asus C101PA to be specific). I had hoped for a very portable machine that I could develop on with long battery life thanks to ARM, at the cost of some extre build time that I was willing to accept. 
 The C101PA is a great machine that checked almost all the…

5 Steps to Safely Replace a Drive in a Linux ZFS Array


 
 Let’s lay out an example scenario - say we have a mirrored (RAID1) array, and I just got an Email alert from smartmontools telling me that a drive /dev/sdf is failing in my ZFS RAID 10 array. 
 
Before I configure an array, I like to make sure all drive bays are labelled with the corresponding drive's serial number, that makes this process much easier! I have a DYMO…

Hosting on the Web - How to Home Lab Part 6


 
 Get a Domain Name 
 You’re most likely going to want a domain name, unless you’re cool with saying things like “Hey, check out my website at 198.18.42.129!” You can find some free domain names out there if you look, most of them are branded (e.g. yourdomain.somecompany.com ), and the others don’t usually offer very good tooling, so if you choose one of…

How to Create an Animated Drawing Effect with SVG and React Hooks


 
 In this tutorial we will create an SVG image with an animated draw effect in React, using hooks, that will be “drawn” onto the page when scrolled into view, it will look something like the signature below. 
 [React demo not available in RSS, view on live site .] 
 SVG Image 
 You’ll need an SVG image to get started, so let’s get that created.…

Secure SSH Remote Access - How to Home Lab Part 5


 
 Preface 
 Alright, this should be the last segment in the series before we broadcast our pirate signal and hack into the Matrix go live and host to the open internet. What we are doing here is creating a dedicated endpoint for remote access, and adding a reasonable amount of security to it. This gives us remote access to an actually usable console session into other guest VMs so we…

5 Powershell Commands to Fix Most Windows 10 Problems Easily


 
 Start off by right-clicking on the start menu icon, and choosing Windows PowerShell (Admin) 
 Or use the keyboard shortcut ⌘+x, and then press a 
 System File Checker 
 First, the tried and true System File Checker, which simply checks key OS files for corruption, it is most useful after an unexpected shutdown or power loss: 
 Command Line 
 sfc /scannow 
 OS…

NGINX Reverse Proxy - How to Home Lab Part 4


 
 Preface 
 In this segment you will learn about setting up an NGINX reverse proxy, adding VM disk space, and managing NodeJS apps with pm2. I am going to set up an instance of the ‘4t’ app I put together in React, which is a 20, 20, 20 timer for eye health that I use all the time, but you are free to set up any back-end host you wish. 
 Set up a Web Endpoint 
…

7 Steps to Safely Replace a Drive in a Linux MD RAID Array


 
 Whether you have a failed drive, or want to step up to a larger set of drives, or even just want to clone a mirrored system, here is the procedure I use. 
 
Before I configure an array, I like to make sure all drive bays are labelled with the corresponding drive's serial number, that makes this process much easier! I have a DYMO LetraTag LT-100H label maker that does the job…

Host an Intranet Site with pfSense and NAT - How to Home Lab Part 3


 
 Preface 
 In this segment, you will learn how to stand up a web app using some best practices and methodologies on your Proxmox VE host. 
 Proxmox provides some really great firewall features, unfortunately they don’t offer the configuration options we need for DHCP, DNS, and NAT, so we’ll be using pfSense to handle all of those. 
 Let’s start with NAT…

3 Simple Steps to Send Email Alerts From a Linux Server


 
 In this tutorial, you will configure a Linux server to send Email through Gmail. It’s much easier than setting up a full-featured Email server and is more appropriate if all you need is to get Email alerts out from your server or application. 
 I’ve also included a quick script at the end of this tutorial 
 that will check the status of systemd periodically and send…

Introduction to Computer Networking, Binary, and Hexadecimal


 
 This article is written with the intent of providing a basic understanding of computer networking and IP addressing concepts, which require a basic understanding of binary and hex. I’ve done my best to make it easy to follow for somebody with no experience on this topic, if you have any questions please feel free to reach out to me in the comments below, or by email 
. 
…

3 Best Tips for ZFS Memory Tuning on Proxmox VE 6 and Higher


 
 I recently migrated my production system over to a fresh install on ZFS with PVE version 6 which was overall a great success, but I had to do some quick research on memory tuning to fend off the infamous OOM (Out Of Memory) killer, and that is what I’ll be sharing with you today. Ideally, I would just add enough RAM to cover all of my VM allocations plus about 50% to 55% for ZFS…

Managing Proxmox VE - How to Home Lab Part 2


 
 Preface 
 Due to the overwhelming excitement I witnessed over the first segment of this series, I’ve decided to make it continuous instead of only 6 parts, that’s just not enough to cover the journey we are on together! I’d like to thank everyone who provided feedback and constructive criticism that helped me improve the inaugural edition of the series in several…

5 Steps to Install Proxmox VE on a ZFS RAID Array


 
 In this tutorial, you will install Proxmox Virtualization Environment with the OS running on a pair of hard drives in a ZFS RAID array. 
 ZFS offers improved data integrity at the low cost of a little bit of speed, there are other pros and cons to it as well, I found this article 
 by Louwrentius to provide a nice overview of the main differences. If you’d rather still…

7 Steps to Install Proxmox VE on a UEFI MD RAID Array


 
 This configuration is a bit of a challenge in that MDRAID is not officially supported by Proxmox, and therefore is not an option in the installer. That said, I’ve never had an issue running this way. 
 Note: As of Proxmox VE version 6 there is an option to install the OS on a ZFS RAID Array, that is the recommended method for version 6 and higher. I learned about that shortly…

5 Steps to Set Up a Fast, Secure NGINX Reverse Proxy Server


 
 Update (October 6th, 2019): Added Brotli compression. 
 This guide assumes you are using Ubuntu 18.04, if you are not you will need to hunt down some package names. 
 In this tutorial, you will install NGINX with NAXSI web application firewall, and the PageSpeed and HTTP2 plugins, set up Email alerts when new versions of NGINX or NAXSI are released, and configure it as a fast…

Simple API for a Gatsby Mailing List Sign Up Form


 
 Setup 
 This article assumes you already have NodeJS, NPM, and MongoDB installed on your workstation. 
 Lets just jump right into this, pop open a command line shell and run npm install --global gatsby-cli , followed by gatsby new subscription-example , that will get you a basic Gatsby starter app all ready to go. 
 You can at this point open up the project folder in your…

Proxmox VE - How to Home Lab Part 1


 
 In this 6 part continuous series, you will set up a basic home lab capable of hosting multiple projects on the internet using free and open source software (FOSS), and work your way up to more advanced home lab systems and networking. My intent for this series is to start by getting a simple beginner-friendly system up and running, and guide readers down the path of improving and…

Home Lab Email Server: Getting around ISP Port Blocks


 
 But Why is it Blocked 
 Most ISP’s now block outbound Email ports for residential accounts. No, they aren’t just pulling some stunt trying to get you to buy up to a business account, there is a legitimate reason for this. 
 There was a time when this wasn’t the case, and ne’er-do-well’s were free to write malware that blasted spam Email all over…

Sieve: Configure Vacation Responses with Aliases and Recipient Delimiter


 
 NOTE: This guide assumes you have already set up an Email server running Postfix, Dovecot-LDA, and Sieve. There are plenty of high quality walkthroughs out there already detailing this setup, so I’ve chosen to forego those steps. It also assumes you are running a Debian-based Linux system like Ubuntu, if you are not, you may have to substitute some commands and file locations…

GPD Pocket: How to Re-install all Drivers


 
 This guide was written to assist in the re-installation of all drivers for GPD Pocket, as well as a few extra steps to get all of the hardware working correctly on Windows 10. As it stands this is a work-in-progress, and will be updated regularly until all known issues are resolved. This guide was based primarily on my own troubleshooting, but a sizeable portion of the information…

How to Make your own Custom Lighter Stickers


 
 Customized lighters are a great way to promote your band or brand 
 They’re like a business card, only more useful! Think about it, you give someone a lighter with your logo on it, they lose it at a bar or a party, or loan it to a friend or even a total stranger and never get it back, someone else ends up with it and the next thing you know they’re checking out your website or…