Posts

Featured Posts

Writing on various topics including travel, finance and technology.

Stripe Canceled My Account Today

4 minute read Updated

They accused me of using their service to sell a "controlled substance".

I received an email from Stripe today. In the letter I was told they are canceling my account:

While we hate to give you anything less than a great experience, it does seem that your business is in violation of the Stripe Services Agreement, section A.7.b (“Restricted Businesses and Activities”). Specifically we are unable to receive payments for controlled substances as mentioned here: https://stripe.com/restricted-businesses.

These regulations are firm, so we sadly have no flexibility with them. Unfortunately, you won’t be able to accept new charges on your acount, but we will continue making payouts to your bank account until you receive all of your funds.

We’re very sorry that we have to turn away your business, and wish you the best of luck moving forward. If you think you are receiving this message in error, please let us know and we will be happy to re-review your account.

Becoming a Digital Nomad in Bali

20 minute read Updated

Everything you need to know to become a Digital Nomad in Bali.

If you live in a western country chances are you’ve become a wage slave like I was before leaving a six-figure job to gain my independence. Or maybe you’ve already started freelancing and want to become a better freelancer. Whatever your reasons, becoming a Digital Nomad in Bali is not as difficult as you may think. But it takes preparation.

In this guide I will share information and resources to help you decide if Bali is right for you, describe various move considerations, explain how to actually make the move and show you what’s necessary to get settled in. I’ve also left a bonus at the end covering some of the things I learned after living here 4 years.

Self-Hosted Gitea on Vultr using K3s

13 minute read Published

Host your own Gitea server on Kubernetes with K3s and Vultr for $10/month.
Back in 2017 I decided to move my passion project After Dark off GitHub so I could have better repo usage insights. I was surprised to learn how much faster a self-hosted VCS was compared to GitHub. Not only was GitHub limiting the useful metrics I could capture they were actually slowing down my development! Which brings me back to one of if not the most important concepts I learned as a developer after watching a talk given by Paul Irish at Fluent Conf 2012.

Lens App Primer for Kubernetes with K3s

11 minute read Updated

A practical introduction to Lens with K3s and cert-manager.

Discovered a cool desktop app for managing Kubernetes clusters I want to share called Lens. In this tutorial I’m going to show you how to create a K3s cluster and use Lens metrics to introspect on the cluster. Finally we’ll use Lens to install cert-manager on your cluster for the purpose of issuing SSL certs.

Show Latest Posts on Github Profile

4 minute read Published

How not to show latest posts on a GitHub profile. An adventure in debugging JavaScript libraries and GitHub actions when happy path is not the case.

I like to blog using the blogging tool I created called After Dark. After some time away from GitHub I began self-hosting source code with Gitea. Since the Microsoft acquisition there are some cool features in GitHub which have brought me back, at least to play around a little with what’s there.

One feature is the ability to showcase latest blog posts on a GitHub profile. I learned about this trick a couple of days ago while doing Kubernetes research for a project I’m working on during my semi-permanent remote placement in Bali.

In this post we’re going to take a look at the feature and see if it’ll be useful in helping showcase my writing for others when they visit my GitHub profile.

WordPress K3s — Init Containers and Helm

11 minute read Updated

How to create a hardened WordPress installation in Kubernetes using Init Containers and Helm on MacOS.

Last week Pantheon dealt the final blow to the website I drove from 100 visitors up to 80,000 per month. By the time I heard the death knell we had a 10-day advance notice the price of hosting was increasing 1025% to $450/month.

I quickly spun up a Plesk instance on Digital Ocean and installed WordPress on a $10/month VPS but realized Plesk was too bloated for our needs and probably not going to cut the mustard in the scale department should traffic decide to climb.

After initially attempting to deploy Wordpress using the Helm chart by Bitnami via the App Marketplace in Rancher 2.5 I found the chart difficult to use, kept looking and eventually found a an alternative chart on a self-hosted VCS.

Like the Bitnami chart the independent chart includes optional database set-up. Unlike the Bitnami chart, however, the self-hosted chart also includes a Redis object cache, OpenID Connect authentication. It also builds a hardened WordPress Pod using WP CLI from scratch with Ansible inside an Init Container. And in this tutorial I’m going to show you how you install it on macOS with K3D.

K3D Load Balancing — MetalLB on Mac

8 minute read Published

How to workaround the Docker host network limitation on macOS using Kubernetes in Docker with K3s and MetalLB.

In this post I’m going to show you a neat little hack to get a bare metal load balancer called MetalLB working in K3s under Docker Desktop for Mac. Before you get started please follow the steps to set-up K3s using k3d with Rancher if this is your first time using Kubernetes. If you already have a K3D cluster running, we’ll be creating a new one for experimentation.

This hack allows Mac users running Kubernetes locally via Docker have it provide EXTERNAL-IP addresses from a pool of addresses so multiple K8s services can be run on the same port, namely 80 (http) and 443 (https), at the same time. Effectively this is a workaround for docker/for-mac/issues/155. Without this hack LoadBalancer IP addresses will show as <pending> or <none> in kubectl.

Let’s see how it works.

K8s on macOS with K3s, K3d and Rancher

12 minute read Published

How to install and run Rancher for Kubernetes on macOS using K3s and K3d.

In this post we’re going to take a quick look at how to run Rancher in a Kubernetes cluster locally on macOS for development and testing purposes. There are several different ways to run Kubernetes for local development. In this guide I’m going to focus on just one way: K3D.

K3D is a lightweight wrapper to run Rancher Labs' K3s in Docker. K3s is a certified Kubernetes distribution for edge and IoT applications with a small resource footprint and ARMv7 support. Like KiND, K3D uses a container runtime as opposed to a virtual machine — saving precious resources. Unlike KiND, K3D supports the ARM architecture and requires about 16x less RAM.

When you’re finished you’ll have a functional K3s Kubernetes cluster running on your Mac with Rancher UI for cluster management. This guide assumes you’ve never run Kubernetes before and, therefore, also serves as a practical starting point, though I won’t be going into detail about the nuts and bolts of Kubernetes.

Copy Files from Linux to macOS Desktop

3 minute read Published

Easily move files machine-to-machine using Deepin 20 and Midnight Commander.

If you need to copy files from a Linux computer to macOS desktop, this short tutorial will explain how using Arch Linux with Deepin 20 and Midnight Commander. Rather than using a Wi-Fi gateway such as a a router, we’ll connect Arch directly to macOS using the Personal Hotspot in Deepin 20 giving us an M2M connection.

Monitoring PWA Website Performance

2 minute read Updated

Monitoring the speed of your Progressive Web Apps over time.

How do you monitor website performance? Is it monitored? Do you know if your website is getting faster? Slower? Do you know when it falls below critical performance thresholds? Are you receiving automated alerts? Do you even have alerts? If not, you could be. And it won’t cost you a dime to get started.

This post is going to talk about SpeedTracker. SpeedTracker is a free tool that allows you to monitor website performance over time. Use it to visualize your page speed scores, track Lighthouse metrics, receive alerts and even create a public dashboard consisting of multiple websites for quick reference.

Hugo Ulimit macOS No Space Left

4 minute read Published

How to increase the open files limit on macOS to workaround the too many files open socket exception with Hugo.

Trying to build the Hugo site textfiles.habd.as on a 2019 MBP and kept encountering the too many open file socket exception. Hugo seemed to have completed the build but was unable to subsequently serve the files: