Skip to content

Homelab

The servers in my house: what runs on them, what broke, and what I'd do differently.

The journey

How the lab started and how it grew.

  1. My Homelab Journey: The Beginnings

    Follow my journey to build an affordable homelab using an Intel NUC, Synology NAS, and TP-Link router. Discover my motivations, hardware choices and setup tips.

    HomeLab, 4 min read

  2. My Homelab Journey: The Ubuntu Phase

    Discover the journey of building a homelab with Ubuntu, virtualization insights, Docker's ease, Proxmox vs. Ubuntu decisions, and hypervisor benefits.

    HomeLab, 3 min read

  3. My Homelab Journey: Redundancy Without RAID

    Discover how I set up my Synology NAS for optimal storage and redundancy in my home lab, balancing media files and crucial backups.

    HomeLab, 3 min read

  4. My Homelab Journey: Connecting My NAS to the Server

    Step-by-step guide on how to connect a Synology NAS to a Linux server for efficient data management and network storage solutions in your home lab.

    HomeLab, 6 min read

  5. My Homelab Journey: Moving from a Synology NAS to unRAID on an Intel NUC

    A NUC has no PCIe slot and no drive bays, so the M.2 slot became a 6-port SATA controller, a used ATX PSU powers and cools four drives, and the whole thing fits the wall rack with 1 mm to spare.

    HomeLab, 4 min read

unRAID and storage

Disks, the array, the boot drive, and upgrades.

  1. Shrinking an unRAID Array from 3 Data Disks to 2 and Keeping the Old Disk as a Spare

    Disk prices are high, so I removed a disk instead of buying one: unBALANCE to empty it, New Config with preserve all, a parity rebuild, and the permission, mover and ZFS traps after.

    HomeLab, 5 min read

  2. Upgrading unRAID 7.0.1 to 7.3.2 in One Jump: 13 Risks, 3 Minutes Down

    How I planned a three-minor-version unRAID jump with 13 written risks and an answer for each, what the 3-minute upgrade looked like, and the fallout that showed up after.

    HomeLab, 7 min read

  3. The USB Boot Drive That Dropped Twice: Detecting and Replacing an unRAID Flash

    My unRAID boot flash fell off the USB bus twice in nine days. How a direct-read heartbeat and an off-box watcher caught it, and how the swap, license move, and label trap went.

    HomeLab, 8 min read

  4. Three unRAID Disks Failed at Once. It Was a SATA Power Plug.

    DRDY DF ERR, ABRT and SATA link down on three drives in one night, all SMART-clean. How the error signature pointed at power, not media, and how I proved the fix.

    HomeLab, 6 min read

Backups

What gets copied where, and the times it silently did not.

  1. Backing Up Docker Appdata on unRAID Without Stopping Every Container Every Night

    How I moved the unRAID Appdata Backup plugin to "do not stop" by default, took a consistent Home Assistant SQLite copy with a pre-container hook, and hit the containerOrder and \r\n gotchas.

    HomeLab, 4 min read

  2. My Glacier Cleanup Deleted Nothing for 49 Runs: rclone One-Way Checks and Deep Archive Orphans

    Why my rclone orphan cleanup for S3 Glacier Deep Archive never deleted a file, and the lsf + comm rewrite with an ORPHAN_MAX guard, a 180 day server-modtime window, and a 66 h run marker.

    HomeLab, 7 min read

  3. A Windows PC Backup That Never Reported Up: Robocopy /ZB, ERROR 50, and a Silent 6 h Kill

    My robocopy backup to an unRAID Samba share had never once completed. How /Z, /B, a 6 hour task limit and an end-of-run monitor push hid it, and the fixes that got a full run to 10m53s.

    HomeLab, 5 min read

  4. AWS Glacier Deep Archive: Ultimate Cold Storage Backup Solution for My Homelab

    How I implemented a cost-effective 3-2-1 backup strategy using AWS Glacier Deep Archive, saving money while ensuring my critical data is protected against catastrophic failures.

    HomeLab, 10 min read

Monitoring and ops

Knowing when a job fails, and what took the server down.

  1. Monitoring Cron Jobs with Uptime Kuma Push Monitors (After Healthchecks Went Silent)

    How I watch every homelab cron job with Uptime Kuma push monitors: the ping helper, alert timing math, the 90 s interval rule, maintenance windows, and a watcher for when the whole box dies.

    HomeLab, 8 min read

  2. Auditing My Homelab Cron Scripts with an AI Auditor and a Skeptic

    I had AI agents audit every unRAID user script in auditor and skeptic pairs, then got an outside review. It found database dumps disabled since April and a cleanup job deleting the backup image daily.

    HomeLab, 5 min read

  3. My AI Agents Took Down My Own Server: A Read-Only Saturation Cascade on unRAID

    Parallel AI agents opened 33 SSH sessions in a minute and pushed my NUC to load 60.51. The flash alert was a victim, the host recovered alone, and read-only turned out not to mean harmless.

    HomeLab, 5 min read

  4. 93 GB of Chrome Crash Dumps in My Docker Image: Debugging a Headless Browser Container

    A browserless container filled unRAID's docker.img with 2.28M Chrome crash dumps. The loop behind it, the tmpfs guard, a pids-limit host freeze, and why the image tag is pinned.

    HomeLab, 6 min read

Self-hosted apps

The services I run and how I set them up.

  1. Paperless-ngx with Azure OCR, LLM Autofill, and a 59,486-Mail Backfill

    Paperless-ngx on unRAID with Azure Document Intelligence OCR, an LLM hook that files every document, a PDF unlock hook, and a Proton Bridge mail backfill.

    HomeLab, 7 min read

  2. AdGuard Home: The Essential Shield for My Homelab

    How AdGuard Home transformed my network with powerful ad blocking, enhanced privacy, and family-friendly filtering using my perfectly balanced blocklist setup.

    HomeLab, 4 min read

  3. My Top Choices For Selfhosted Applications

    Explore must-have self-hosted apps for your home lab, from AdGuard Home for ad blocking to Home Assistant for automation. Learn to integrate these tools with Docker volumes and network shares.

    HomeLab, 3 min read

Media stack

Quality profiles and subtitles for my own library.

  1. Subtitle Sync I Can Trust: Checking Bazarr's Arabic Shifts Against English and the Audio

    A Bazarr match score says nothing about timing. How I shift Arabic subtitles only when English text and the audio agree, the eight tests behind it, and a scoring fault it exposed.

    HomeLab, 5 min read

  2. Picking HDR Formats for the Screen I Actually Own: DV Boost, No HDR10+, Recyclarr as Code

    My TV decodes HDR10+ and my library scores zero for it. How I pick HDR formats from the real playback chain, keep the policy in one Recyclarr file, and test it with open demo clips.

    HomeLab, 5 min read

Smart home

Zigbee, MQTT, and Home Assistant.

  1. A Zigbee Thermostat That Lies: Moving a TYBAC-006 Fan Coil Stat off Tuya Cloud

    121 AC button presses in 8 days proved my wall thermostat's reading was useless. Moving to a Zigbee TYBAC-006 fixed the cloud problem and brought four new quirks.

    HomeLab, 6 min read

  2. Mosquitto Without Persistence Took Every Zigbee Device Offline in Home Assistant

    A broker restart dropped every retained MQTT discovery message, so Home Assistant marked all Zigbee2MQTT entities unavailable while the devices kept working. The mechanism, the fix, and the proof.

    HomeLab, 5 min read

  3. One Writer for the AC: Fixing a Zigbee2MQTT Race That Left My Thermostat at 20 C

    6 of 79 AC boosts left my Zigbee thermostat stuck at 20 C for up to 196 minutes. The cause was concurrent /set messages. The fix was one queued Home Assistant script.

    HomeLab, 5 min read

  4. Zigbee Routing: Why a Sleepy Sensor Went Stale and How a Router Plug Fixed It

    A Zigbee end device keeps its parent until it rejoins. How my bedroom sensor went silent under a thermostat, moved to a router plug, and how I detect staleness with last_seen.

    HomeLab, 6 min read