Build an IBM MQ Server VM with Terraform and Ansible on Proxmox

In this post I’ll walk through how I fully automated the provisioning of an IBM MQ server on my Proxmox homelab using Terraform and Ansible. With a single terraform apply, the entire stack builds itself — VM creation, OS configuration, IBM MQ installation, queue manager setup, and systemd service registration. Architecture Overview homelab02 (Terraform + Ansible host) │ │ terraform apply ▼ Proxmox API (192.168.1.14:8006) │ ├── ① Clone Ubuntu 24.04 template ├── ② Apply cloud-init (kernel params, qemu-agent) ├── ③ Wait for VM ready └── ④ Run Ansible → IBM MQ install + QM1 config Tools used: ...

May 24, 2026 · 9 min · 1823 words · Indunil Sandaruwan Thembuwana

Upgrading Proxmox VE 8 to 9: A Practical Guide

This guide documents the process of upgrading a standalone Proxmox VE 8 node to Proxmox VE 9, including every issue encountered along the way and how to resolve them. If you’re running a homelab setup on a no-subscription licence, this should map closely to your experience. Step 1: Run the Pre-Upgrade Checker Proxmox ships a built-in checker that validates your system before the upgrade. Always start here: pve8to9 Work through any FAIL or WARN items one at a time, re-running the checker after each fix until you get a clean result. ...

May 24, 2026 · 3 min · 610 words · Indunil Sandaruwan Thembuwana

Building a Custom MCP Server to Connect Gemini CLI with n8n for Workflow Automation

Introduction In this post, I’ll walk you through my journey of integrating Google’s Gemini CLI (v0.24.0) with my self-hosted n8n instance (v2.2.6) using the Model Context Protocol (MCP). While n8n provides built-in MCP support, it only exposes read-only actions. To unlock full workflow automation—creating, modifying, and deleting workflows via Gemini CLI—I built a custom Python MCP server that leverages n8n’s API. Project Overview Goal: Enable Gemini CLI to create, read, update, and delete n8n workflows programmatically. ...

January 16, 2026 · 6 min · 1109 words · Indunil Sandaruwan Thembuwana

Edge Platform on Raspberry Pi 3 Model B

🚀 Project Overview This project captures a practical, reproducible edge platform built on a Raspberry Pi 3 Model B. It demonstrates platform-oriented practices (ingress, observability, minimal workloads) while remaining lightweight enough for constrained edge hardware. TL;DR: A single-node, container-based edge platform using Docker + Traefik for ingress and Prometheus/Grafana for observability. Designed for reproducibility and learning, not for production scale. Table of contents Overview Goals Hardware & Software Quickstart (commands) Architecture Networking & Ingress (Traefik) Observability (Node Exporter, Prometheus, Grafana) Example workload (whoami) Optimization & Swap Logging & Persistence Security, TLS & Limitations Next steps References 🎯 Goals Build a production-inspired, reproducible edge platform on Raspberry Pi 3 Run and route containerized workloads using a lightweight ingress Provide minimal observability while conserving resources Document the steps so the platform can be recreated via Git/Hugo 🧰 Hardware & Software Hardware ...

December 24, 2025 · 5 min · 901 words · Indunil Sandaruwan Thembuwana

Why Indus' Homelab

Indus’ Homelab is my personal technology playground where I explore platform engineering, observability, automation, and edge computing using real hardware and real constraints.

December 23, 2025 · 1 min · 23 words · Indunil Sandaruwan Thembuwana