{
	"site": "https://blog.jacq.cc/",
	"title": "HomeLab Guides",
	"description": "Project guides and notes from a self-hosted home",
	"license": {
		"name": "CC BY 4.0",
		"url": "https://creativecommons.org/licenses/by/4.0/",
		"credit": "HomeLab Guides (blog.jacq.cc)",
		"details": "https://blog.jacq.cc/licence/"
	},
	"count": 7,
	"posts": [
		{
			"id": "guides/client-certificates-home-assistant-vaultwarden-gitea",
			"kind": "guide",
			"title": "Reach Home Assistant, Vaultwarden and Gitea from anywhere with your own client certificates",
			"description": "One port forward to Nginx Proxy Manager, a small certificate authority of my own and one nginx rule. From outside, only my devices get an answer; at home, nothing changes. No VPN, no tunnel, no third party in the middle.",
			"url": "https://blog.jacq.cc/guides/client-certificates-home-assistant-vaultwarden-gitea/",
			"markdown_url": "https://blog.jacq.cc/guides/client-certificates-home-assistant-vaultwarden-gitea.md",
			"published": "2026-10-16",
			"updated": "2026-10-16",
			"changes": [],
			"discussion": {},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/cover.D_f0XYh-.svg",
				"alt": "A drawing of this guide: a phone shows a certificate with a gold seal and gets a green tick through a shield with a padlock in front of a house, while a browser window without a certificate is stopped by a red no-entry sign"
			}
		},
		{
			"id": "guides/usb-ssd-raspberry-pi-5-home-assistant-os",
			"kind": "guide",
			"title": "Add a USB SSD to a Raspberry Pi 5 running Home Assistant OS",
			"description": "A cheap USB-SATA adapter hung in UAS mode and took the disk offline at 3 am. With UAS off, it hid the drive's write cache, so Linux stopped sending flushes. Both fixes done the Home Assistant OS way, then the SSD as Home Assistant's data disk.",
			"url": "https://blog.jacq.cc/guides/usb-ssd-raspberry-pi-5-home-assistant-os/",
			"markdown_url": "https://blog.jacq.cc/guides/usb-ssd-raspberry-pi-5-home-assistant-os.md",
			"published": "2026-10-16",
			"updated": "2026-10-16",
			"changes": [],
			"discussion": {},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/cover.nrzWN43u.svg",
				"alt": "A drawing of this guide: a green Raspberry Pi board plugged by a blue USB cable into a SATA SSD with a green tick, under the moon and an alarm clock showing 03:15"
			}
		},
		{
			"id": "guides/local-voice-dictation-kde-wayland",
			"kind": "guide",
			"title": "Dictation on Linux with Handy, and tidy text with OpenCode Go",
			"description": "Handy and NVIDIA's Parakeet turn speech into text on the laptop's GPU, and ydotool types it into Wayland apps. A small local proxy lets Handy's clean-up step use an OpenCode Go subscription, which refuses Handy's requests on its own. Only text leaves the laptop, never audio.",
			"url": "https://blog.jacq.cc/guides/local-voice-dictation-kde-wayland/",
			"markdown_url": "https://blog.jacq.cc/guides/local-voice-dictation-kde-wayland.md",
			"published": "2026-10-15",
			"updated": "2026-10-15",
			"changes": [],
			"discussion": {},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/cover.CoeGtrGl.svg",
				"alt": "A drawing of this guide: a clip-on mic sends sound waves to a laptop, where the words appear as tidy lines of text"
			}
		},
		{
			"id": "guides/jellyfin-home-assistant-os-old-tvs",
			"kind": "guide",
			"title": "Run Jellyfin on Home Assistant OS for old TVs and Fire TV sticks",
			"description": "Jellyfin as a Home Assistant OS app on a Raspberry Pi 5, serving older Samsung TVs over DLNA and Fire TV sticks through the Jellyfin app. Includes the bind-address fix that makes DLNA visible.",
			"url": "https://blog.jacq.cc/guides/jellyfin-home-assistant-os-old-tvs/",
			"markdown_url": "https://blog.jacq.cc/guides/jellyfin-home-assistant-os-old-tvs.md",
			"published": "2026-10-14",
			"updated": "2026-10-14",
			"changes": [],
			"discussion": {},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/cover.CIRJ_fWN.svg",
				"alt": "A drawing of this guide: a TV plays a big purple play button, with a streaming stick in its side, a remote, a bucket of popcorn and a small Raspberry Pi sending it the film"
			}
		},
		{
			"id": "guides/solplanet-battery-home-assistant-local",
			"kind": "guide",
			"title": "Monitor a Solplanet battery locally in Home Assistant, with fault emails you can trust",
			"description": "Read a Solplanet hybrid inverter and battery straight from its Ai-Dongle, with no cloud in the path, and build a fault email that survives the dongle's quirks: one-poll \"Wait\" blips, dropouts and a rate limit.",
			"url": "https://blog.jacq.cc/guides/solplanet-battery-home-assistant-local/",
			"markdown_url": "https://blog.jacq.cc/guides/solplanet-battery-home-assistant-local.md",
			"published": "2026-10-14",
			"updated": "2026-10-14",
			"changes": [],
			"discussion": {},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/cover.C5lJzcTZ.svg",
				"alt": "A drawing of this guide: the sun shines on a solar panel that charges a home battery, next to an envelope with a green tick"
			}
		},
		{
			"id": "guides/gamesir-t1d-linux-gamepad",
			"kind": "guide",
			"title": "Use the Tello's GameSir T1d controller as a Linux gamepad",
			"description": "The T1d speaks its own Bluetooth LE protocol instead of HID, so no OS sees it as a gamepad. A Python bridge turns it into a virtual Xbox 360 pad, with calibration for worn sticks.",
			"url": "https://blog.jacq.cc/guides/gamesir-t1d-linux-gamepad/",
			"markdown_url": "https://blog.jacq.cc/guides/gamesir-t1d-linux-gamepad.md",
			"published": "2026-10-11",
			"updated": "2026-10-12",
			"changes": [
				{
					"date": "2026-10-12",
					"note": "Every button now verified, stick clicks (L3/R3) and Home included. The pair button drops the connection, by design."
				}
			],
			"discussion": {
				"hacker_news": "https://news.ycombinator.com/item?id=50043545",
				"lobsters": "https://lobste.rs/s/dxftjg"
			},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/cover.2jb4nntb.svg",
				"alt": "A drawing of this guide: a dark grey game controller sends Bluetooth waves to a laptop playing a game, while the small white drone it came with hovers in the corner"
			}
		},
		{
			"id": "guides/ge-rcv1-garage-gate-remote",
			"kind": "guide",
			"title": "GE-RCV1: open the garage with the gate remote",
			"description": "Wire a 1-channel GE-RCV1 receiver to a Steel-line SD1200 garage motor, so the Richmond gate remotes open the garage too. Includes the receiver's real wiring, which its manual doesn't show.",
			"url": "https://blog.jacq.cc/guides/ge-rcv1-garage-gate-remote/",
			"markdown_url": "https://blog.jacq.cc/guides/ge-rcv1-garage-gate-remote.md",
			"published": "2026-10-11",
			"updated": "2026-10-11",
			"changes": [],
			"discussion": {
				"hacker_news": "https://news.ycombinator.com/item?id=50049234"
			},
			"cover": {
				"url": "https://blog.jacq.cc/_astro/ge-rcv1-illustration.BLRHynrJ.svg",
				"alt": "A drawing of the GE-RCV1 receiver catching a gate remote's signal, in front of a garage"
			}
		}
	]
}
