Migrating Perl Projects to Kubernetes

This is the seventh post in a series on Modernizing my Personal Web Projects. I mentioned that one of the goals of this project was to revive some of my older projects that tend to get neglected and stop working. So, I went through my GitHub and found an old Perl project that would be perfect to host again. Read on for my experience with migrating Perl projects to Kubernetes. The project I chose to migrate is gin-rummy-bot, a web-based Gin rummy game and an AI opponent. I became fascinated with Gin while learning poker after coming across the story of Stu Ungar. He had an eidetic memory and won the World Series of Poker main event a record three times. His last win incredibly came sixteen years after his previous win, a feat that will almost certainly never be replicated. But he was also known for being the best Gin rummy player, which he regarded as a more skillful game than Texas Hold’Em. ...

September 13, 2021 · 3 min · Mike Cartmell

Hosting WordPress on Kubernetes

This is the sixth post in a series on Modernizing my Personal Web Projects. In this post I’ll describe my experience of hosting WordPress on Kubernetes for my personal sites. WordPress is a popular free and open-source content management system. It’s often used for blogs and e-commerce sites for its ease of use and vast plugin library. I moved to it myself for my personal blog some time ago because it takes care of all the backend parts that power the site – so I can focus on writing content. ...

September 10, 2021 · 7 min · Mike Cartmell

Setting Up a Self-Hosted Docker Registry

In my earlier post I recommended including a DigitalOcean Container Registry subscription when setting up a budget Kubernetes cluster, because it’s convenient and avoids circular dependency issues. I would still recommend that option if the Kubernetes cluster is your only internet-facing cloud host. However, I quickly outgrew the 5-repository limit of the basic plan, so I took another look at setting up a self-hosted Docker registry. As it turns out, it’s not as difficult as I thought. The trickiest part was installing the SSL certificate, since that’s a requirement for the registry. This will be my configuration: ...

September 6, 2021 · 3 min · Mike Cartmell

HTTPS Everywhere!

This is the fourth post in a series on Modernizing my Personal Web Projects. In the previous post I set up public HTTP and HTTPS access to my sites running on Kubernetes using the NGINX Ingress Controller. However, I can do better. I’ve now decided to remove HTTP access completely and use HTTPS only. It’s 2021 – who needs plain HTTP now anyway? HTTPS is the secure version of HTTP, adding a layer of encryption to protect user’s data and privacy. It’s well known that it should be used when submitting payment details online, but these days it’s become the standard whether or not payment is involved. Search engines even give a higher ranking to HTTPS-enabled sites. So why is HTTP still used? Well, historically it was expensive and complex to set up HTTPS. This has changed now though, and it’s free and far simpler to do. ...

September 4, 2021 · 5 min · Mike Cartmell

DigitalOcean Kubernetes Without a Load Balancer

This is the third post in a series on Modernizing my Personal Web Projects where I look at setting up DigitalOcean Kubernetes without a load balancer. Why You Need a Load Balancer DigitalOcean Load Balancers are a convenient managed service for distributing traffic between backend servers, and it integrates natively with their Kubernetes service. They offer a quick way to expose services to the public internet without having to use NodePort. However, managed load balancers are excessive for personal websites with low traffic, since they won’t fully utilise the performance or high-availability benefits. It also costs more, which is no good for my original goal of creating a budget Kubernetes setup! ...

August 31, 2021 · 5 min · Mike Cartmell