aboutsummaryrefslogtreecommitdiff
path: root/docs/homelab-inventory
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-09 12:58:56 -0500
committerCraig Jennings <c@cjennings.net>2026-07-09 12:58:56 -0500
commit76de64ac803c336252ac225f1f493906a7eacd07 (patch)
treef5de1a8590e9cb344187fc419825f13fe0bb22dd /docs/homelab-inventory
parent4563af6702bcc44defbca22baeb87ab8261572c6 (diff)
downloadarchsetup-76de64ac803c336252ac225f1f493906a7eacd07.tar.gz
archsetup-76de64ac803c336252ac225f1f493906a7eacd07.zip
docs: move the host inventories into the org-roam knowledge base
The four host capability inventories, the TrueNAS hardware specs, and the ratio USB/xHCI record now live as roam nodes under ~/org/roam/hardware/, linked from the Homelab Hardware Inventory index. The copies here are gone. Carried rather than pointed at. A pointer keeps one canonical copy, but a third project that discovers a durable hardware fact would then have to write into this repo to record it, which the cross-project rules forbid — so the fact would land in an inbox instead of on the device's page. Moving keeps one canonical copy without closing the write path. system-health-check.org resolves a host's inventory by its #+HOSTNAME: keyword under ${ROAM_DIR:-$HOME/org/roam}/hardware/, never by filename: a node's timestamp prefix does not survive a rename. A host with no roam clone takes the same NO INVENTORY FILE path it always did. strix-soak-watch.org lands here from home, beside the workflow whose Phase 3 invokes it. It is a workflow, not an inventory page.
Diffstat (limited to 'docs/homelab-inventory')
-rw-r--r--docs/homelab-inventory/2026-01-05-truenas-hardware-specs.org229
-rw-r--r--docs/homelab-inventory/mybitch-laptop.org238
-rw-r--r--docs/homelab-inventory/ratio-desktop.org175
-rw-r--r--docs/homelab-inventory/truenas-server.org114
-rw-r--r--docs/homelab-inventory/velox-laptop.org158
5 files changed, 0 insertions, 914 deletions
diff --git a/docs/homelab-inventory/2026-01-05-truenas-hardware-specs.org b/docs/homelab-inventory/2026-01-05-truenas-hardware-specs.org
deleted file mode 100644
index 42d33ad..0000000
--- a/docs/homelab-inventory/2026-01-05-truenas-hardware-specs.org
+++ /dev/null
@@ -1,229 +0,0 @@
-#+TITLE: TrueNAS Server Hardware Specifications
-#+AUTHOR: Auto-generated via SSH
-#+DATE: 2026-01-05
-
-* Package Management Note
-
-**IMPORTANT:** Package management tools (apt) are disabled on TrueNAS appliances. Attempting to install packages with apt or methods other than the TrueNAS web interface can result in a nonfunctional system.
-
-All software installation and updates must be done through the TrueNAS web interface.
-
-* System Information
-
-** Hostname: truenas
-** IP Address: 192.168.86.5 (static)
-** Network Interface: eno1
-** Kernel: Linux 6.12.33-production+truenas
-** Build Date: Wed Dec 17 21:17:21 UTC 2025
-** Architecture: x86_64 GNU/Linux
-
-* CPU Specifications
-
-** Model: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
-** Architecture: x86_64 (Coffee Lake S)
-** Cores: 8 physical cores
-** Threads: 16 (2 threads per core)
-** Base Clock: 3.60 GHz
-** Max Turbo: 5.00 GHz
-** Min Clock: 800 MHz
-
-** Cache:
-- L1d cache: 256 KiB (8 instances)
-- L1i cache: 256 KiB (8 instances)
-- L2 cache: 2 MiB (8 instances)
-- L3 cache: 16 MiB (1 instance)
-
-** Features:
-- Virtualization: VT-x
-- CPU family: 6
-- Model: 158
-- Stepping: 13
-
-* Memory Specifications
-
-** Total RAM: 64 GiB (62 GiB usable)
-** Swap: 0 B (no swap configured)
-** Current Usage: ~3.0 GiB used, 59 GiB free
-
-* Storage Controllers
-
-** SATA Controllers:
-1. Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
-2. ASMedia Technology Inc. ASM1166 Serial ATA Controller (rev 02)
-
-** NVMe Controllers:
-1. Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD (rev 01)
-
-* Block Devices
-
-** Hard Drives:
-- sda: 10.9 TB (ZFS member)
-- sdb: 10.9 TB (ZFS member)
-- sdc: 10.9 TB (ZFS member)
-- sdd: 10.9 TB (ZFS member)
-- sdg: 18.2 TB (ZFS member)
-- sdh: 18.2 TB (ZFS member)
-- sdi: 18.2 TB (ZFS member)
-- sdj: 18.2 TB (ZFS member)
-
-** System Drives:
-- sde: 1.9 TB (Boot pool, ZFS member)
- - sde1: 1M partition
- - sde2: 512M VFAT partition
- - sde3: 1.9T ZFS partition
-- sdf: 1.9 TB (ZFS member)
-
-** NVMe:
-- nvme0n1: 1.8 TB
-
-** Total Raw Capacity:
-- 4× 10.9 TB = 43.6 TB
-- 4× 18.2 TB = 72.8 TB
-- 2× 1.9 TB = 3.8 TB
-- 1× 1.8 TB NVMe = 1.8 TB
-- **Total: ~122 TB raw storage**
-
-* Network Interfaces
-
-** eno1 (Primary - Active):
-- Type: Ethernet controller - Intel Corporation Ethernet Connection (7) I219-V (rev 10)
-- MAC: 70:85:c2:db:9d:94
-- IP: 192.168.86.5/21
-- Subnet broadcast: 192.168.87.255
-- State: UP
-- MTU: 1500
-- Alternative name: enp0s31f6
-
-** enp2s0 (Secondary - Down):
-- Type: Ethernet controller - Intel Corporation I211 Gigabit Network Connection (rev 03)
-- MAC: 70:85:c2:db:9d:94
-- State: DOWN (NO-CARRIER)
-
-** Wireless:
-- Intel Corporation Dual Band Wireless-AC 3168NGW [Stone Peak] (rev 10)
-- Status: Not configured
-
-** Docker Bridge:
-- docker0: 172.16.0.1/24
-- State: DOWN (NO-CARRIER)
-
-* Motherboard/Chipset
-
-** Chipset: Intel Z390
-- Host Bridge: 8th/9th Gen Core 8-core Desktop Processor (Coffee Lake S)
-- ISA Bridge: Z390 Chipset LPC/eSPI Controller (rev 10)
-- PCIe Root Ports: Multiple Cannon Lake PCH PCI Express ports
-
-** Integrated Components:
-- Graphics: Intel CoffeeLake-S GT2 [UHD Graphics 630] (rev 02)
-- Audio: Intel Cannon Lake PCH cAVS (rev 10)
-- USB: Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
-- Thermal: Cannon Lake PCH Thermal Controller (rev 10)
-- HECI: Cannon Lake PCH HECI Controller (rev 10)
-- SMBus: Cannon Lake PCH SMBus Controller (rev 10)
-- SPI: Cannon Lake PCH SPI Controller (rev 10)
-
-* ZFS Pool Configuration
-
-** boot-pool (1.86 TB):
-- Allocated: 3.06 GB
-- Free: 1.86 TB
-- Capacity: 0%
-- Health: ONLINE
-
-** sysdata (1.86 TB):
-- Allocated: 314 MB
-- Free: 1.86 TB
-- Capacity: 0%
-- Health: ONLINE
-- Purpose: System data and applications
-
-** tank (72.8 TB):
-- Allocated: 1.17 MB
-- Free: 72.7 TB
-- Capacity: 0%
-- Health: ONLINE
-- Purpose: Large storage pool (empty, ready for expansion)
-
-** vault (43.6 TB):
-- Allocated: 24.5 TB
-- Free: 19.1 TB
-- Capacity: 56%
-- Health: ONLINE
-- Purpose: Main media storage
-
-* Vault Datasets
-
-** Media (Movies, Music, TV Shows):
-- Size: 30 TB (allocated)
-- Used: 17 TB
-- Available: 14 TB
-- Capacity: 54%
-
-** Lectures:
-- Size: 15 TB (allocated)
-- Used: 878 GB
-- Available: 14 TB
-- Capacity: 6%
-
-** Audiobooks:
-- Size: 14 TB (allocated)
-- Used: 89 GB
-- Available: 14 TB
-- Capacity: 1%
-
-** Magic:
-- Size: 15 TB (allocated)
-- Used: 543 GB
-- Available: 14 TB
-- Capacity: 4%
-
-** Books:
-- Size: 14 TB (allocated)
-- Used: 177 GB
-- Available: 14 TB
-- Capacity: 2%
-
-* Security Mitigations
-
-** CPU Vulnerabilities (Status):
-- Gather data sampling: Mitigated (Microcode)
-- Indirect target selection: Mitigated (Aligned branch/return thunks)
-- Itlb multihit: KVM Mitigation (Split huge pages)
-- L1tf: Not affected
-- Mds: Not affected
-- Meltdown: Not affected
-- Mmio stale data: Mitigated (Clear CPU buffers; SMT vulnerable)
-- Reg file data sampling: Not affected
-- Retbleed: Mitigated (Enhanced IBRS)
-- Spec rstack overflow: Not affected
-- Spec store bypass: Mitigated (Disabled via prctl)
-- Spectre v1: Mitigated (usercopy/swapgs barriers)
-- Spectre v2: Mitigated (Enhanced/Automatic IBRS)
-- Srbds: Mitigated (Microcode)
-- Tsx async abort: Mitigated (TSX disabled)
-
-* Full PCI Device List
-
-#+BEGIN_EXAMPLE
-00:00.0 Host bridge: Intel Corporation 8th/9th Gen Core 8-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] (rev 0d)
-00:01.0 PCI bridge: Intel Corporation 6th-10th Gen Core Processor PCIe Controller (x16) (rev 0d)
-00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] (rev 02)
-00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
-00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
-00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
-00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
-00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
-00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #6 (rev f0)
-00:1c.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #7 (rev f0)
-00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
-00:1f.0 ISA bridge: Intel Corporation Z390 Chipset LPC/eSPI Controller (rev 10)
-00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
-00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
-00:1f.5 Serial bus controller: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
-00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)
-01:00.0 SATA controller: ASMedia Technology Inc. ASM1166 Serial ATA Controller (rev 02)
-02:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
-03:00.0 Network controller: Intel Corporation Dual Band Wireless-AC 3168NGW [Stone Peak] (rev 10)
-04:00.0 Non-Volatile memory controller: Sandisk Corp WD PC SN810 / Black SN850 NVMe SSD (rev 01)
-#+END_EXAMPLE
diff --git a/docs/homelab-inventory/mybitch-laptop.org b/docs/homelab-inventory/mybitch-laptop.org
deleted file mode 100644
index e522c40..0000000
--- a/docs/homelab-inventory/mybitch-laptop.org
+++ /dev/null
@@ -1,238 +0,0 @@
-#+TITLE: mybitch - Christine's Laptop
-#+DATE: 2026-01-31
-#+HOSTNAME: mybitch
-
-* Automated Capabilities
-
-# Maintained by the system-health-check workflow. Manual edits may be
-# overwritten when the workflow detects drift between this drawer and the
-# live system. Machine-readable capability signals used to dispatch which
-# checks run on this host.
-
-:PROPERTIES:
-:FS: ext4
-:PM: apt
-:ORCH: none
-:SNAPSHOT: timeshift
-:MESH: tailscale
-:BACKUP: source
-:VIRT: libvirt
-:INIT: systemd
-:LAST_AUDIT: 2026-06-23
-:END:
-
-* Overview
-
-| Field | Value |
-|----------+-----------------------------------|
-| Hostname | mybitch |
-|----------+-----------------------------------|
-| Type | Laptop |
-|----------+-----------------------------------|
-| Owner | Christine |
-|----------+-----------------------------------|
-| Maker | Framework |
-|----------+-----------------------------------|
-| Model | Laptop 16 (AMD Ryzen 7040 Series) |
-|----------+-----------------------------------|
-| OS | Linux Mint 22.3 (Zena) |
-|----------+-----------------------------------|
-| Kernel | 6.17.0-23-generic |
-|----------+-----------------------------------|
-| Status | In use |
-|----------+-----------------------------------|
-
-* Hardware Specifications
-
-** CPU
-
-| Field | Value |
-|--------------+-----------------------------------|
-| Model | AMD Ryzen 9 7940HS w/ Radeon 780M |
-|--------------+-----------------------------------|
-| Architecture | Zen 4 (TSMC 5nm) |
-|--------------+-----------------------------------|
-| Cores | 8 |
-|--------------+-----------------------------------|
-| Threads | 16 |
-|--------------+-----------------------------------|
-| Base Clock | 4.0 GHz |
-|--------------+-----------------------------------|
-| Boost Clock | 5.25 GHz |
-|--------------+-----------------------------------|
-| L2 Cache | 8 MiB (8x1024 KiB) |
-|--------------+-----------------------------------|
-| L3 Cache | 16 MiB |
-|--------------+-----------------------------------|
-
-** Memory
-
-| Field | Value |
-|-----------+------------------------------|
-| Total | 32 GB |
-|-----------+------------------------------|
-| Type | DDR5-5600 |
-|-----------+------------------------------|
-| Installed | 1x 32GB (A-DATA AD5S560032G) |
-|-----------+------------------------------|
-| Slots | 2 (1 free) |
-|-----------+------------------------------|
-| Max | 64 GB |
-|-----------+------------------------------|
-
-** Graphics
-
-| Device | Model | Driver | Notes |
-|------------+---------------------+--------+-----------------|
-| Dedicated | AMD Radeon RX 7700S | amdgpu | RDNA 3, Navi 33 |
-|------------+---------------------+--------+-----------------|
-| Integrated | AMD Radeon 780M | amdgpu | RDNA 3, Phoenix |
-|------------+---------------------+--------+-----------------|
-
-** Storage
-
-| Device | Model | Size | Interface |
-|--------------+---------------------+----------+--------------|
-| /dev/nvme0n1 | WD BLACK SN770M 2TB | 1.82 TiB | PCIe Gen4 x4 |
-|--------------+---------------------+----------+--------------|
-| /dev/nvme1n1 | WD BLACK SN770 2TB | 1.82 TiB | PCIe Gen4 x4 |
-|--------------+---------------------+----------+--------------|
-| Total | | 3.64 TiB | |
-|--------------+---------------------+----------+--------------|
-
-*** Partitions
-
-| Partition | Size | Used | Filesystem | Mount | Label |
-|----------------+----------+-------------+------------+-----------+--------|
-| /dev/nvme1n1p2 | 1.82 TiB | 17.4% | ext4 | / | |
-|----------------+----------+-------------+------------+-----------+--------|
-| /dev/nvme1n1p1 | 512 MiB | 1.2% | vfat | /boot/efi | |
-|----------------+----------+-------------+------------+-----------+--------|
-| /dev/nvme0n1p1 | 1.82 TiB | (unmounted) | ext4 | | Backup |
-|----------------+----------+-------------+------------+-----------+--------|
-
-** Display
-
-| Field | Value |
-|------------+--------------------|
-| Panel | BOE Display 0x0bc9 |
-|------------+--------------------|
-| Resolution | 2560x1600 |
-|------------+--------------------|
-| Size | 16" (345x215mm) |
-|------------+--------------------|
-| Ratio | 16:10 |
-|------------+--------------------|
-| DPI | 188 |
-|------------+--------------------|
-
-** Battery
-
-| Field | Value |
-|----------+------------------|
-| Model | NVT FRANDBA |
-|----------+------------------|
-| Capacity | 85.1 Wh (design) |
-|----------+------------------|
-| Current | 87.5 Wh (102.9%) |
-|----------+------------------|
-| Cycles | 13 |
-|----------+------------------|
-| Type | Li-ion |
-|----------+------------------|
-
-** Network
-
-| Interface | Type | Chipset |
-|-----------+--------+--------------------------|
-| wlp5s0 | WiFi | MediaTek MT7922 802.11ax |
-|-----------+--------+--------------------------|
-| Bluetooth | BT 5.2 | MediaTek Wireless_Device |
-|-----------+--------+--------------------------|
-
-** Expansion Cards (Framework)
-
-| Slot | Card |
-|------+---------------------|
-| 1 | HDMI Expansion Card |
-|------+---------------------|
-
-** Input Modules (Framework)
-
-| Module | Notes |
-|----------+-------------------------|
-| Keyboard | ANSI layout |
-|----------+-------------------------|
-| Numpad | Laptop 16 Numpad Module |
-|----------+-------------------------|
-
-* Connected Peripherals
-
-| Device | Connection |
-|---------------------------+-------------------------|
-| Logitech MX Master 3 | Unifying Receiver (USB) |
-|---------------------------+-------------------------|
-| Realtek Laptop Camera | Internal USB |
-|---------------------------+-------------------------|
-| Goodix Fingerprint Reader | Internal USB |
-|---------------------------+-------------------------|
-
-* Network Access
-
-| Method | Address |
-|--------+---------------|
-| mDNS | mybitch.local |
-|--------+---------------|
-| SSH | Yes (OpenSSH) |
-|--------+---------------|
-
-* Notes
-
-- Framework Laptop 16 with modular expansion card system
-- Discrete AMD GPU (RX 7700S) in addition to integrated Radeon 780M
-- Second NVMe slot contains 2TB backup drive (unmounted, labeled "Backup")
-- Uptime at inventory: 4 days
-
-* Operational Changes Log
-
-Deliberate, non-default config changes applied to mybitch (so they can be found and reverted later). Most recent first.
-
-** 2026-05-12 — amdgpu.mes=0 added (escalation of the MES-hang freeze mitigation)
-
-The 2026-05-11 =amdgpu.cwsr_enable=0= mitigation didn't reduce the iGPU "MES failed to respond" errors (14 hits in 14.5h after the fix vs. 38 over 10 days before — rate went *up*), so escalated per the documented path: added =amdgpu.mes=0= to =GRUB_CMDLINE_LINUX_DEFAULT= in =/etc/default/grub= (now =quiet splash amdgpu.cwsr_enable=0 amdgpu.mes=0=). Backup: =/etc/default/grub.bak-2026-05-12-amdgpu-mes=. =update-grub= run; param verified in all 6 =/boot/grub/grub.cfg= entries. Takes effect on next reboot (planned for after the in-progress first rsyncshot backup). =amdgpu.mes=0= disables the GFX11 hardware MES scheduler and falls back to the legacy KIQ path — sidesteps the hanging MES firmware entirely. Tradeoff: KIQ-on-GFX11 is a less-traveled config (small chance of cosmetic display/modeset quirks); irrelevant for Christine's light desktop workload. =cwsr_enable=0= kept (harmless alongside mes=0). *Revert:* restore =/etc/default/grub.bak-2026-05-12-amdgpu-mes= (or sed out = amdgpu.mes=0=), =update-grub=, reboot. After the reboot, check =journalctl -k -b | grep -c 'MES failed'= → should be 0. See the 2026-05-11 entry in =.ai/project-workflows/system-health-check.org='s Known Issues Log for the full background.
-
-** 2026-05-12 — rsyncshot backups + travel keep-awake mode
-
-Set up the same =rsyncshot= → TrueNAS backup mybitch's siblings use, and made mybitch never suspend so backups keep running while Christine travels with it.
-
-*** rsyncshot install (mirrors ratio's setup)
-- =/usr/local/bin/rsyncshot= — the script (source of truth: =~/code/rsyncshot/rsyncshot=).
-- =/etc/rsyncshot/config= — =REMOTE_HOST="cjennings@truenas.tailf3bb8c.ts.net"=, =REMOTE_PATH="/mnt/vault/backups"=, =SSH_IDENTITY_FILE="/root/.ssh/id_ed25519"=. (See "destination pinned to Tailscale" below for why the full MagicDNS name.)
-- =/etc/rsyncshot/include.txt= — =/home /etc /usr/local/bin=. =/etc/rsyncshot/exclude.txt= — copied verbatim from ratio.
-- =/etc/logrotate.d/rsyncshot= — copied verbatim from ratio. =/var/log/rsyncshot.log= — the log.
-- Root crontab: hourly at :30 (hours 0-1,3-23, keep 23) + daily at 2:30 (keep 30), each wrapped in =flock -x /tmp/rsyncshot.lock=. Identical to ratio's schedule.
-- =/root/.ssh/id_ed25519= (+ =.pub=) — new keypair generated on mybitch, no passphrase, comment =root@mybitch-rsyncshot=. mybitch's =cjennings= account had no outbound key (it's a receive-only account), so the backup runs with a dedicated root key instead. The pubkey was appended to =~cjennings/.ssh/authorized_keys= on TrueNAS (the line tagged =root@mybitch-rsyncshot=).
-- =/root/.ssh/config= — =Host truenas truenas.tailf3bb8c.ts.net 100.67.22.65= → =User cjennings=, that IdentityFile, =ServerAliveInterval 60 / ServerAliveCountMax 10 / TCPKeepAlive yes=. Host keys for those names added to =/root/.ssh/known_hosts=.
-- TrueNAS side: =/mnt/vault/backups/mybitch/= directory created, owned =cjennings:cjennings= (=vault/backups= is a ZFS dataset; per-host backups are just subdirectories, like =ratio/= and =velox/=).
-- *Revert:* =sudo crontab -r= (or remove the rsyncshot lines), =sudo rm -rf /usr/local/bin/rsyncshot /etc/rsyncshot /etc/logrotate.d/rsyncshot /var/log/rsyncshot.log /root/.ssh/id_ed25519* /root/.ssh/config=, restore =/root/.ssh/known_hosts= if desired, remove the =root@mybitch-rsyncshot= line from =~cjennings/.ssh/authorized_keys= on TrueNAS, and =rm -rf /mnt/vault/backups/mybitch= on TrueNAS.
-
-*** destination pinned to Tailscale
-=REMOTE_HOST= uses the full Tailscale MagicDNS name =truenas.tailf3bb8c.ts.net= (not the bare =truenas=) so the backup always routes over the tailnet regardless of what a hotel/away-from-home router's DNS resolves =truenas= to. Tailscale uses a direct LAN path between same-LAN peers, so this is near-zero perf cost when mybitch is on the home network. *Revert:* set =REMOTE_HOST="cjennings@truenas"= in =/etc/rsyncshot/config=.
-
-*** keep-awake (never suspend) — three layers
-1. =systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target= — the hard guarantee; suspend can't happen even if requested. *Revert:* =sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target=.
-2. Cinnamon power gsettings for user =cciarm= set to ='nothing'=: =sleep-inactive-ac-type=, =sleep-inactive-battery-type=, =lid-close-ac-action=, =lid-close-battery-action= (schema =org.cinnamon.settings-daemon.plugins.power=). Were ='suspend'/'suspend'/'nothing'/'suspend'=. *Revert:* set them back, or run =gsettings reset= on each key as =cciarm=.
-3. =/etc/systemd/logind.conf.d/no-suspend-keep-awake.conf= — =HandleLidSwitch=ignore=, =HandleLidSwitchExternalPower=ignore=, =HandleLidSwitchDocked=ignore=, =IdleAction=ignore=. (Written but not applied live — =systemd-logind= wasn't restarted because sessions were active; takes effect on next reboot. Layers 1-2 cover the gap.) *Revert:* =sudo rm /etc/systemd/logind.conf.d/no-suspend-keep-awake.conf= then reboot or =systemctl restart systemd-logind=.
-
-When mybitch goes back to being a stationary machine (or this whole arrangement is no longer wanted), reverse layers 1-3. The rsyncshot backup itself is worth keeping regardless.
-
-*** IPv6 set to link-local-only (fixes the tailscale dropout)
-mybitch dropped off the Tailscale tailnet on 2026-05-12 AM. Root cause: the home WiFi ("dupre") has device(s) advertising ULA-only IPv6 RAs (prefixes =fdc4:c4c6:3fb0:16cc::/64= and =fd67:8615:6780:1::/64=) with no default route. NetworkManager (=ipv6.method=auto=) SLAAC'd a "global"-scope ULA address onto wlp5s0 with no v6 internet path, so tailscaled kept trying IPv6 to controlplane/DERP, failed "network is unreachable", flapped, and lost its control connection. mybitch has no working global IPv6 anywhere (no ISP v6), so the fix is to ignore underlay v6:
-- =/etc/NetworkManager/conf.d/ipv6-link-local-only.conf= → =[connection] ipv6.method=link-local= (connection default — covers home WiFi, travel WiFi, phone hotspot).
-- =nmcli con modify dupre ipv6.method link-local= (explicit on the home connection).
-- Effect: wlp5s0 keeps only fe80:: (mDNS still works), no SLAAC, no v6 routes; tailscale0's overlay v6 untouched; tailscaled uses the IPv4 underlay. Activates on reboot or =nmcli dev reapply wlp5s0=.
-- *Revert if mybitch ever gets real IPv6:* =sudo rm /etc/NetworkManager/conf.d/ipv6-link-local-only.conf=; =sudo nmcli con modify dupre ipv6.method auto=; reboot or =nmcli dev reapply wlp5s0=.
-
-*** caveats (relayed to Craig for Christine)
-- mybitch must stay plugged into AC for backups to keep running — masking suspend doesn't stop a battery dying with the lid closed.
-- mybitch must be on WiFi at the destination and stay on the Tailscale tailnet.
diff --git a/docs/homelab-inventory/ratio-desktop.org b/docs/homelab-inventory/ratio-desktop.org
deleted file mode 100644
index 234c1a4..0000000
--- a/docs/homelab-inventory/ratio-desktop.org
+++ /dev/null
@@ -1,175 +0,0 @@
-#+TITLE: ratio - Desktop Workstation
-#+DATE: 2026-01-27
-#+HOSTNAME: ratio
-
-* Automated Capabilities
-
-# Maintained by the system-health-check workflow. Manual edits may be
-# overwritten when the workflow detects drift between this drawer and the
-# live system. Machine-readable capability signals used to dispatch which
-# checks run on this host.
-
-:PROPERTIES:
-:FS: btrfs
-:PM: pacman
-:ORCH: topgrade
-:SNAPSHOT: snapper
-:MESH: tailscale
-:BACKUP: source
-:VIRT: libvirt,docker,podman
-:INIT: systemd
-:LAST_AUDIT: 2026-07-08
-:END:
-
-* Overview
-
-| Field | Value |
-|-------------+------------------------------------------|
-| Hostname | ratio |
-|-------------+------------------------------------------|
-| Type | Desktop workstation |
-|-------------+------------------------------------------|
-| Maker | Framework |
-|-------------+------------------------------------------|
-| Model | Desktop (AMD Ryzen AI Max 300 Series) |
-|-------------+------------------------------------------|
-| Board | FRANMFCP06 v A6 |
-|-------------+------------------------------------------|
-| Firmware | INSYDE UEFI v03.03 (2025-09-16) |
-|-------------+------------------------------------------|
-| OS | Arch Linux |
-|-------------+------------------------------------------|
-| Kernel | 6.12.67-1-lts |
-|-------------+------------------------------------------|
-| Desktop | Hyprland (Wayland) |
-|-------------+------------------------------------------|
-| Previous ID | cogito (repurposed and renamed to ratio) |
-|-------------+------------------------------------------|
-
-* CPU
-
-| Field | Value |
-|---------------+---------------------------------------|
-| Model | AMD Ryzen AI MAX+ 395 w/ Radeon 8060S |
-|---------------+---------------------------------------|
-| Architecture | Zen 5 (TSMC 4nm) |
-|---------------+---------------------------------------|
-| Cores/Threads | 16 cores / 32 threads |
-|---------------+---------------------------------------|
-| Base/Boost | 3.0 GHz / 5.15 GHz |
-|---------------+---------------------------------------|
-| Cache L1 | 1.2 MiB (d-16x48 KiB; i-16x32 KiB) |
-|---------------+---------------------------------------|
-| Cache L2 | 16 MiB (16x1024 KiB) |
-|---------------+---------------------------------------|
-| Cache L3 | 64 MiB (2x32 MiB) |
-|---------------+---------------------------------------|
-| NPU | XDNA 2, 50+ peak AI TOPS |
-|---------------+---------------------------------------|
-| Peak Perf | 59.4 FP16/BF16 TFLOPS @ 2.9GHz |
-|---------------+---------------------------------------|
-
-* GPU
-
-| Field | Value |
-|--------------+-----------------------------------------|
-| Model | AMD Radeon 8060S (Strix Halo) |
-|--------------+-----------------------------------------|
-| Architecture | RDNA 3.5 |
-|--------------+-----------------------------------------|
-| CUs | 40 Compute Units |
-|--------------+-----------------------------------------|
-| Driver | amdgpu (kernel) |
-|--------------+-----------------------------------------|
-| Max VRAM | 96GB (via AMD Variable Graphics Memory) |
-|--------------+-----------------------------------------|
-| GPU Arch ID | gfx1151 |
-|--------------+-----------------------------------------|
-| PCIe | Gen 4, 16 GT/s, 16 lanes |
-|--------------+-----------------------------------------|
-
-* Memory
-
-| Field | Value |
-|--------------+--------------------------|
-| Total | 128 GiB unified (LPDDR5) |
-|--------------+--------------------------|
-| Speed | 8000 MT/s |
-|--------------+--------------------------|
-| Channels | 8 (8x 16 GiB) |
-|--------------+--------------------------|
-| Manufacturer | Micron Technology |
-|--------------+--------------------------|
-| Part Number | MT62F4G32D8DV-023 WT |
-|--------------+--------------------------|
-
-* Storage
-
-| Device | Model | Size | Interface |
-|--------------+------------------------+-----------+-----------|
-| /dev/nvme0n1 | WD BLACK SN850X 8000GB | 7.28 TiB | NVMe |
-|--------------+------------------------+-----------+-----------|
-| /dev/nvme1n1 | WD BLACK SN850X 8000GB | 7.28 TiB | NVMe |
-|--------------+------------------------+-----------+-----------|
-| *Total* | | 14.55 TiB | |
-|--------------+------------------------+-----------+-----------|
-
-Filesystem: btrfs with subvolumes (@, @home, @snapshots, @log, @pkg)
-
-* Network
-
-| Interface | Chipset | Speed | Type |
-|-----------+-----------------+---------+----------|
-| enp191s0 | Realtek RTL8126 | 5 GbE | Wired |
-|-----------+-----------------+---------+----------|
-| wlp192s0 | MediaTek MT7925 | Wi-Fi 7 | Wireless |
-|-----------+-----------------+---------+----------|
-
-Also has: docker0, tailscale0, virbr0 (virtual interfaces)
-
-* Audio
-
-- AMD Radeon High Definition Audio (HDMI, snd_hda_intel)
-- AMD Ryzen HD Audio (3.5mm, snd_hda_intel)
-- PipeWire v1.4.10 (pipewire-pulse, wireplumber)
-
-* PCI Slots
-
-| Slot | Info | Status |
-|------+------------+-----------|
-| 1 | M.2 JWLAN | Available |
-|------+------------+-----------|
-| 2 | M.2 JSSD1 | In use |
-|------+------------+-----------|
-| 3 | M.2 JSSD2 | In use |
-|------+------------+-----------|
-| 4 | PCIe Gen 4 | Available |
-|------+------------+-----------|
-
-* Connected Peripherals
-
-- Monitor: Dell U3419W (HDMI-A-1, 3440x1440@60Hz)
-- Keyboard: Das Keyboard 4 (Cherry MX Blue) — replacing with Keychron Q6 Pro
-- Mouse: Logitech M650
-- DAC/Amp: JDS Labs Element IV (ordered)
-
-* AI/LLM Capability
-
-Primary purpose includes local AI/LLM inference via Ollama.
-
-| Model | Size | Purpose |
-|------------------+-------+----------------------|
-| deepseek-r1:70b | 42 GB | Main reasoning model |
-|------------------+-------+----------------------|
-| qwen3:30b | 18 GB | MoE chat (256K ctx) |
-|------------------+-------+----------------------|
-| deepseek-r1:14b | 9 GB | Light reasoning |
-|------------------+-------+----------------------|
-| nomic-embed-text | 274MB | RAG embeddings |
-|------------------+-------+----------------------|
-
-Inference benchmarks (AMD testing, LM Studio 0.3.11):
-- Small models (1-3B): ~100+ tok/s
-- Medium models (7-8B): ~60-80 tok/s
-- Large models (20B): ~58 tok/s
-- Very large models (120B): ~38 tok/s
diff --git a/docs/homelab-inventory/truenas-server.org b/docs/homelab-inventory/truenas-server.org
deleted file mode 100644
index 5ce8613..0000000
--- a/docs/homelab-inventory/truenas-server.org
+++ /dev/null
@@ -1,114 +0,0 @@
-#+TITLE: truenas - NAS/Storage Server
-#+DATE: 2026-01-27
-#+HOSTNAME: truenas
-
-* Automated Capabilities
-
-# Maintained by the system-health-check workflow. Manual edits may be
-# overwritten when the workflow detects drift between this drawer and the
-# live system. Machine-readable capability signals used to dispatch which
-# checks run on this host.
-#
-# NOTE: TrueNAS SCALE is middleware-managed. No user-level package manager
-# or topgrade orchestration. Snapshot and update operations go through the
-# TrueNAS UI / API, not pacman/apt.
-
-:PROPERTIES:
-:FS: zfs
-:PM: none
-:ORCH: none
-:SNAPSHOT: zfs-native
-:MESH: tailscale
-:BACKUP: target
-:VIRT: docker
-:INIT: systemd
-:LAST_AUDIT: 2026-04-21
-:END:
-
-* Overview
-
-| Field | Value |
-|----------+-----------------------------------------|
-| Hostname | truenas (truenas.local / 192.168.86.5) |
-|----------+-----------------------------------------|
-| Type | NAS / storage server |
-|----------+-----------------------------------------|
-| OS | TrueNAS |
-|----------+-----------------------------------------|
-| Purpose | Media storage, backups, Plex, Syncthing |
-|----------+-----------------------------------------|
-
-See [[file:2026-01-05-truenas-hardware-specs.org][TrueNAS Hardware Specs]] for full sysinfo output.
-
-* CPU
-
-| Field | Value |
-|---------------+----------------------|
-| Model | Intel Core i9-9900K |
-|---------------+----------------------|
-| Architecture | Coffee Lake |
-|---------------+----------------------|
-| Cores/Threads | 8 cores / 16 threads |
-|---------------+----------------------|
-| Base/Boost | 3.60 GHz / 5.00 GHz |
-|---------------+----------------------|
-
-* Memory
-
-| Field | Value |
-|-------+-------------|
-| Total | 64 GiB DDR4 |
-|-------+-------------|
-
-* Storage
-
-| Pool | Config | Raw Size | Purpose |
-|-----------+-----------------+------------+---------------|
-| boot-pool | Mirror | ~1.9 TB x2 | System |
-|-----------+-----------------+------------+---------------|
-| sysdata | NVMe | ~1.8 TB | System data |
-|-----------+-----------------+------------+---------------|
-| vault | RAIDZ1 (4 disk) | ~43.6 TB | Primary media |
-|-----------+-----------------+------------+---------------|
-| tank | RAIDZ1 (4 disk) | ~72.8 TB | Expansion |
-|-----------+-----------------+------------+---------------|
-
-Total raw: ~122 TB
-
-*** Vault Datasets
-| Dataset | Size |
-|------------+-------|
-| Media | 30 TB |
-|------------+-------|
-| Lectures | 15 TB |
-|------------+-------|
-| Audiobooks | 14 TB |
-|------------+-------|
-| Magic | 15 TB |
-|------------+-------|
-| Books | 14 TB |
-|------------+-------|
-
-* Network
-
-| Interface | Chipset | Speed | Status |
-|-----------+--------------+--------+--------------|
-| eno1 | Intel I219-V | 1 GbE | Current |
-|-----------+--------------+--------+--------------|
-| enp2s0 | Intel I211 | 1 GbE | Available |
-|-----------+--------------+--------+--------------|
-| (pending) | Intel I226-V | 2.5GbE | Ordered, NIC |
-|-----------+--------------+--------+--------------|
-
-* Motherboard
-
-| Field | Value |
-|---------+------------|
-| Chipset | Intel Z390 |
-|---------+------------|
-
-* Services
-
-- Plex Media Server
-- Syncthing
-- Tailscale
diff --git a/docs/homelab-inventory/velox-laptop.org b/docs/homelab-inventory/velox-laptop.org
deleted file mode 100644
index 6e4f540..0000000
--- a/docs/homelab-inventory/velox-laptop.org
+++ /dev/null
@@ -1,158 +0,0 @@
-#+TITLE: velox - Laptop
-#+DATE: 2026-01-27
-#+HOSTNAME: velox
-
-* Automated Capabilities
-
-# Maintained by the system-health-check workflow. Manual edits may be
-# overwritten when the workflow detects drift between this drawer and the
-# live system. Machine-readable capability signals used to dispatch which
-# checks run on this host.
-#
-# NOTE: 2026-04 velox was reinstalled Arch-on-ZFS. Values below reflect
-# that reinstall but remain TBD where a live probe has not yet confirmed.
-
-:PROPERTIES:
-:FS: zfs
-:PM: pacman
-:ORCH: topgrade
-:SNAPSHOT: sanoid
-:MESH: tailscale
-:BACKUP: source
-:VIRT: libvirt,docker,podman
-:INIT: systemd
-:LAST_AUDIT: 2026-05-26
-:END:
-
-* Overview
-
-| Field | Value |
-|----------+---------------------------------|
-| Hostname | velox |
-|----------+---------------------------------|
-| Type | Laptop |
-|----------+---------------------------------|
-| Maker | Framework |
-|----------+---------------------------------|
-| Model | Laptop (13th Gen Intel Core) |
-|----------+---------------------------------|
-| Board | FRANMCCP07 v A7 |
-|----------+---------------------------------|
-| Firmware | INSYDE UEFI v03.07 (2024-12-26) |
-|----------+---------------------------------|
-| OS | Arch Linux |
-|----------+---------------------------------|
-| Kernel | 6.18.6-arch1-1 |
-|----------+---------------------------------|
-| Desktop | startx (X11) |
-|----------+---------------------------------|
-
-* CPU
-
-| Field | Value |
-|---------------+-----------------------------------------|
-| Model | 13th Gen Intel Core i7-1370P |
-|---------------+-----------------------------------------|
-| Architecture | Raptor Lake (Intel 7 / 10nm) |
-|---------------+-----------------------------------------|
-| Cores/Threads | 14 cores / 20 threads (6P + 8E, hybrid) |
-|---------------+-----------------------------------------|
-| Base/Boost | 990 MHz / 5.2 GHz |
-|---------------+-----------------------------------------|
-| Cache L1 | 1.2 MiB (d-8x32K,6x48K; i-6x32K,8x64K) |
-|---------------+-----------------------------------------|
-| Cache L2 | 11.5 MiB (6x1.2M, 2x2M) |
-|---------------+-----------------------------------------|
-| Cache L3 | 24 MiB (1x24M) |
-|---------------+-----------------------------------------|
-| Socket | BGA1744 (U3E1) |
-|---------------+-----------------------------------------|
-
-* GPU
-
-| Field | Value |
-|--------------+------------------------|
-| Model | Intel Iris Xe Graphics |
-|--------------+------------------------|
-| Architecture | Xe (Intel 7) |
-|--------------+------------------------|
-| Driver | i915 / modesetting |
-|--------------+------------------------|
-
-* Memory
-
-| Field | Value |
-|----------+------------------------------------|
-| Total | 64 GiB (DDR4) |
-|----------+------------------------------------|
-| Speed | 3200 MT/s |
-|----------+------------------------------------|
-| Slots | 2 (both populated) |
-|----------+------------------------------------|
-| Device 1 | 32 GiB Crucial CT32G4SFD832A.C16FB |
-|----------+------------------------------------|
-| Device 2 | 32 GiB Crucial CT32G4SFD832A.C16FE |
-|----------+------------------------------------|
-
-* Storage
-
-| Device | Model | Size | Interface |
-|--------------+----------------------+----------+-----------|
-| /dev/nvme0n1 | Sabrent SB-RKT4P-8TB | 7.28 TiB | NVMe |
-|--------------+----------------------+----------+-----------|
-
-- Filesystem: ZFS on root (zroot pool on nvme0n1p2; reinstalled 2026-04)
-- Datasets: zroot/ROOT/default, zroot/home, zroot/var/log, zroot/var/lib/pacman, zroot/var/lib/docker (per-layer), zroot/vms, zroot/media
-- Snapshots: sanoid hourly + zfs-scrub-weekly@zroot
-- SMART: PASSED (re-verified 2026-04-26); composite 43 °C; 0 media errors
-- Power-on history pre-dates reinstall — refresh on next full re-inventory
-
-* Display
-
-| Field | Value |
-|------------+---------------------------------|
-| Panel | BOE Display 0x0bca (built 2022) |
-|------------+---------------------------------|
-| Resolution | 2256x1504 |
-|------------+---------------------------------|
-| Size | 13.5" (285x190mm) |
-|------------+---------------------------------|
-| DPI | 201 |
-|------------+---------------------------------|
-| Ratio | 3:2 |
-|------------+---------------------------------|
-
-* Network
-
-| Interface | Chipset | Speed | Type |
-|-------------+--------------------------------+---------+----------|
-| wlp170s0 | Qualcomm Atheros AR9462 | Wi-Fi | Wireless |
-|-------------+--------------------------------+---------+----------|
-| enp0s13f0u3 | Realtek USB 10/100/1G/2.5G LAN | 2.5 GbE | USB |
-|-------------+--------------------------------+---------+----------|
-
-Also has: docker0, tailscale0, virbr0 (virtual interfaces)
-
-* Audio
-
-- Intel Raptor Lake-P/U/H cAVS (snd_hda_intel)
-- PipeWire v1.4.10 (pipewire-pulse, wireplumber)
-
-* Battery
-
-| Field | Value |
-|-----------+-----------------------|
-| Capacity | 55 Wh (design) |
-|-----------+-----------------------|
-| Condition | 44/55 Wh (80% health) |
-|-----------+-----------------------|
-| Cycles | 146 |
-|-----------+-----------------------|
-| Type | Li-ion |
-|-----------+-----------------------|
-
-* Other Hardware
-
-- Webcam: Realtek Laptop Camera (UVC)
-- Fingerprint: Shenzhen Goodix USB Device
-- Bluetooth: Foxconn (BT 4.0)