Digital Garden
A digital garden is a collection of evolving notes and ideas. Unlike blog posts which are polished and complete, these are living documents that grow over time. Some are fresh seedlings, others are budding, and a few have matured into evergreen references.
Passwordless Ssh Setup
Thinkcentre Static Ip Setup
How Prometheus Monitoring Works: From /proc to Dashboard
Deep dive into how metrics flow from Linux kernel to Grafana dashboards - covering node_exporter, scraping, time-series storage, and visualization
The Prometheus Config Conflict: When Ansible Playbooks Fight
How multiple Ansible playbooks overwriting the same configuration file led to monitoring jobs mysteriously disappearing
File-Based Service Discovery: Solving Prometheus Config Conflicts
How Prometheus's file-based service discovery pattern enables independent, composable monitoring configuration
Self-Healing Architecture: Building Resilient Infrastructure
How the homelab automatically recovers from failures using systemd restart policies, container health checks, and graceful degradation patterns.
Building a Tapo Smart Plug Client from Scratch
A practical guide to building your own Ruby client for controlling TP-Link Tapo P110 smart plugs, with working code examples and troubleshooting tips
Reverse Engineering the Tapo KLAP Protocol
A deep dive into how TP-Link Tapo smart devices are discovered on the network and authenticated using the KLAP protocol - covering UDP broadcast discovery, two-phase handshake authentication, and AES-128-CBC encryption
Understanding Encryption and KLAP Authentication
A beginner-friendly guide to encryption concepts from first principles, building up to understanding how Tapo's KLAP protocol works
NAS Planning: Exploring Storage Options
Evaluating options for a home NAS setup, including considerations for using a MacBook Pro without battery for 24/7 operation
Why MQTT is the Right Choice for IoT (vs. HTTP)
An architectural comparison of MQTT and HTTP, explaining why MQTT's design is superior for IoT and real-time data streaming applications.
TSI-Telemetry Application Architecture
A detailed look at the end-to-end data flow of the TSI-Telemetry project, from the in-car ESP32 cluster to the Proxmox-hosted backend.
TSI-Telemetry Backend Setup on Proxmox LXC
A concise guide detailing the deployment of Docker, TimescaleDB, and the Python MQTT bridge within Proxmox LXC containers for the TSI-Telemetry project.
What is ESP-NOW? Solving IoT Race Conditions
An explanation of the ESP-NOW protocol and how it was used in the TSI-Telemetry project to create a reliable, low-latency link between two ESP32s, separating concerns and avoiding WiFi/BLE conflicts.
Homelab v2: The Proxmox Architecture
Redesigning the homelab from the ground up with Proxmox VE to learn virtualization, platform engineering, and advanced networking.
Proxmox VM Deployment
Docker Compose deployment guide for running the TSI-Telemetry backend stack on a Proxmox virtual machine with TimescaleDB, Grafana, and MQTT bridge.
Tailscale Subnet Router Explained
How Tailscale's subnet router feature lets you access your entire home network from anywhere in the world
Homelab Networking: The Office Building Analogy
Understanding Pi-hole DNS and Tailscale remote access through a simple office building metaphor
Homelab v1: The Fundamentals (Legacy Reference)
Original homelab plan before pivoting to Proxmox - kept as reference material
Pi-hole High Availability
Strategies to handle Pi-hole outages and avoid single points of failure in your DNS setup
Raspberry Pi Static IP Setup
How to assign a permanent IP address to your Raspberry Pi for server use
SSH Authentication & Configuration
Managing SSH keys and config files for passwordless access to multiple servers
TSI-Telemetry Architecture
System architecture diagram showing ESP32, MQTT broker, TimescaleDB, and Grafana data flow
MQTT to TimescaleDB Bridge Script
A Python script that subscribes to HiveMQ Cloud MQTT broker and writes car telemetry data to TimescaleDB for storage and visualization.
C++ Primer for ESP32
A beginner-friendly guide to understanding C++ concepts used in ESP32 Arduino firmware, covering structs, classes, pointers, and Arduino-specific patterns.
ESP32 Microcontroller Basics
Overview of the ESP32 microcontroller covering specifications, power consumption, dual-core architecture, memory layout, and BLE/WiFi capabilities for IoT projects.
Grafana Dashboard Setup
Configuration guide for setting up Grafana dashboards to visualize real-time car telemetry data from TimescaleDB, including gauge panels and time series queries.
HiveMQ Cloud MQTT Broker
Setup and usage guide for HiveMQ Cloud as a managed MQTT broker, enabling ESP32 devices on mobile hotspots to communicate with home servers through the cloud.
MQTT Protocol
Understanding the lightweight publish/subscribe messaging protocol for IoT devices
TSI-Telemetry Project Overview
Real-time automotive telemetry system capturing OBD-II diagnostics from a VW Polo GT TSI
TSI-Telemetry Setup Log
Chronological development log documenting the step-by-step setup of the car telemetry system including infrastructure, ESP32 firmware, and troubleshooting.
Real-Time Data Streaming Architecture
Detailed explanation of how telemetry data flows from car ECU through ESP32, MQTT broker, and database to Grafana dashboard in near real-time.
TimescaleDB for Time-Series Telemetry
Guide to using TimescaleDB as the time-series database for storing car telemetry data, covering installation, hypertables, useful queries, and data retention.
TSI-Telemetry Troubleshooting Guide
Solutions to common issues encountered during TSI-Telemetry development including WiFi, MQTT, BLE, Grafana, and database problems.