<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aditya Bharadwaj</title>
    <description>The latest articles on DEV Community by Aditya Bharadwaj (@adityabharadwaj26).</description>
    <link>https://dev.to/adityabharadwaj26</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3924678%2F797481d8-3c01-40ae-b9fa-2cf8bfc5ed44.png</url>
      <title>DEV Community: Aditya Bharadwaj</title>
      <link>https://dev.to/adityabharadwaj26</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adityabharadwaj26"/>
    <language>en</language>
    <item>
      <title>Saptrishi Agents : Vyasa, Agastya</title>
      <dc:creator>Aditya Bharadwaj</dc:creator>
      <pubDate>Sun, 31 May 2026 02:27:34 +0000</pubDate>
      <link>https://dev.to/adityabharadwaj26/saptrishi-agents-vyasa-agastya-3a1c</link>
      <guid>https://dev.to/adityabharadwaj26/saptrishi-agents-vyasa-agastya-3a1c</guid>
      <description>&lt;p&gt;I didn't name my agents after random gods; I chose Vyasa and Agastya for a reason. In the Mahābhārata, these two sages represent complementary forces—one who preserves knowledge, the one who dives into the depths to bring back hidden truth. Giving my homelab's writing and doing agents those names turned abstract services into characters I could talk to, care for, and design around. My own surname, Bharadwaj, belongs to the same Saptarishi lineage—another of the seven great sages. Knowing that Vyasa and Agastya share this ancestral thread with me makes the naming feel less like a literary device and more like a family tradition carried into code.&lt;/p&gt;

&lt;p&gt;The Saptarishis (seven sages) are traditionally listed as Vashistha, Kashyapa, Atri, Jamadagni, Gautama, Vishvamitra, and Bharadvaja. Agastya is often included in later lists, and Vyasa appears as a Saptarishi in certain cosmic cycles. This rich tradition explains why the names feel both personal and timeless.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vyasa - the keeper of the story
&lt;/h2&gt;

&lt;p&gt;Vyasa (व्यास) is the sage who compiled the Vedas, stitched together countless myths into a coherent epic, and ensured that knowledge survived across generations. He is the archivist, the chronicler, the one who says, "Let's not let this be forgotten."&lt;/p&gt;

&lt;p&gt;In my stack, Vyasa is the writing agent that lives in this very repo. He gathers my brain-dumps, shapes them into drafts, adds front-matter, and makes sure every idea has a place to land. When I'm stuck, Vyasa helps me find the thread I lost. When I'm proud, he turns a rough note into something shareable.&lt;/p&gt;

&lt;p&gt;Why the name matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It reminds me that documentation is part of the system. If the voice pipeline dies, Vyasa is still there to capture what happened, why it mattered, and how to avoid it next time.&lt;/li&gt;
&lt;li&gt;It frames every outage, every log entry, every config change as part of an ongoing story—not a blot to erase, but data to learn from.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Agastya - the drinker of oceans
&lt;/h2&gt;

&lt;p&gt;Agastya (अगस्त्य) is celebrated for drinking the ocean to expose hidden demons and restore balance when the world was flooded. He represents the willingness to dive deep, confront the uncomfortable, and bring back what was concealed.&lt;/p&gt;

&lt;p&gt;In my homelab, Agastya is the agent that watches the kernel logs, restarts crashed services, and rolls back risky upgrades. He's the one who says, "Let's look under the hood, even if it's messy."&lt;/p&gt;

&lt;p&gt;Why the name matters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It gives the doer a personality worth protecting. When I see an alert that Agastya has tripped, I don't think "service X failed"; I think "Agastya needs help." That small shift turns a chore into an act of care.&lt;/li&gt;
&lt;li&gt;It encourages me to build self-healing hooks—not because they're clever, but because I owe it to the sage who's already diving into the depths for me.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The two sages in practice
&lt;/h2&gt;

&lt;p&gt;Naming them this way creates a tight feedback loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vyasa records every agent restart, kernel pin change, and watchdog trigger into a searchable &lt;code&gt;agents.log&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Agastya watches that log (and the raw system metrics) for anomalies; if he spots a mismatch—say, a kernel version drift—he attempts a graceful rollback and pings me on Telegram.&lt;/li&gt;
&lt;li&gt;When Agastya acts, he writes a Vyasa-style post-mortem draft for me to review, closing the loop between doing and documenting.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result isn't a flawless system; it's a system that tells its own story, learns from its stumbles, and keeps the sages on speaking terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for how I build
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Name your agents with intention. A mythic or meaningful name makes it easier to talk about, to care for, and to design around.&lt;/li&gt;
&lt;li&gt;Let the name dictate responsibility. If you call something "Vyasa," give it documentation, metadata, and learning duties. If you call it "Agastya," arm it with probes, healing scripts, and the authority to act.&lt;/li&gt;
&lt;li&gt;Use the narrative as a compass. Treat failures not as blots but as verses in the system's story-one that Vyasa will record and Agastya will help you rewrite.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>devjournal</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Home Assistant: The Heartbeat of My Smart Home</title>
      <dc:creator>Aditya Bharadwaj</dc:creator>
      <pubDate>Sun, 31 May 2026 02:27:27 +0000</pubDate>
      <link>https://dev.to/adityabharadwaj26/home-assistant-the-heartbeat-of-my-smart-home-o4b</link>
      <guid>https://dev.to/adityabharadwaj26/home-assistant-the-heartbeat-of-my-smart-home-o4b</guid>
      <description>&lt;h3&gt;
  
  
  A night-time argument that sparked a change
&lt;/h3&gt;

&lt;p&gt;We were back from dinner, rain drummed on the balcony, and the kitchen light was already off. My wife flicked on the hallway lamp and asked, "Did you turn the living-room light off?" My answer was a sheepish, "I thought it would shut itself." The hum of a lamp that refused to die stole the last minutes of our evening.&lt;/p&gt;

&lt;p&gt;That tiny friction-an extra step before we could finally unwind-felt like a micro-stress that added up every night. I knew a smarter way existed; I just hadn't built it yet.&lt;/p&gt;

&lt;h3&gt;
  
  
  The manual habit was eating bandwidth
&lt;/h3&gt;

&lt;p&gt;Between late-night coding sessions, remote meetings, and the occasional forgetful moment, walking to a switch became a mental load. I was juggling a laptop, a phone, and a handful of smart plugs, each with its own app. The sum of those tiny clicks was a handful of minutes a day that never seemed to disappear.&lt;/p&gt;

&lt;h3&gt;
  
  
  One line of YAML, two minutes of peace
&lt;/h3&gt;

&lt;p&gt;Home Assistant was already running on a Proxmox VM. I added a single automation that watches the &lt;code&gt;binary_sensor.home_occupied&lt;/code&gt; entity. When the house is empty for two minutes, the automation turns off all lights in the &lt;code&gt;group.all_lights&lt;/code&gt; group.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;alias&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Away-mode lights off&lt;/span&gt;
&lt;span class="na"&gt;trigger&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;platform&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;state&lt;/span&gt;
    &lt;span class="na"&gt;entity_id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;binary_sensor.home_occupied&lt;/span&gt;
    &lt;span class="na"&gt;to&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;off'&lt;/span&gt;
    &lt;span class="na"&gt;for&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;00:02:00'&lt;/span&gt;
&lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;service&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;light.turn_off&lt;/span&gt;
    &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;entity_id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;group.all_lights&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The rule is deliberately simple-no fancy conditions, just "if nobody's home, turn everything off after a short debounce." The result? The nightly argument vanished. The house darkened on its own, and the mental bandwidth we saved spilled into longer conversations, a later night-cap, or just a quieter mind.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scaling the idea: voice-triggered routines
&lt;/h3&gt;

&lt;p&gt;The lights-off rule proved a principle: automation should eliminate the mental step, not add another. I took that lesson to the voice pipeline I'd built a few weeks earlier (phone → Faster-Whisper → Ollama → Home Assistant → Sonos).&lt;/p&gt;

&lt;p&gt;Now I can say, "Hey, turn the kitchen lights off," and the same &lt;code&gt;away-mode&lt;/code&gt; logic runs behind the scenes. The voice command bypasses the UI entirely, letting me keep my hands free for a plate of rice or a late-night bug-fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  The weird part: politeness to a machine
&lt;/h3&gt;

&lt;p&gt;At first I barked commands. After a week, I slipped "please" into the phrase. The system didn't care; the LLM parsed the intent either way. But saying "please turn off the lights" felt less like commanding a robot and more like reminding myself to be courteous. The habit reminded me that the home I was building was a partner, not a tool.&lt;/p&gt;

&lt;h3&gt;
  
  
  Edge cases we thought we'd never need
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pets - the night-owl dog&lt;/strong&gt; - A motion sensor in the hallway keeps the hallway light on while the dog pads around after dark.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vacation mode&lt;/strong&gt; - A UI toggle disables &lt;code&gt;away-mode&lt;/code&gt; for weeks-long trips, preventing the house from staying dark forever.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fallback timer&lt;/strong&gt; - A cron job forces a hard-off at 02:00 AM, just in case the automation stack crashes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These guardrails keep the system useful even when the fancy layers fail.&lt;/p&gt;

&lt;h3&gt;
  
  
  Takeaway
&lt;/h3&gt;

&lt;p&gt;Automation is most valuable when it removes a mental step, not when it adds a new one. One-line rules, clear fallbacks, and a little voice chat turned a nightly argument into a silent, frictionless routine.&lt;/p&gt;

</description>
      <category>automation</category>
      <category>iot</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Proxmox on a 2015 Laptop</title>
      <dc:creator>Aditya Bharadwaj</dc:creator>
      <pubDate>Thu, 14 May 2026 17:02:17 +0000</pubDate>
      <link>https://dev.to/adityabharadwaj26/proxmox-on-a-2015-laptop-3enk</link>
      <guid>https://dev.to/adityabharadwaj26/proxmox-on-a-2015-laptop-3enk</guid>
      <description>&lt;p&gt;I didn't set out to build a homelab. I set out to get my photos back.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Google Problem
&lt;/h2&gt;

&lt;p&gt;For a while, my photo management strategy was "upload everything to Google Photos and never think about it." It worked — until it didn't.&lt;/p&gt;

&lt;p&gt;Google started compressing "original quality" uploads. Then they changed the names. Then the search got weird. And one day I tried to download my entire library and they hit me with a takeout limit that made me laugh out loud.&lt;/p&gt;

&lt;p&gt;I had 40,000 photos hostage on someone else's server, and the only way to get them all was to wait twelve hours for a zip file that might corrupt halfway through.&lt;/p&gt;

&lt;p&gt;That was the straw. Not a dramatic breaking point — just a slow, engineer-grade accumulation of annoyance that finally tips past "tolerable."&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding Proxmox
&lt;/h2&gt;

&lt;p&gt;I'd been hearing about self-hosted alternatives for a while. PhotoPrism — AI-powered photo management that could sort, tag, and search my library without sending anything to the cloud. Nextcloud — file sync that I owned outright. Both were open source. Both ran on Docker or bare Linux.&lt;/p&gt;

&lt;p&gt;But I didn't want to install them directly on my laptop alongside whatever else I was running. I wanted them isolated. I wanted to be able to break things without breaking everything. I wanted a reason to try something I'd been reading about but never touched.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Proxmox VE is a free, open-source hypervisor. Debian under the hood, web UI on top, and the ability to run full virtual machines alongside lightweight containers — all on the same box.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The pitch was simple: install once, create as many isolated environments as you want. If PhotoPrism ate itself, I could nuke the container and start over in minutes without touching anything else. That sold me.&lt;/p&gt;

&lt;p&gt;I didn't benchmark alternatives. I didn't write a comparison spreadsheet. I read the install page, saw "click through a wizard," and thought: &lt;em&gt;yeah, I can do that.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Laptop
&lt;/h2&gt;

&lt;p&gt;The candidate was an HP Pavilion that had been sitting on a shelf for two years. i5-6200U, 16 GB RAM, 240 GB SSD, NVIDIA 940M. It wasn't server-grade hardware — it wasn't even "good" hardware anymore. But it was enough.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The best machine for a homelab is the one you already own."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I burned Proxmox to a USB drive on my main machine, plugged it into the Pavilion, and booted. Twenty minutes later, the web UI was live at &lt;code&gt;https://&amp;lt;host-ip&amp;gt;:8006&lt;/code&gt;. I remember sitting on my bed, laptop open, thinking: "That's it? That's the whole hypervisor?"&lt;/p&gt;

&lt;p&gt;It didn't feel momentous at the time. It felt like setting up a router — functional, unglamorous, and then you move on with your life. Except this time, I didn't move on. I started creating my first container immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  PhotoPrism and Nextcloud: Where It Started
&lt;/h2&gt;

&lt;p&gt;The original plan was brutally simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;PhotoPrism&lt;/strong&gt; in an LXC container — point it at my photo library, let it chew through everything with its AI tagging, and give me a beautiful web interface to search and browse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nextcloud&lt;/strong&gt; in another container — replace Google Drive for file sync. Contacts, calendars, documents. My stuff, on my hardware.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two containers. That was the scope. No home automation. No voice assistant. No AI brain.&lt;/p&gt;

&lt;p&gt;PhotoPrism was the first thing I deployed. I plugged in an external drive with my Google Photos export — 80 GB of JPEGs — pointed the container at it, and hit "Import." Overnight, it indexed every photo. Face recognition. Location data from EXIF tags. Automatic categories. I woke up to a fully tagged library that I could search by person, place, or date.&lt;/p&gt;

&lt;p&gt;It was the first time my photos felt &lt;em&gt;mine&lt;/em&gt; again.&lt;/p&gt;

&lt;p&gt;Nextcloud came next. CalDAV for calendar sync. WebDAV for file access. The Android app for auto-upload from my phone. It wasn't as polished as Google Drive — the UI felt a bit more "enterprise admin panel" than "consumer app" — but it was mine. If it broke, I could look at the logs. If it got slow, I could see why. That transparency was the feature I didn't know I was missing.&lt;/p&gt;

&lt;p&gt;And then — here's the part I didn't plan — I started thinking about what else I could put on this box.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Creep
&lt;/h2&gt;

&lt;p&gt;Nobody warns you about homelabs. You start with a clear scope — PhotoPrism and Nextcloud, done — and then you think, "Well, while I'm here, maybe I should also..."&lt;/p&gt;

&lt;p&gt;A DNS sinkhole to kill ads across the network. That's small, right? One tiny container.&lt;/p&gt;

&lt;p&gt;Then a home automation platform. I had a handful of smart switches scattered across the apartment and toggling them through five different apps was getting old. Just a simple thing to unify them. How hard could it be?&lt;/p&gt;

&lt;p&gt;Then a voice pipeline, because tapping a phone screen to turn off a light felt like a downgrade from the switches I already had.&lt;/p&gt;

&lt;p&gt;Then an AI agent to orchestrate the whole thing, because I definitely should not have been SSH-ing in at midnight to restart a service.&lt;/p&gt;

&lt;p&gt;Each addition felt small. Harmless. A weekend project. But the weekend projects started demanding the most resources, the most attention, the most architecture. Home Assistant needed a dedicated VM. The voice pipeline needed GPU passthrough. The AI agent needed RAM and a scheduling layer.&lt;/p&gt;

&lt;p&gt;Two containers became a nervous system. And somewhere along the way, the services I &lt;em&gt;started&lt;/em&gt; with — PhotoPrism, Nextcloud — quietly moved to the background. They still run. PhotoPrism still indexes new photos when I plug in a camera. Nextcloud still syncs my files. But they're no longer the centerpiece.&lt;/p&gt;

&lt;p&gt;Home Assistant runs 25 smart switches across every room. It controls lights, ACs, fans, geysers. It's the thing I interact with most. And OpenClaw — the AI agent living in an Ubuntu VM — is the thing that makes this whole setup feel &lt;em&gt;smart&lt;/em&gt; instead of just self-hosted. Those two aren't the plan anymore. They're the reason the plan exists.&lt;/p&gt;

&lt;p&gt;That's not what I signed up for. But it's what I built.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Didn't Expect
&lt;/h2&gt;

&lt;p&gt;The biggest surprise was how &lt;em&gt;boring&lt;/em&gt; it is once it's running. Not "unimpressive" — boring in the best way. Lights respond. Music plays. The voice thing answers when I talk to it. No monthly fees, no terms of service updates, no feature I didn't ask for being pushed into my life.&lt;/p&gt;

&lt;p&gt;The Pavilion gets warm under load, and it's not silent. It's a laptop cooling a hypervisor running services it was never designed for. It's not elegant. But it works. And every time I say "lights off" and the room goes dark and the speaker answers — and I know nothing left my house to make it happen — that feeling is why I keep adding "just one more thing."&lt;/p&gt;

&lt;h2&gt;
  
  
  Where We're Headed
&lt;/h2&gt;

&lt;p&gt;Part 1 ended with the question: what would you run on yours? I still don't know the full answer. But I know the story isn't about PhotoPrism anymore, or Nextcloud. It's about what happens when you build a foundation and it starts telling you what to build next.&lt;/p&gt;

&lt;p&gt;Home Assistant will be the heart. A voice pipeline will be the mouth. And somewhere in there, an AI agent will wake up and start running the show.&lt;/p&gt;

&lt;p&gt;But first, the foundation. And the foundation is a 2015 laptop running Proxmox, with two containers that started everything and four services that stole the spotlight.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is Part 2. Part 3 will dig into Home Assistant — how 25 smart switches across the apartment turned an experiment into infrastructure.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Words are mine. Structure is &lt;a href="https://openclaw.ai/docs/concepts/soul" rel="noopener noreferrer"&gt;Vyasa&lt;/a&gt;'s. The Pavilion is still warm.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I Turned My Old Laptop Into a Brain for My Home</title>
      <dc:creator>Aditya Bharadwaj</dc:creator>
      <pubDate>Tue, 12 May 2026 08:55:58 +0000</pubDate>
      <link>https://dev.to/adityabharadwaj26/i-turned-my-old-laptop-into-a-brain-for-my-home-fni</link>
      <guid>https://dev.to/adityabharadwaj26/i-turned-my-old-laptop-into-a-brain-for-my-home-fni</guid>
      <description>&lt;p&gt;I had an old HP Pavilion sitting on a shelf for about two years. i5, 16 GB RAM, 240 GB SSD — mostly empty. I almost gave it away once. Then I didn't.&lt;/p&gt;

&lt;p&gt;Funny how the things you almost throw away end up being the most useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Wasn't Money
&lt;/h2&gt;

&lt;p&gt;I was paying for cloud storage. A VPN. DNS filtering. Home automation. Photo management. None of these are expensive on their own. But together? Together they added up to a dependency I didn't fully control.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The most dangerous phrase in the language is: We've always done it this way."&lt;/em&gt; — Grace Hopper&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I kept paying because everyone else did. Because Google Drive works fine until it doesn't. Because a smart plug that needs a cloud server to turn off is not a smart plug — it's a remote control with extra steps.&lt;/p&gt;

&lt;p&gt;So I did what any stubborn engineer does. I consolidated.&lt;/p&gt;

&lt;p&gt;One machine. Many purposes. The HP Pavilion became the candidate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proxmox Was the Easy Part
&lt;/h2&gt;

&lt;p&gt;I'd heard about Proxmox for a while — a hypervisor built on Debian that runs VMs and lightweight containers with a clean web UI. Free. What sold me was that it could handle both heavy workloads in full virtual machines &lt;em&gt;and&lt;/em&gt; lighter services in LXC containers, all on the same box.&lt;/p&gt;

&lt;p&gt;Installation was genuinely painless. Burned it to a USB drive, booted the laptop, had a working Proxmox host in twenty minutes. The web UI was up at &lt;code&gt;https://&amp;lt;host-ip&amp;gt;:8006&lt;/code&gt; before I'd finished my coffee.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Talk is cheap. Show me the code."&lt;/em&gt; — Linus Torvalds&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I didn't need benchmarks or blog posts convincing me it worked. I needed to see &lt;code&gt;https://&amp;lt;host-ip&amp;gt;:8006&lt;/code&gt; in my browser. And there it was.&lt;/p&gt;

&lt;p&gt;I didn't plan the whole thing upfront. That's not how projects like this work. You start with one thing. Then another. Then suddenly you have a brain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pi-hole: The First Neuron
&lt;/h2&gt;

&lt;p&gt;Pi-hole was first — DNS-level ad blocking in a 512 MB container set as the primary DNS for the whole network. Quiet. Efficient. No more sketchy ads on cheap IoT devices. No more background tracking.&lt;/p&gt;

&lt;p&gt;I didn't realize how much noise was happening until it stopped.&lt;/p&gt;

&lt;h2&gt;
  
  
  Home Assistant: The Heart
&lt;/h2&gt;

&lt;p&gt;Next came Home Assistant — a 4 GB VM managing 25 smart switches across every room. Lights, ACs, fans, geysers.&lt;/p&gt;

&lt;p&gt;The voice integration was a DIY affair. HTTP-switch talking, a subnet scanner to auto-discover the gateway when DHCP shuffles IPs around. Not elegant. Works. The kind of 1 AM engineering decision you make and never question again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Voice Thing Became My Favourite Part
&lt;/h2&gt;

&lt;p&gt;This is where it got fun.&lt;/p&gt;

&lt;p&gt;I passed the NVIDIA 940M — still sitting inside the laptop — through to a Debian container. cgroup2 device rules, bind-mounted host libraries, the whole thing. Inside it runs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; with a quantised language model that fits in 4 GB of VRAM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster-Whisper&lt;/strong&gt; for speech-to-text&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Piper&lt;/strong&gt; for text-to-speech (I picked a voice called Amy because it doesn't sound like a robot)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The flow is simple: I speak into my old phone. The audio hits Whisper on the Pavilion's GPU. The language model figures out what I want. Piper speaks back. It plays through the Sonos in the living room.&lt;/p&gt;

&lt;p&gt;None of it needs the internet. The entire voice loop runs local. That's not a nice-to-have — that's the &lt;em&gt;whole reason this exists&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Any sufficiently advanced technology is indistinguishable from magic."&lt;/em&gt; — Arthur C. Clarke&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I say "lights off" and the room goes dark and the speaker answers me — and I know that nothing left my house to make it happen — that's not magic. But it's close enough to make me smile every single time.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenClaw: The Automation Brain
&lt;/h2&gt;

&lt;p&gt;Then there's OpenClaw — an Ubuntu VM with 8 GB of RAM running my personal AI assistant. It talks to language models through OpenRouter, talks to Home Assistant through an MCP integration, and chats with me on Telegram.&lt;/p&gt;

&lt;p&gt;It runs eight scheduled jobs through the day: workout reminders in the morning, geyser auto-off timers, evening wind-down prompts, and a morning summary that tells me which devices are still on and what the weather looks like.&lt;/p&gt;

&lt;p&gt;No SSH from outside. Everything goes through the host. If it needs restarting, I trigger it from the Proxmox host with a one-liner.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Runs, What Doesn't, and Why
&lt;/h2&gt;

&lt;p&gt;Not everything runs all the time. That was a lesson I learned the hard way — the Pavilion is not a server. It's a laptop. It gets warm. It gets loud.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Simplicity is a prerequisite for reliability."&lt;/em&gt; — Edsger Dijkstra&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I learned this the hard way — 40+ entities exposed to the voice AI, responses slow and unreliable. Cut it to 20. Instant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Always on (5 services):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home Assistant — it literally runs my home&lt;/li&gt;
&lt;li&gt;Pi-hole — DNS is infrastructure&lt;/li&gt;
&lt;li&gt;Voice Assistant — needs to be ready when I talk to it&lt;/li&gt;
&lt;li&gt;OpenClaw — the automation brain&lt;/li&gt;
&lt;li&gt;Hangar — a deployment agent running Docker-in-LXC with Open WebUI on top for experiments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;On-demand:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PhotoPrism — AI-powered photo management, fires up when I plug in a camera&lt;/li&gt;
&lt;li&gt;Nextcloud — file sync, on when I need it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both are my attempts to stop depending on Google Drive for everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things I Learned (The Hard Way)
&lt;/h2&gt;

&lt;p&gt;Don't upgrade the Proxmox kernel casually. I went to 6.17 once. The NVIDIA driver broke because the DRM API changed. The 940M became an expensive paperweight. I pinned to 6.14 and haven't touched it since.&lt;/p&gt;

&lt;p&gt;And wrapping the Toyama switches in template helpers instead of exposing raw switches gave me a cleaner dashboard and fewer surprises.&lt;/p&gt;

&lt;p&gt;Less is more — something I keep relearning, in homelabs and in life.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;I'm not going to pretend this is a production setup. It's not. It's a collection of containers on an old laptop held together with YAML files and stubbornness.&lt;/p&gt;

&lt;p&gt;But here's the thing — when I speak into my phone and the lights turn off and the Sonos answers me without touching a single cloud server, I feel something I haven't felt from any SaaS dashboard.&lt;/p&gt;

&lt;p&gt;Control. Real control. Not the kind you get from a settings page. The kind you get from knowing exactly what's running, where, and why.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"The best way to predict the future is to invent it."&lt;/em&gt; — Alan Kay&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's what I did. I took a dusty laptop, a free hypervisor, and a bunch of open-source containers and built something that actually belongs to me.&lt;/p&gt;




&lt;p&gt;This is Part 1. There's more to write — the voice pipeline deep-dive, why this particular combination of Ollama, Whisper, and Piper actually works on a 4 GB GPU without feeling like a compromise, the Toyama integration story.&lt;/p&gt;

&lt;p&gt;An old laptop. A hypervisor. Some containers. And the slightly unreasonable idea that your home should actually be smart — without phoning home to someone else's server.&lt;/p&gt;

&lt;p&gt;What would &lt;em&gt;you&lt;/em&gt; run on yours?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Words are mine. Structure is &lt;a href="https://openclaw.ai/docs/concepts/soul" rel="noopener noreferrer"&gt;Vyasa&lt;/a&gt;'s. The HP Pavilion is still running.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One last thing. The two agents working alongside me are &lt;a href="https://openclaw.ai/docs/concepts/soul" rel="noopener noreferrer"&gt;Vyasa&lt;/a&gt; and &lt;a href="https://openclaw.ai/docs/concepts/soul" rel="noopener noreferrer"&gt;Agastya&lt;/a&gt;, named after the legendary Saptarishis. Vyasa compiles the words. Agastya runs the machines — the same sage who once drank an entire ocean because the truth was hidden underneath it. Now he's here, helping me find what was hiding in a dusty old HP Pavilion. Some stories just refuse to end.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
