A Static Blog with Hugo and GitHub Pages

For years now, I have operated this blog using Ghost running as a docker container. That has served me well, and it’s an excellent system, but it was time for a change. When I switched to Ghost years ago, there was little talk at that time of static site generators or free static hosting platforms. Containers were huge and cool (and still are), and it made sense to run my own ghost server....

January 31, 2024 · Joshua Marble

Adding SPICE to Your Proxmox Virtual Machine

We may finally have a worthwhile alternative to Windows RDP on Linux. Enter SPICE!

September 27, 2023 · Joshua Marble

Connecting a Serial Terminal to a Proxmox Virtual Machine

When connecting to Virtual Machines or Linux servers in general, ssh is the obvious standard in remote terminals. However, if you need to monitor boot output, connect to a machine without a working network connection, or keep a virtual machine air-gapped then a serial terminal may be just the answer you are looking for. In this article, we will explore how to setup serial terminal access to a virtual machine running on a Proxmox VE host and connect to it without the need for an ssh connection or with the limitations of the the Proxmox VNC interface....

August 20, 2023 · Joshua Marble

Growing a VMWare ESXi Disk

When working with virtual machines, it is a balance between over-provisioning and under-provisioning resources for each VM. Sometimes, a smaller disk that was fine for months or years is now not sufficient. How can you make the disk bigger without having to start all over? In this post, I will show you exactly how to expand a disk on the free version of VMWare ESXi 6.7 for a VM running Debian with ext4....

April 9, 2022 · Joshua Marble

Unleash React - Create the App

This post is part of a series on adding feature flagging to a React application using Unleash. In this post, we’re going to create the React application and hide a feature behind a feature flag. To get started, we need a sample application. Any React app will do, but we’ll just use the .NET5 template for React. Make sure you have the .NET5 SDK installed. dotnet new react -o unleash-react cd unleash-react dotnet run After it starts, go to https://localhost:5001 and see the React app running....

June 24, 2021 · Joshua Marble

Unleash React - Configuring Unleash Proxy

This post is part of a series on adding feature flagging to a React application using Unleash. To use Unleash in server-side code, all you need is the server running and one of the Unleash SDKs. However, lightweight frontend applications, like React or mobile apps, need to take a different approach to remain highly performant. This is why Unleash has developed the Unleash Proxy. It essentially acts as a client SDK to the Unleash server, allowing lightweight apps to proxy requests through it....

June 24, 2021 · Joshua Marble

Unleash React - Running the Server

This post is part of a series on adding feature flagging to a React application using Unleash. In this post, we’ll learn how to get Unleash server running in docker. To use Unleash in your application, you must have an Unleash server running. Unleash provides hosted plans, but for this series we will be running it ourselves using the docker image. This post assumes you have a docker host available and have a working understanding of docker-compose....

June 23, 2021 · Joshua Marble

Unleash React - What is Feature Flagging?

Feature flags are a powerful tool in the developer’s toolbox. Instead of releasing code in large features and risky deployment operations, new features can be developing incrementally and turned on and off in production by toggling a flag, selecting certain users, or other similar strategies. This makes the deployed code less volatile and provides an easy way to rollout and rollback code changes with less impact and risk. In this series, I am going to introduce you to feature flags and show you from start to finish how to get started with feature flagging in a React application....

June 23, 2021 · Joshua Marble

Baremetal Kubernetes Cluster - Final Thoughts

This is the conclusion of a series on creating a Kubernetes cluster. In the previous post, we deployed an application to the Kubernetes (k8s) cluster and saw everything working end-to-end. I hope you enjoyed your journey with me and learned a lot along the way. It’s been fun and challenging to create this series, and I have to say I am happy to have my cluster back up and running. I hope you find many things to host on your shiny new k8s cluster....

November 7, 2019 · Joshua Marble

Baremetal Kubernetes Cluster - Deploying An Application

This is part of a series on creating a Kubernetes cluster. In the previous post, we dove deeper into Kubernetes networking and created an Ingress Controller to make our Services accessible. In this post, we’ll be deploying an application to the Kubernetes (k8s) cluster. If you are setting up your own baremetal k8s cluster, I assume there’s a good chance that you also already run a Plex Media Server. Therefore, I thought it would fun to deploy Tautulli, a monitoring application for Plex, as the first application in the cluster....

November 7, 2019 · Joshua Marble