vibescoder
all tags

// Posts tagged: self-hosted

Choosing a Mac Mini model for Hermes and a 119K-token chat

·11 min read

A busy 18GB laptop gives way to a dedicated 24GB Mac mini as the target for local Hermes inference. Real Telegram context readings narrow the candidates to Qwen3.5-9B and Nemotron 3 Nano 4B before testing begins.

Thursday Thoughts: Does Apple Minions Belong in the Homelab? No, Not Yet

·7 min read

Apple’s Minions research turns idle Macs into inference workers. Comparing it with NVIDIA PAIR and an existing homelab router reveals three different jobs, a reason to wait, and a more useful role for the household Mac mini.

Smart Home, Dumb Luck, Episode 5: Improving Lighting Automations in Home Assistant

·8 min read

Migrating Google Home routines to Home Assistant became a redesign of simulated occupancy. Saved daily variation, phone-based presence, restart recovery, and explicit manual handoff make lighting more flexible without giving an AI responsibility for running the house.

Homelab Router Part 5: Seven Models, One Writing Job

·9 min read

Seven local models on one RTX 5090 each wrote the same three posts, blind, so I could settle which one gets the writing lane of the homelab router. The house writer was not the fastest, and the judge did not agree with me on one of the three.

Performance Tuning Hermes for Local AI Using a Two-Node DGX Spark Cluster

·9 min read

Tuning Hermes to run fast against local AI on a two-node DGX Spark cluster. One unrecognized reasoning_effort setting broke Hermes tool calls, and context compression cut the turn time about 4x. Covers the config fix, the context ceiling, and the latency floor tuning cannot remove.

Homelab Router Part 4: The Router Picks the Model, Not You

·7 min read

Wiring the local model fleet into Coder Agents forced a realization. A policy router ignores the model name on the request and chooses a backend from the request itself, so Coder needs one generic default model instead of one entry per backend.

Tuning Turns on a Two-Node DGX Spark Cluster: Fairness, Not Just Throughput

·7 min read

A two-node DGX Spark cluster carries the household model traffic, and the best tuning lever was one the deployment’s own A/B test had measured but production had reverted. Restoring it tightened the wait between concurrent requests, not raw speed.

Friday Fixes: The Blog Was Paying for Readers Who Never Logged In

·8 min read

A Vercel Fluid CPU overage on a blog with mostly static readers pointed at a theme running through the week’s fixes. The blog was doing work nobody needed. Each fix stopped one of those jobs instead of adding another.

Homelab Router Interlude: DeepSeek Wins the Local Coder Bakeoff

·9 min read

Before I settle the local model policy for the homelab router, I ran GPT-5.5, Strix Qwen, RTX 5090 Qwen, and Spark DeepSeek through the same Coder Agents feature task. DeepSeek won the implementation quality round, while Strix taught me why policy needs speed data too.

Teaching Coder Agents About the Local Model Fleet

·7 min read

After adding Strix Halo to the homelab, I wired Strix, Spark, and the RTX 5090 workstation into Coder Agents as explicit model choices, with the policy router still handling the default local path.

Turning Strix Halo Into a Headless Local AI Node

·9 min read

I wiped Windows from a Ryzen AI Max+ 395 box, made Ubuntu boot headless, joined it to the Tailnet, tuned Strix Halo unified memory, and got a fresh 512K-context Qwen coding model running for the homelab.

Homelab Router Part 3: Hey Jarvis, Turn Off the TV Lights

·9 min read

The local smart-home path moved from typed Hermes commands to real voice control, using a Pixel Tablet, Home Assistant Assist, Whisper, Piper, Android wake word detection, and Z-Wave lights on the ThinkCentre.

Friday Fixes: Teaching the Homelab Where It Lives

·8 min read

A routine homelab hygiene pass turned into a full infrastructure cleanup: Proxmox reboot validation, Uptime Kuma repair, Home Assistant Wake-on-LAN, router reservations, stale device cleanup, and one stubborn BIOS-shaped mystery.

Homelab Router Part 2: Lights Out for Hermes, All Locally

·8 min read

The local router prototype became useful when Hermes turned off a real Z-Wave light through Home Assistant, after USB passthrough, Z-Wave JS setup, entity mapping, and one stale MCP endpoint got fixed.

Homelab Router Part 1: Getting a Static Prototype Working with Hermes

·10 min read

Turning a local AI policy-layer plan into a static router prototype, with FastAPI, Proxmox LXC, local DNS rewrites, Uptime Kuma monitoring, Spark DeepSeek, and 5090 Granite fallback routing.

Extending DeepSeek V4 Flash Led Us to Planning a Local AI Policy Layer

·10 min read

A dual Spark DeepSeek endpoint solved the model problem, then exposed the next missing layer: local-first policy routing across household agents, specialist models, paid tools, PAIR, and future homelab nodes.

Friday Fixes: Plugging the Spark

·8 min read

The dual Spark cluster moves from a working demo to durable household infrastructure: mDNS, reboot recovery, Hermes routing, remote dashboard access, benchmark results, and the first tuning lessons.

Friday Fixes: The Agent Audits the Homelab, Then Updates Everything Itself

·5 min read

A random Tuesday sends an agent over SSH into the homelab to check every piece of software running there. Coder jumps two full versions, cloudflared and RustDesk get patched, and llama.cpp pulls in 317 commits, all with zero manual steps.

Friday Fixes: A Model That Found Itself, DNS That Lied for Two Reasons, and a Reboot That Caught a Third

·8 min read

A new local model gets validated by a dashboard feature built before it existed. A DNS outage traces back to two unrelated bugs. A deliberate reboot of the homelab’s Proxmox host finds a third bug neither fix would have caught.

Building a Homelab Dashboard That Does Not Care If the GPU Box Is Off

·7 min read

A phone-friendly status page for a two-machine homelab, built in phases. Why it lives on the Proxmox box next to Home Assistant instead of the AI workstation, how it talks to Uptime Kuma with no REST API to speak of, and why the third phase, waking the workstation remotely, is still waiting on a cable move.

Smart Home, Dumb Luck, Episode 4: The Backup Plan That Would Have Silently Failed

·8 min read

Episode 4 gives an agent real write access to Uptime Kuma, retires the last manually-copied secret files, test-builds Proxmox Backup Server in Docker (catching a build that silently deleted the very package it installed), and catches a Wake-on-LAN plan that was about to fail for a reason nobody had checked yet.

Friday Fixes: Vanishing Tables, an Overdue Homelab, and the Apostrophe That Broke the Build

·9 min read

Four tables disappeared without a trace on the Substack mirror of a recent post — not a bug in this site’s pipeline, but a platform limitation with a fix worth building anyway. Then a full, risk-sorted update pass across every tool the homelab runs on, including an NVIDIA driver near-miss and a Home Assistant instance retired for real this time. Closes with a one-character YAML fix that had taken down the entire site’s production build.

Smart Home, Dumb Luck, Episode 3: Hacking HACS and Tuning Kuma for Home Assistant Monitoring

·9 min read

Episode 3 installs HACS and an MCP server entirely over SSH, chases a phantom outage down to a single stuck config value, and wires nine Uptime Kuma checks with Discord alerts, then fixes a cron bug and a false-alarm habit before publishing.

Smart Home, Dumb Luck, Episode 2: Giving My AI Agent the Keys, Then Watching AdGuard Judge Tom’s Hardware

·8 min read

Episode 2 of the SmartThings-to-Proxmox series: hardening the ThinkCentre, wiring up Tailscale so a Coder Agent can SSH in and administer it directly, standing up the Home Assistant OS VM, Uptime Kuma, and AdGuard Home, and ending on a single page load that quietly fired 53 blocked ad-tech requests.

Smart Home, Dumb Luck, Episode 1: Firing SmartThings and Booting Proxmox With No USB Drive in the House

·10 min read

Kicking off a series on replacing a Samsung SmartThings hub with a self-hosted Home Assistant box. Episode 1: picking the hardware, fighting a Lenovo BIOS setting hidden behind a decoy, and the increasingly absurd path to actually getting an OS onto the machine when there wasn’t a single working USB drive anywhere in reach.