René Welches

TECH NOTES TO MYSELF

Expanding My Proxmox Cluster: Minisforum UM700 for $69

Adding a refurbished mini PC to my homelab cluster

The Deal of the Year

Last year I picked up a refurbished Minisforum UM700 mini PC Christmas deal, and the price was too good to pass up. Here’s what I paid:

Minisforum UM700 Refurbished

  • AMD Ryzen™ 7 3750H
  • Barebone (no RAM/storage)
  • Original price: $99.00
  • Christmas discount: -$30.00
  • Total: $75.13 USD inclduing taxes and free shipping

For ~ $75, I got a quad-core Ryzen 7 3750H (with SMT, so 8 threads) that’s perfect for expanding my Proxmox homelab.


Part 3 - Cost-Effective Blog Previews with GitHub Pages and Actions

How I save Netlify credits by using GitHub Pages for preview deployments

When I first set up my Hugo blog on Netlify, I loved the automatic deploy preview feature for pull requests. However, I quickly realized that each preview deployment consumes free tier credits (currently 300 credits/month). With frequent updates and iterations, I was burning through my monthly allowance faster than expected.

Rather than upgrading to a paid plan for something I only needed once in a while, I implemented a dual-deployment strategy: GitHub Pages for previews, Netlify for production. This approach gives me unlimited preview deployments while keeping my production site on Netlify’s excellent CDN.


Securing Proxmox API Tokens with Apple Keychain Access for Terraform

Store and retrieve Proxmox credentials securely using macOS Keychain instead of plain text files

Introduction

When working with Terraform to manage Proxmox infrastructure, you need to authenticate. Proxmox offers three options: API Token, Auth Ticket, and Username/Password.

In my setup, I use API Tokens for authentication with Proxmox. The approach described here should also work with username/password combinations.

Storing these credentials in plain text files or environment variables poses security risks, especially if you accidentally commit them to version control. macOS provides a secure solution: the Keychain Access, which encrypts and manages passwords system-wide.


Starting My Homelab Journey

Building a Proxmox-based homelab with GMKtec NucBox M5 Ultra and setting up SSL certificates

Introduction

In the beginning there were two 16 GB DDR4 RAM sticks and a 1 TB M.2 SSD that were gathering dust. After researching mini PCs, I decided to purchase the GMKtec NucBox M5 Ultra as a bare-bones system. The AMD Ryzen 7 7730U processor provides plenty of power for virtualization, and the compact form factor makes it perfect for a home lab setup. I got it on Black Friday sale for $255.89. Surprisingly, there were no import taxes added to the $255.89. The PC arrived from China after about two weeks.


Secure Home Network Access with Twingate

Alternative setup to Pi-Hole and Pi-VPN with Twingate, Home Assistant and AdGuard Home

Introduction

Today, I had a chance to try out my new Twingate setup, and I noticed that my DNS wasn’t working. In this guide, I’ll show you how to set up Twingate to access your home network resources, including how to configure DNS using AdGuard Home on Home Assistant.

In the past, I used Pi-Hole (for ad blocking/DNS) and PiVPN (with WireGuard protocol), a Google domain, and Inadyn (DDNS client) for VPN. Everything was working great until Google decided to sell their DNS business to Squarespace (not a great move, Google). To make matters worse, Squarespace doesn’t support DDNS. I was already considering switching my DNS to something like Cloudflare, but then I saw NetworkChuck promoting Twingate and decided to give it a try. And I must say, I love it.


Setting Up Python Code Formatting in Visual Studio Code

Using Black, isort, and Mypy for cleaner Python code

Setting Up Python Formatting in VS Code with Black and isort

Want to make your Python code look clean and consistent without thinking about it? This guide will show you how to configure Black, isort, and Mypy in VS Code to automatically format your code and organize imports every time you hit save.

Why Use These Tools?

Black is an opinionated Python formatter that takes care of all your formatting decisions.


Part 2 - Deploying Your Hugo Blog to Netlify

A complete guide to publishing your Hugo site from GitHub to Netlify

After building your Hugo blog locally, the next step is getting it online for the world to see. Netlify makes this process incredibly smooth with automatic deployments from GitHub. In this guide, I’ll walk you through deploying your Hugo site to Netlify, including a crucial step: creating the netlify.toml configuration file.

Why Netlify?

Netlify offers several advantages for hosting static sites like Hugo blogs:

  • Free tier with generous limits
  • Automatic deployments from Git commits
  • Built-in CDN for fast global delivery
  • HTTPS by default
  • Custom domains support
  • Deploy previews for pull requests

Prerequisites

Before we begin, make sure you have:


Part 1 - Setting Up a Hugo Blog with the Clean White Theme

A step-by-step guide to creating a Hugo blog from scratch to Deployment

Want to create a beautiful blog with Hugo? This guide will walk you through setting up a Hugo site with the Clean White theme from scratch. We’ll be using Hugo modules (the modern approach) instead of Git submodules.

Prerequisites

Before we start, make sure you have:

Step 1: Create Your GitHub Repository

First, create a new repository on GitHub for your blog. You can name it something like your-username-hugo-blog. This repository will eventually be used to deploy your blog to Netlify (or GitHub Pages).