writer@homelab:~$ ls ./blog --sort=recent

The blog

Every post — deep dives, debugging stories, and build logs from the homelab. Search by keyword or filter by topic.

// 25 posts
From Manual Deploys to GitOps: How I Automated my Homelab with ArgoCD and GitLab CI
kubernetes·7 min·JUN 19 2026

From Manual Deploys to GitOps: How I Automated my Homelab with ArgoCD and GitLab CI

I got tired of SSH-ing into servers every time I needed to deploy a simple app. So I spent an evening setting up GitLab CI, ArgoCD, and a GitOps workflow in my homelab. Here's what worked, what broke, and what I learned along the way.

read.md
How I Exposed My Kubernetes Homelab to the Internet Using Cloudflare Tunnel
kubernetes·5 min·MAY 12 2026

How I Exposed My Kubernetes Homelab to the Internet Using Cloudflare Tunnel

I wanted production-style ingress for my k3s homelab without exposing ports or my public IP. What looked simple turned into debugging Route 53 nameservers, Kubernetes DNS resolution, and mysterious Cloudflare 502s before everything finally worked.

read.md
Why One Node Pulled and the Other Didn't: Debugging an ECR Image Pull Failure in Kubernetes Homelab
kubernetes·5 min·APR 19 2026

Why One Node Pulled and the Other Didn't: Debugging an ECR Image Pull Failure in Kubernetes Homelab

How to troubleshoot and pull images from Amazon Elastic Container Registry (ECR) into your Kubernetes

read.md
How I Installed Portainer on My Kubernetes Homelab (Running on Proxmox)
kubernetes·3 min·MAR 11 2026

How I Installed Portainer on My Kubernetes Homelab (Running on Proxmox)

A step-by-step guide to installing Portainer on a Kubernetes (k3s) homelab running on Proxmox. Covers Helm setup, fixing cluster reachability errors, resolving the security timeout, and accessing the Portainer UI.

read.md
How I Installed Kubernetes on My Homelab (Using k3s on Proxmox + Ubuntu)
kubernetes·5 min·MAR 05 2026

How I Installed Kubernetes on My Homelab (Using k3s on Proxmox + Ubuntu)

I built a Kubernetes cluster in my homelab using k3s on an Ubuntu VM running inside Proxmox. This guide walks through the full setup process, from server preparation to adding worker nodes.

read.md
I Built a Docker-Native Database Admin UI in Rust. Here’s Why.
Docker·5 min·FEB 17 2026

I Built a Docker-Native Database Admin UI in Rust. Here’s Why.

DockAdmin is a lightweight, modern database admin UI that runs as a Docker container. It supports PostgreSQL, MySQL, and SQLite. The entire image is ~15MB.

read.md
How to Install and Connect to MySQL on your Linux VM
Linux·3 min·APR 14 2025

How to Install and Connect to MySQL on your Linux VM

A step-by-step guide to installing MySQL on a Linux VM, securing it, and setting up remote access using a database client.

read.md
Now that you've installed Linux VM, what's next?
Linux·4 min·APR 07 2025

Now that you've installed Linux VM, what's next?

Just installed a Linux VM and wondering what to do next? This guide walks you through everything you need to get your VM production-ready—from adding secure users and setting up SSH keys, to configuring firewalls, port forwarding, and even running your first Nginx web server.

read.md
How to add real-time support to your Flutter application
flutter·7 min·FEB 03 2025

How to add real-time support to your Flutter application

This post discusses how to add real-time support to your Flutter app using Appwrite. It explains what real-time means, what to consider, and where it is used. You'll also learn how to integrate Appwrite to enable live updates and improve the overall experience of your app.

read.md
Build APIs faster with Go and Appwrite
Golang·6 min·DEC 10 2024

Build APIs faster with Go and Appwrite

This post discusses how to quickly build REST APIs with the Appwrite Go SDK, eliminating the need to manually configure headers for API keys and project IDs, switch URLs for different endpoints, handle requests, and convert responses to JSON.

read.md
Rust Workspaces: A guide to managing your code better
rust·6 min·AUG 06 2024

Rust Workspaces: A guide to managing your code better

In this guide, you will learn what Rust workspaces are, their benefits, and a practical guide on how to build a REST API using Rust workspaces.

read.md
How to implement hot reloading in a Go application
Golang·3 min·APR 25 2024

How to implement hot reloading in a Go application

This guide will explore what hot reloading is and why it is needed. It will also explore two libraries to help build hot reloading into your applications.

read.md
How to build a fullstack application with Go, Templ, and HTMX
Golang·7 min·APR 23 2024

How to build a fullstack application with Go, Templ, and HTMX

In this guide, you’ll learn how to build a fullstack application with Go using Templ, HTMX, and Xata.

read.md
Xata + Flutter: A getting started guide.
flutter·10 min·FEB 05 2024

Xata + Flutter: A getting started guide.

This post discusses what Xata is and provides a detailed step-by-step guide to using it to build a basic project management application with Flutter

read.md
Xata + Go: A getting started guide.
Golang·8 min·FEB 05 2024

Xata + Go: A getting started guide.

This post discusses what Xata is and provides a detailed step-by-step guide to using it to build a project management API in Go.

read.md
Xata + Rust: A getting started guide.
rust·7 min·FEB 05 2024

Xata + Rust: A getting started guide.

This post discussed what Xata is and provided a detailed step-by-step guide to use it to build a project management API in Rust.

read.md
Getting started with Nuxt Server Handlers
frontend·8 min·JAN 03 2024

Getting started with Nuxt Server Handlers

This post describes what Nuxt’s Server Handlers are and how to use them to create a todo application using the Xata serverless database platform.

read.md
Getting started with Next.js 14 Server Actions
frontend·7 min·JAN 03 2024

Getting started with Next.js 14 Server Actions

This post describes what Next.js's Server Actions are and how to use them to create a todo application using the Xata serverless database platform.

read.md
Appwrite + Go: Build APIs without technical overhead
Golang·9 min·AUG 18 2023

Appwrite + Go: Build APIs without technical overhead

Learn how to abstract technical overhead by leveraging Appwrite to build a project management API in Go

read.md
Appwrite + Rust: Build APIs without technical overhead
rust·8 min·AUG 18 2023

Appwrite + Rust: Build APIs without technical overhead

Learn how to abstract technical overhead by leveraging Appwrite to build a project management API in Rust

read.md
Getting started with gRPC in Golang
gRPC·8 min·MAY 23 2023

Getting started with gRPC in Golang

gRPC is a modern communication framework that can run in any environment and helps connect services efficiently. This post explores what gRPC is and how to get started by building a user management service using gRPC, MongoDB and Golang.

read.md
Getting started with gRPC in Rust
gRPC·8 min·MAY 23 2023

Getting started with gRPC in Rust

gRPC is a modern communication framework that can run in any environment and helps connect services efficiently. This post explores what gRPC is and how to get started by building a user management service using gRPC, MongoDB and Rust.

read.md
Beyond Composability: Using Uniform as an Internal Tool
flutter·8 min·APR 17 2023

Beyond Composability: Using Uniform as an Internal Tool

Explore what Internal Tool is and how to leverage Uniform as an Internal tool to build a News timeline application in Flutter.

read.md
Going fullstack with Flutter and MongoDB Atlas Data API
flutter·10 min·MAR 28 2023

Going fullstack with Flutter and MongoDB Atlas Data API

Learn how to use MongoDB Data API and Flutter to build a mobile fullstack application.

read.md
Build a product delivery page with Rust and Uniform
rust·9 min·MAR 05 2023

Build a product delivery page with Rust and Uniform

Learn how to build a product delivery page using Cloudinary for media optimization, Uniform for composing experience, and Yew; a Rust-based frontend framework for rendering the product markup.

read.md