IPv6 LAN DNS Resolution With Unifi Gateways

In the previous post, we covered an opinionated and simplified overview of IPv6 and some practical considerations/annoyances for deploying IPv6 in a home network. Specifically, I wanted to address these annoyances when deploying IPv6 in my network: Note that the rest of the details in this post are written for a Unifi gateway. Network Setup…

A Brief Guide To IPv6 In Home Networks

IPv6 was supposed to take over the world a couple of decades ago but progress has been slow. Recently there was a celebration of more than 50% traffic to Google going over IPv6. While IPv4 is still dominant in most home networks, understanding IPv6 is a good exercise for someone running their home lab as…

Home Assistant SMS Alerts via Asterisk and voip.ms

In the previous post we setup inbound and outbound SMS routing through a LAN Asterisk server using a voip.ms SIP trunk. In this post we will make use of this functionality to allow a Home Assistant instance in the LAN to send notifications via SMS. The nice thing about this setup is that critical notifications…

Asterisk SMS Inbound/Outbound With voip.ms SIP Trunk

In this post, we will cover configuring a local Asterisk server to route Inbound and Outbound SMS using a voip.ms trunk. This will also cover routing inbound messages to all known clients at the time the message is received so having multiple clients (like Jami, Linphone) registered to your Asterisk server for the inbound extension…

Asterisk With voip.ms SIP trunk in Debian 12

One of my long-standing projects has been to have Asterisk running on my home network so my services have PSTN (and potentially SMS) access. In this post, I will cover the setup of Asterisk as a home lan pbx with voip.ms setup as the SIP trunk. VOIP Providers While there are many VOIP providers, I…

OpenClaw Local Only Memory Setup – Making Your Assistant Remember Better

This is the next installment in my running series on OpenClaw setup. One of the important ways in which OpenClaw setup can be a more useful personal assistant is by having more personalized and persistent memory about you, the things you care about and being able to retrieve them well based on context. The memory…

Fixing local name resolution issues in Unifi Gateways

If you use ubiquiti network gateways as your router like I do, you will run into an annoying issue – Unifi does not properly configure dnsmasq so that it acts as the authoritative source for resolving names for your lan domain. The typical symptom is a long delay before names resolve when you attempt ping/ssh…

Plex Hardware Acceleration In Proxmox Container – Update

I had posted earlier about enabling hardware acceleration for Plex in a Proxmox container. After a bunch of updates of both the proxmox host and the container + Plex, at some point the hardware acceleration stopped working. The issue I saw was the host would log a bunch of errors related to the i915 GPU…

Setting Up OpenClaw Model Providers

One of the first things you need to do after setting up OpenClaw is configure Model Providers. There are several options but these are the most common ones (and the ones that I have personally used): Comparison Of Model Providers OpenAI Codex Anthropic API Key Gemini API Key Ollama Providers

Setting Up OpenClaw

This post will cover setting up OpenClaw in a Home or Home Lab Linux environment. This is a continuation in the series of setting up OpenClaw as a personal assistant. There are different ways in which you can deploy OpenClaw for this use case: Of these, the second one is ruled out if you want…

OpenClaw For Normies

Unless you’ve been living under a rock, you’ve probably heard the term OpenClaw somewhere — in the news, from a friend, from an acquaintance. I kept hearing about it too, and about three weeks ago I finally got curious enough to start playing around with it. This is my introduction to OpenClaw and my particular…

Hosting models locally for OpenClaw

As I am exploring OpenClaw to setup a personal assistant for myself, I wanted to host some LLM capability locally. My hardware is a 3060 GPU with 12 GB VRAM. While this cannot host a good model to be the main backing AI for OpenClaw, it can still host several very capable models that can…

Setting up a mitmproxy for CLIs

Sometimes you need to understand what a CLI is doing or figure out what the request/response looks like, or why something isn’t working and you suspect an interaction that’s outside your control with a third-party server happening through the CLI. While this is not strictly just for CLIs, here’s the quick setup for mitmproxy for…

Sending mail from your Home Lab using Office 365

A long time ago, I wrote a guide for sending automated mail from Ubuntu – those were simpler times where you only needed password based auth via smtp to send mail. Well, times have changed – SMTP password based auth will get deprecated at some point even for hosted Exchange. OAuth is better than simple…

Testing A New Hard Drive

In my setup, I have tolerance for a single drive failing. Because of this, I have a cold spare drive in case of drive failures. Hard drives generally have very good Mean Time Between Failures – however, there’s the problem of infant mortality or drives that just fail very early in their life. For a…

Using the Sonos App Across VLANs

This is a continuation of the previous post where we tackled using the Kasa app with the controller (app) and devices in different VLANs. Here, we tackle Sonos, specifically Sonos S1 where the controller (app) and speakers are on different VLANs and the default firewall rule prevents communication from untrusted VLAN (where the Sonos speakers…

Local control of TP-Link Kasa switches from Kasa app across VLANs

At long last, I started taking network security a bit more seriously at home and started restricting access to the Internet to some of my dubious IoT devices. To improve the security of the home network, the first step was creating VLAN setups – I now have one trusted VLAN and one untrusted VLAN. All…

Enabling SIP over TLS on Voip.ms iOS softphone

If you use voip.ms and want to use their softphone on iOS with SIP over TLS, these are the settings that worked for me: After this, you should see your softphone registration show up as TLS on voip.ms portal and when you make/receive calls you should see the lock icon in the softphone indicating secure…

Identifying and Renaming TV Episode Files For Plex

I use Plex for managing and watching media that I own. Recently I got the boxed set of Game Of Thrones Blu-ray and wanted to put them in Plex so I could watch them on devices of my choice. Ripping them is easy enough – just use makemkv. But there were some problems in getting…

Centralized Log Collection, Querying and Visualization for a Home Network

Finally got some time to put all the pieces together for collecting logs from across my Home Network and centralizing them for analysis, visualization. The general setup is the following: In my case, I chose the following setup: Here’s a visual diagram of the system with various components and how they connect to each other….

Unifi Teleport VPN + LAN Pihole DNS Server

If you use Unifi, it has a nifty zero-config VPN that allows you to both access and route traffic via your home network called Teleport. One issue I was running into though was that for some reason, my teleport client (iOS device in this case) didn’t get any DNS resolution ability. My setup is I…

Descending into rsyslog madness

I had setup rsyslog and alloy + loki to consolidate logs from all my servers in my home network for analysis, graphing and alerting. My goal was to: After some struggle, I was able to set this up with a combination of Dynafile and RSYSLOG_SyslogProtocol23Format in the loki forward format. It mostly worked – the…

Sonos and SMB Access Denied on Debian Bookworm

So I didn’t actually face this problem for almost a year even though the change had happened before then and the reason was my container for Sonos SMB library share wasn’t rebooted in that entire time and only did when a long enough power outage recently forced shutdown of my container host as the UPS…

Running latest Home Assistant in a Proxmox Debian Bookworm 12 LXC

This is an update to my post on running Home Assistant in a Proxmox Debian LXC – the default instructions will allow you to run a 2024.10 version of Home Assistant. To run the latest version, you need later versions of Python. There’s awesome work done to backport newer python versions to Debian LTS releases…

Installing HomeAssistant on Debian 12.0 LXC in Proxmox

I haven’t set anything up in HomeAssistant yet, but I have it running and the portal is working (plus it is showing some devices, so it seems to be mostly functional). Here are the steps I took for installing HomeAssistant on Debian 12.0 LXC in Proxmox: That was pretty much all that was needed to…

Sending pihole logs to a rsyslog server

Trying to centralize logs from services that do not log to syslog is an interesting journey. In this post we will cover some basics of rsyslog and how to setup forwarding of pihole logs to a rsyslog server. Note that this covers pihole logs as of pihole 6.x. If you are using pihole 5.x these…

Configuring Grafana Alloy to Output sane labels for rsyslog entries

Finally got around to hooking up my rsyslog server that consolidates all logs across the LAN with Alloy + Loki + Grafana. The alloy configuration was stupidly annoying – it looks like the code base is moving forward while leaving the documentation a bit behind. The task was fairly simply – try to get basic…

Setting up a Caddy Reverse Proxy + Pihole DNS for your Home LAN

Now that I have a mushrooming number of services running on my home network, thanks to Proxmox and the ease of spinning up containers, it’s becoming harder to track how to reach them all. For example, pihole admin console runs on port 8080 but also requires path to be /admin. Similarly, grafana portal runs on…

Fixing Web Apps (Microsoft Edge) use Wayland Icons in KDE Plasma

Update: Fixing the file name fixes both the taskbar icon and task switcher icon. After a recent bout of updates on my Kubuntu desktop, I noticed that msedge web apps always show the Wayland Icon for the running window. This is pretty annoying – turns out the problem is a mismatch of StartupWMClass in the…

Fixing read-only access to SMB shares on iOS 18+

In iOS files app, you can connect to a SMB server over LAN and use it for storage (read and write). After an upgrade to iOS 18, it looks like Apple changed something where default settings for my samba server on Linux no longer allowed write access to the share from iOS – the share…

Script for encoding mkv files with ffmpeg – Part 2

I spent more time on this script because it turned out to be a fun exercise – here are a few things that I added: Up to this point, I could prompt AI coding assistant (Gemini) to do things – note that I had to prompt them very specifically and do this incrementally. It seemed…

Script for Video and Audio Re-encoding for Plex

I have been using Handbrake UI for re-encoding video (and audio) for my home media for Plex – the general workflow is makemkv -> handbrake. However, this becomes a little tedious with 4K HDR content that takes a while to re-encode. Additionally, I was not happy with the audio gain options in Handbrake as I…

NeoVim – Editing remote files as root when required

This is kind of an esoteric niche thing – but if you face this issue, I think this is a nice tool to have. My scenario is the following: I have several servers on my home LAN and I mostly work on them from my main desktop. Currently, my workflow is SSH into them and…

Minimizing password re-entry across terminal sessions for sudo

Warning: This is not something you should do in environments that care about security a lot – the default settings that do not allow this behavior is more secure and you should stick with that in such cases. In my home network, one annoyance is executing a command as root using sudo (my setup is…

NeoVim – Copying to the System Clipboard in KDE

Decided to teach myself some new tricks (moving to zsh from bash and neovim from vim) as a hobby. My main reason to stick with the basic bash and vim is that this is what is available by default and you can rely on by default in most environments, including those that you are unfamiliar…

Shrinking the size of a Proxmox Container’s Root Volume

The easiest way to shrink the size of a Proxmox container’s root volume is to backup the container and restore it to a new container with the updated volume size. The following sequence of operations will do this – please be careful and make sure to take full backups as some of these steps will…

Never do business with voipo.com

Update: voipo.com went out of business roughly a month after I posted this. Apparently, they did this wholesale to a lot of customers. Are you thinking of getting VOIP service? If so, I have an extremely strong disrecommendation for voipo.com. Do not do business with them no matter what you hear from them or elsewhere…

Ansible – Storing and Using Machine specific passwords

Now that I am separating my services into containers or even VMs, I have enough servers running that setting them all up for something new (like centralized log collection through syslog or updating their postfix configuration to point to a central mail relay) is becoming tedious to do manually or with ad-hoc scripts. Enter Ansible…

Proxmox Container – Bind Mount with ID Mapping

One slightly tricky thing with proxmox (at least to me), is getting things right with bind mounts and id mapping from host to container. This is a brief overview of the basics and how to set this up so it works correctly: Background is that a proxmox container UID and GID space starts from 100000…

On-Demand 8bitdo Controller Passthru to VMs in Linux

I am using a Windows VM for my gaming fix while having Linux as the host OS for my desktop. For gaming, I got a 8bitdo controller that can connect through both bluetooth and USB with a provided USB dongle. This is nice because I can use the bluetooth connection with Linux for native Linux…

Configuring a postfix mail relay server for the home network

As I split my network services into containers in a proxmox environment, an important service is being able to send email out to the Internet to my real email address from my home network devices and servers for automated alerts and regular actions that I care about. In the past, I just setup postfix with…

Multiple VLANs on single Physical Interface in Linux

You may want to expose a Linux machine/server in your home to multiple VLANs to provide each VLAN with different services or allow access to that VLAN from the machine without having to go through the router. Here are ways in which you can do that on a machine with a single physical interface.

A practical guide to VLANs in an existing home network

VLANs can be quite confusing but are a powerful concept to help improve isolation, security and creating network topologies that are not limited by physical constraints. VLAN stands for Virtual LAN and as the term implies, we create virtual LANs or broadcast domains. If there is one important thing to keep remembering as you explore…

Monitoring and Visualization Options for OpenWRT

As I am working through setting up my OpenWRT router, one of the things I am interested in is better monitoring and visualizations of monitored data from the router itself. This post is about some of the options for doing this: In general, the problem can be broken down into different pieces: Further, we also…

Proxmox Useful Commands

Some useful commands for Proxmox container management: Mount the filesystem of a container that is not running (if you mess something up where booting the container will create problems in your network for example – not that I would have any experience with this 😉 )

Using hardware acceleration in a Proxmox Plex container

Finally got around to fixing hardware acceleration on the plex container running in my proxmox server. These instructions work for Proxmox 8 and plex running in an unprivileged lxc container on debian (distribution should not matter, but I’m using Debian in the container). To make hardware acceleration work, we need to accomplish two things: For…

Splitting and Joining MP3 files from the command line

A couple of great utilities to split and join MP3 files from the command-line in Linux that are quite handy when you want to split a recording into tracks. mp3splt – a great stand-alone utility that can split an MP3 file into multiple tracks. Some of the things you can do: sox – a great…

Linking Audio Input and Output from Applications with Pipewire pw-link

If you are recording audio output from an application, one challenge is that recording the default output can mean you record all the sounds that are produced by all applications. In Linux, you can use pipewire command-line utility pw-link to create a dedicated and isolated link between the application producing the audio output and the…

Amazon Music on Linux

Amazon Music does not have a desktop client for Linux. The web application works fine but is restricted to SD only. After rooting about a bit, I found that using bottles gets you an easy working install of the Amazon Music Windows application on Linux that allows you to play HD and UltraHD tracks. Download…

Installing OpenWRT As A ProxMox VM

Finally decided to take network security at home a bit more seriously and put all my Internet-of-Shit devices into a contained network that I can monitor, control and isolate better. I am still in the process of setting this up and toying with both OpnSense and OpenWRT. My current plan is to run either one…

Libredrive and Viewing UHD/4K Bluray discs in Linux

I have an old Bluray internal drive that does not support UHD/4k (hardware limitation – this drive predates UHD/4K availability in consumer devices). To be able to view them on my machines, I ended up purchasing an AmazonBasics external UHD/4k capable drive. This drive turns out to be a rebadged LG BP60NB10. While the drive…

VFIO NVidia GPU Passthrough with Host Access

This is a write up of what I needed to do to enable passthru of NVidia discrete GPU with host access to the dGPU. System: What I want to be able to do: Apart from following the guides from my previous post, the NVidia proprietary drivers + X11 + Kernel Mode Setting combine to make…

Proxmox – Fixing your database after a host name change

I recently built a new home server (post about this later) and as part of this reboot decided to setup proxmox and utilize containers for improving security and isolation for different services hosted in my home server. Everything has worked quite well (another post about this later) but because I wanted to keep my old…

Remote Access of Linux KDE Desktop – Don’t waste your time with VNC

I am setting up a new home server and before I install final headless software, I am doing burn in tests where I am using a desktop install (Kubuntu specifically). I wanted to set up remote access for the desktop. Played with different VNC servers and clients and experienced terrible latency issues on a multi-gigabit…

Starting imwheel automatically on login

This was way more annoying than it should have been – I am using imwheel to increase scroll speed and wanted to set up my Manjaro 5.15 KDE environment so that it starts automatically at startup. The following things did not work: Setting up an autostart shortcut to imwheel Setting up a login script for…

Installing .deb packages in Manjaro

You should in general prefer to install from the official Manjaro or AUR repos whenever possible. But in the rare case (cough Microsoft Edge cough) where this is not possible, here are a sequence of steps you can follow to install a .deb package in Manjaro (and other Arch based distros) You need to install…

Enabling Touchpad Gestures in Manjaro

This is the set of steps you need to take to enable complex touchpad gestures in Manjaro (KDE, but should work for other desktop environments as well). By default, single and double finger gestures should work and are configurable in the default touchpad configuration settings. However, three finger and other gestures are not available by…

A Technical Guide To Setting Up Your Website

So you want to host your own web site instead of taking the easy route out with Medium, WordPress and other providers for simple blogs like these – there are a few things you need to set up. This brief guide will help you understand the different pieces to set up and providers you can…

Keeweb self-hosting + Cloudflare

I had set up keeweb self-hosting and also had cloudflare enabled on the domain that was doing the self-hosting. Everything was working fine until a few days ago when the self-hosted domain simply showed an empty page. Devtools console revealed that the issue was a problem with content security policy in keeweb (does not allow…

Sonos and Ubuntu 20.04 Samba

After the recent upgrade of my home server to Ubuntu 20.04, Sonos was again having trouble accessing the SMB shared folder for my music library. Turns out that the newer version of Samba in Ubuntu 20.04 turns off SMBv1 by default. Simply adding server min protocol = NT1 to /etc/samba/smb.conf and systemctl restart smbd fixed…

State of Network configuration in Ubuntu 20.04 Server + PiHole

I finally upgraded my headless home server that was running Ubuntu 18.04 to 20.04 – I only run long-term support releases (LTS) builds as this is my main home server with functionality that we all depend on for managing our data and household digital storage. I used do-release-upgrade to do the upgrade. Overall, it was…

Fixing CUPS printer not working after an update on Manjaro

I ran a bunch of updates on my Manjaro Linux laptop and noticed that printing from the laptop stopped working – this is the same setup where I was happy with how easy the setup was to print wirelessly to my MP620. The issue turns out to be the update doesn’t automatically update CUPS configuration…

APCUPSD Configuration Issue in Ubuntu 18.04

As part of my home network setup, I have an APC UPS (XS 1500 LCD if you’re curious). I have the UPS monitoring cable hooked up to my Ubuntu home server and run apcupsd to monitor and control the UPS behavior. After I upgraded to Ubuntu 18.04, I didn’t pay attention to the UPS setup…

AmplifiHD – what my home network runs on

For the past 10 years, I was running a somewhat complicated but stable setup for my home network. It consisted of two routers – both running DD-WRT, one in bridge mode but acting as a wireless access point and the other being my main router connected to my cable modem. The wireless AP had its…