<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Suraj's Homelab</title><link>https://homelab.surajdhakre.xyz/blog/</link><description>Recent content in Blog on Suraj's Homelab</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://homelab.surajdhakre.xyz/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>How I Manage Power Interruptions in My Homelab</title><link>https://homelab.surajdhakre.xyz/blog/homelab-power-interruption-management/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><guid>https://homelab.surajdhakre.xyz/blog/homelab-power-interruption-management/</guid><description>&lt;h2 id="power-cuts-are-a-fact-of-life"&gt;Power cuts are a fact of life&lt;/h2&gt;
&lt;p&gt;If you run a homelab in India, power interruptions aren&amp;rsquo;t a question of &lt;em&gt;if&lt;/em&gt; — they&amp;rsquo;re a question of &lt;em&gt;when&lt;/em&gt;. Gurgaon gets frequent short outages (a few seconds to a few minutes to a few hours), plus occasional longer cuts during storms or maintenance windows.&lt;/p&gt;
&lt;p&gt;My goal was simple: &lt;strong&gt;keep the homelab and network running through every outage, no matter how brief.&lt;/strong&gt; Servers should never see a power blip. The gaming PC gets its own dedicated protection because it draws too much for the main inverter.&lt;/p&gt;</description></item><item><title>Homelab Network Architecture — VLANs, OpenWrt, and a Managed Switch</title><link>https://homelab.surajdhakre.xyz/blog/homelab-network-architecture-vlans-openwrt/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><guid>https://homelab.surajdhakre.xyz/blog/homelab-network-architecture-vlans-openwrt/</guid><description>&lt;h2 id="the-problem"&gt;The problem&lt;/h2&gt;
&lt;p&gt;When the homelab was just a Raspberry Pi, everything sat on the same flat network — my gaming PC, phones, TV, and all the homelab services. That&amp;rsquo;s fine until you start running things like Frigate NVR, Pi-hole DNS, and a dozen Docker containers. One misconfigured service and suddenly your gaming session is lagging because Jellyfin is saturating the network with a transcode.&lt;/p&gt;
&lt;p&gt;The fix: &lt;strong&gt;VLANs&lt;/strong&gt;. Separate the homelab into its own isolated network segment, with controlled routing between them.&lt;/p&gt;</description></item><item><title>Homelab Power Consumption — What Does It Actually Cost to Run?</title><link>https://homelab.surajdhakre.xyz/blog/homelab-power-consumption-cost/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><guid>https://homelab.surajdhakre.xyz/blog/homelab-power-consumption-cost/</guid><description>&lt;h2 id="the-question-everyone-asks"&gt;The question everyone asks&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Doesn&amp;rsquo;t running all that 24/7 cost a fortune in electricity?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Short answer: no. The whole homelab costs roughly the same as running a ceiling fan. Here&amp;rsquo;s the actual breakdown.&lt;/p&gt;
&lt;h2 id="measuring-power-draw"&gt;Measuring power draw&lt;/h2&gt;
&lt;p&gt;I measured each device at the wall using a kill-a-watt style power meter. Here are the idle and typical load numbers:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Device&lt;/th&gt;
 &lt;th&gt;Idle&lt;/th&gt;
 &lt;th&gt;Typical load&lt;/th&gt;
 &lt;th&gt;Max draw&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Raspberry Pi 4B (2GB)&lt;/td&gt;
 &lt;td&gt;~5W&lt;/td&gt;
 &lt;td&gt;~7W&lt;/td&gt;
 &lt;td&gt;~9W&lt;/td&gt;
 &lt;td&gt;Includes SATA SSD via USB + cooling fan&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Old Laptop (8GB)&lt;/td&gt;
 &lt;td&gt;~9W&lt;/td&gt;
 &lt;td&gt;~12W&lt;/td&gt;
 &lt;td&gt;~18W&lt;/td&gt;
 &lt;td&gt;Very efficient — barely sips power&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Lenovo ThinkCentre (64GB)&lt;/td&gt;
 &lt;td&gt;~20W&lt;/td&gt;
 &lt;td&gt;~35W&lt;/td&gt;
 &lt;td&gt;~65W&lt;/td&gt;
 &lt;td&gt;Biggest consumer, does the heavy lifting&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;TP-Link TL-SG108E Switch&lt;/td&gt;
 &lt;td&gt;~4W&lt;/td&gt;
 &lt;td&gt;~4W&lt;/td&gt;
 &lt;td&gt;~5W&lt;/td&gt;
 &lt;td&gt;Constant draw, no variation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenWrt Router&lt;/td&gt;
 &lt;td&gt;~5W&lt;/td&gt;
 &lt;td&gt;~5W&lt;/td&gt;
 &lt;td&gt;~7W&lt;/td&gt;
 &lt;td&gt;Routing + firewall + DHCP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;WD Blue 4TB HDD&lt;/td&gt;
 &lt;td&gt;~5W&lt;/td&gt;
 &lt;td&gt;~8W&lt;/td&gt;
 &lt;td&gt;~10W&lt;/td&gt;
 &lt;td&gt;Drops to &amp;lt;1W when spun down&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;~48W&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;~71W&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;~114W&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Most of the time the homelab sits around &lt;strong&gt;48–71W&lt;/strong&gt; — the ThinkCentre is the biggest consumer, but its modern CPU is surprisingly efficient at idle. The old laptop is remarkably frugal at just 9–12W.&lt;/p&gt;</description></item><item><title>Setting Up Frigate NVR with RTSP Cameras</title><link>https://homelab.surajdhakre.xyz/blog/frigate-nvr-rtsp-camera-setup/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://homelab.surajdhakre.xyz/blog/frigate-nvr-rtsp-camera-setup/</guid><description>&lt;h2 id="what-is-frigate"&gt;What is Frigate?&lt;/h2&gt;
&lt;p&gt;Frigate is an open-source NVR built around real-time object detection. It runs locally — no cloud, no subscription, no monthly fees. Point it at any RTSP camera feed and it&amp;rsquo;ll detect objects (person, car, dog, cat) in real-time, record clips on motion events, and let you review everything through a clean web UI.&lt;/p&gt;
&lt;h2 id="why-frigate-over-something-like-motioneye"&gt;Why Frigate over something like MotionEye?&lt;/h2&gt;
&lt;p&gt;MotionEye is fine for basic motion detection, but it triggers on &lt;em&gt;everything&lt;/em&gt; — a curtain moving, shadows shifting, rain. Frigate gives you actual object labels, which means far fewer false alerts. You get a notification that says &amp;ldquo;person detected at the front door&amp;rdquo; instead of 300 motion clips of nothing.&lt;/p&gt;</description></item><item><title>Setting Up Joplin Server on Raspberry Pi</title><link>https://homelab.surajdhakre.xyz/blog/setting-up-joplin-server-on-raspberry-pi/</link><pubDate>Sat, 01 Nov 2025 00:00:00 +0000</pubDate><guid>https://homelab.surajdhakre.xyz/blog/setting-up-joplin-server-on-raspberry-pi/</guid><description>&lt;h2 id="why-self-host-joplin"&gt;Why self-host Joplin?&lt;/h2&gt;
&lt;p&gt;Joplin Cloud costs money, and I don&amp;rsquo;t love my notes sitting on someone else&amp;rsquo;s server. The Pi was already running 24/7 anyway, so spinning up a sync server was a natural fit. Total cost: ₹0/month.&lt;/p&gt;
&lt;p&gt;The alternatives I considered:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Option&lt;/th&gt;
 &lt;th&gt;Why I skipped it&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Joplin Cloud&lt;/td&gt;
 &lt;td&gt;Paid, data on third-party servers&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Nextcloud sync&lt;/td&gt;
 &lt;td&gt;Too heavy for a 2GB Pi just for notes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Dropbox/OneDrive&lt;/td&gt;
 &lt;td&gt;Works but sync conflicts are painful&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Self-hosted Joplin Server&lt;/td&gt;
 &lt;td&gt;✅ Free, fast, full control&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="stack"&gt;Stack&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Joplin Server&lt;/strong&gt; — the official sync backend (Docker)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PostgreSQL 15&lt;/strong&gt; — note storage and metadata (Docker)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;nginx&lt;/strong&gt; — reverse proxy with SSL termination&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bash script&lt;/strong&gt; — automated daily &lt;code&gt;pg_dump&lt;/code&gt; backups&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailscale&lt;/strong&gt; — remote access from anywhere&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry Pi 4B running headless Raspberry Pi OS (64-bit)&lt;/li&gt;
&lt;li&gt;Docker and Docker Compose installed&lt;/li&gt;
&lt;li&gt;A domain or local hostname for nginx (e.g., &lt;code&gt;joplin.home.lan&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="step-1--docker-compose-setup"&gt;Step 1 — Docker Compose setup&lt;/h2&gt;
&lt;p&gt;Create a working directory:&lt;/p&gt;</description></item></channel></rss>