RSSAmplifier

Blog

Shane Dowling

Recent content on Shane Dowling

shanedowling.comRSS feed ↗20 posts

Latest posts

Homelab

I used to write periodic homelab update posts but they’d go stale almost immediately. So instead, I’m just going to keep this page current. It’s the state of things as of the last updated date at the bottom. Everything is managed via a private Git repo with FluxCD handling the GitOps side of things. The Hardware It’s a 5-node K3s cluster, all sitting under my desk. A mix of…

Email to Remarkable

Email to Remarkable A Python tool that monitors an email mailbox for PDF attachments and automatically uploads them to your reMarkable cloud storage. Perfect for sending articles, documents, and papers directly to your reMarkable tablet via email. You can find it here Hopefully it’s helpful to someone!

Homelab - Day 5 - The NAS

So, it’s been a while and I have made some progress worth sharing! After keeping an eye on the auction sites for a while I ended up pulling the plug and buying 2 12TB Seagate Ironwolf drives for my NAS and now wanted to get started with setting this up. The hardware Off a recommendation from Joe at Late Night Linux I picked up a HP 290 G2 I5-8500. It comes with 8GB of RAM and a 256ssd. The…

Homelab - Day 4 - Self-Hosting Gitea

Aims Today’s goal was to deploy Gitea on my K3s cluster, ensuring that: It used persistent storage via my NAS. It was accessible externally through Traefik. It could eventually replace GitHub for my FluxCD setup. What I Did Storage and Permissions Woes Running Gitea as a stateless container worked fine initially, but as soon as I introduced persistence, things got tricky. I ran into permission…

Homelab - Day 3 - The first software deployment

Aims The goal for today was to get my first piece of software running on the cluster , ensuring that: It leveraged the NAS for storage . It was accessible externally via Traefik . The process was repeatable for future deployments. I chose the Unifi Management Console as my first self-hosted application. Once migrated, I could wipe my Raspberry Pi 4 , which was previously running the console, and…

Homelab - Day 2 - Setting Up a New K3s Control Plane and Node

After going back and forth multiple times and making plenty of mistakes, I finally managed to set up a new K3s control plane and node. It turned out to be relatively straightforward once I got the steps right, so I’m documenting this for future reference! Aims The goal was to set up a fresh K3s cluster, ensuring that: The control plane and node are configured correctly. Flux is properly…

Homelab - Day 1 - Really Ghetto Data Storage

Setting Up Storage for the Kubernetes Cluster The first step in setting up my homelab Kubernetes cluster is ensuring some reliable data storage. Right now, I have two main categories of data in mind: 1. Operationally Critical Data Needs RAID with redundancy Requires both on-site and off-site backups Approximately 1TB of data 2. Media Data Non-critical, so no backups required Several terabytes of…

Homelab Setup: The Journey to Kubernetes

Why I’m Migrating My Self-Hosted Services I’ve decided to migrate all my existing self-hosted services—and add a few new ones—to a Kubernetes (K8s) cluster that I’m going to build. There are several motivations behind this decision: Learning Kubernetes Beyond Ephemeral Clusters My role as an Engineering Manager at Syntasso involves a lot of K8s development using Kind, but these…

The Hybrid Cloud Show is Live!

Exciting news – the first episode of our podcast, the Hybrid Cloud Show , is finally here, part of the awesome Late Night Linux podcast family ! 💥 Join me and three very smart industry pros as we dive into the fascinating world of public cloud, private cloud, and everything in between. Check out our first episode here .

I'm launching a Platform Engineering Newsletter

Hello! I’m excited to share the first issue of our monthly journey through the world of platform engineering. This newsletter is all about the latest trends, insights, and resources in our field whether you’re a seasoned expert or just starting out. You can find the first month here . Each month, I’ll bring you a mix of news, case studies, upcoming events, and cool projects to…

Kindle Scribe to Mastodon

Kindle Scribe to Mastodon Over the holidays, I put together a fun little project to put out status updates on Mastodon. Of course, I used some spare time to make this as overly-engineered as possible. Stringing It All Together I wanted this to be event-driven and serverless and to give me some experience toying with Terraform in AWS. Thankfully, what would be the most computationally challenging…

Make your smartphone a little dumber

For many, MANY years, I’ve been an advocate for the simplicity of dumbphones. My go-to? The LightPhone 2. However, modern life sometimes demands the functionalities of a smartphone, such as banking or GPS navigation. Every once in a while, I wish my smartphone would be just a touch simpler, but I can’t abandon its smart features entirely. There are times I need them, especially for…

Streamlining OS Development Pipelines for the Beepberry - A Fun Challenge

Introduction Imagine a cool device that brings together an LCD screen, Raspberry Pi Zero, and a Blackberry keyboard – that’s the Beepberry! It’s designed to work like a WiFi-only keyboard phone, and one of the main goals is to reach a super-fast boot time of under 5 seconds. Sounds challenging, right? Well, to speed up the development process and test boot optimization, using QEMU to…

Harnessing the Power of NixOS for Platform Engineering

Introduction NixOS is an innovative and powerful Linux distribution built on top of the Nix package manager. Its unique approach to package and configuration management sets it apart from traditional Linux distributions, making it an excellent choice for platform engineering tasks. In this blog post, we’ll explore the benefits of using NixOS for platform engineering and provide an overview of its…

De-risk early when engineering platforms

Platform engineering encompasses a broad domain with continually evolving frontiers that require overcoming new challenges to level up the solutions offered to engineers. However, this evolution can lead to situations where previously-made assumptions may no longer be applicable to new solutions. Our team recently encountered this scenario when using AWS Stacksets across multi-account/region…

Reduce developer cognitive load with nix

Nixpkg is a package manager that uses a purely functional approach to package management, isolating packages and ensuring that there are no conflicts between them. It provides a powerful language for defining packages, which makes it easy to manage dependencies and ensure that software environments are reproducible and reliable. Additionally, Nixpkg makes it easy to manage multiple software…

Nonviolent Communication

What is Nonviolent Communication? Nonviolent Communication(NVC) helps us communicate clearly by breaking down and identifying our needs and communicating them compassionately. Why? NVC can help reduce conflict towards others and ourselves. It can also help us to hear others out and recognise each other’s needs and support acting more compassionately day to day. How At a high level, the steps…

5 Steps to a better Personal Development Plan(PDP)

Reviewing your PDP can be a somewhat overwhelming process. So many areas of improvement can be highlighted, it can be a real challenge to discover what to focus on. Not only that but you also want to make sure your areas of focus have high impact benefits to the squad, so much to think about! These 5 steps should help give you the direction needed to turn those PDP opportunities into something…

Learning Python as a Platform Engineer-First Steps

I’ve relatively recently moved into a Platform Engineering position after working in very developer oriented teams for many years. What’s interesting is that the engineers you work with have much more diverse and interesting backgrounds in terms of their experience, so there’s a real opportunity to grow and learn a lot more, as opposed to a more homogenous set of developers. With…

Populate Ansible from Amazon secrets manager

One of the ways to improve your security and avoid passing around env files is to follow the twelve factor app and start populating your secrets from the environment. Another improvement is to pull those secrets from a known secret store, with features like rotation, auditing etc. Requirements Ansible Have some secrets stored in AWS Secrets Manager Ansible should have access to the latest aws-cli…