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....

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....

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....

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....

August 31, 2021 · 5 min · Mike Cartmell

Budget Kubernetes Hosting for Personal Use

This is the second post in a series on Modernizing my Personal Web Projects. In this post, I attempt to create a budget Kubernetes hosting setup on DigitalOcean. The goal is to provide everything I need to host my blogs and side-projects for under $50 USD. Let’s go! First Things First: Creating the Kubernetes Cluster The core part of this setup will be a managed Kubernetes cluster. I decided to use Kubernetes for its scalability and ease of deployment....

August 29, 2021 · 5 min · Mike Cartmell

Modern Web Hosting for Personal Projects

Background My personal web projects gone through various stages of web hosting. Starting with a fully hosted CompuServe page to running it on my dad’s ADSL connection. Since then I’ve been moving it back and forth between a little home server underneath my TV to a virtual machine on DigitalOcean. That’s been working well for a while, but recently I’ve been eager to try out a more modern web hosting platform for my personal projects....

August 28, 2021 · 3 min · Mike Cartmell

Thoughts on Go

Traditionally I’m a pretty late adopter of new trends, and Go has been out for something like 6 years now, so I figured it would be a good time to try it. I’ve been learning it for about 2 months; I’ve done dozens of Codility exercises, written a WebSocket server and a statusbar daemon, so I think I’ve given it a good go. My experience has been generally positive and I’ll definitely use it in future....

June 27, 2015 · 5 min · Mike Cartmell

Docker: first impressions

I’ve been wanting to try Docker ever since I saw a talk about it at Red Dot Ruby Conf. The idea of being able to build a container in development and ship it to staging, then production without any changes is extremely enticing, although I admit to being a little sceptical. Now I’ve implemented a Docker deployment process for the first time with one of my projects. Is Docker the holy grail of cloud deployment, or is it all just hype?...

November 16, 2014 · 7 min · Mike Cartmell

Automated Rails testing with Capybara and PhantomJS

Capybara is one of those tools that sounds great but is often frustrating. The claims of ‘no setup’ and ‘intuitive API’ make it sound like automating your browser testing is going to be a simple task. Unfortunately, the nature of these full-stack tests mean they’re often very tricky to get working reliably, and this has always put me off before. Testing should save you time, not create extra work. This weekend, starting on a new test suite, I decided to go about really getting a solid Capybara setup, and get a complex test passing every time without anysleep hacks....

October 26, 2014 · 5 min · Mike Cartmell