infra/.claude/reference
Viktor Barzin 90ad6b9125 fan-control: presence-aware IPMI fan curve for the R730 PVE host
The iDRAC stock curve runs the CPU at ~72°C on the 7080 RPM floor even
under load (optimises for quiet, not cool). Add a bash daemon + systemd
unit that drives the chassis fans from CPU temp on two curves, picked by
garage occupancy (the server is in the garage): COOL when empty
(measured ~58-65°C under load), QUIET near the silent floor when the
ha-sofia garage door shows someone is there (open, or <15min since last
activity).

Manual fan mode is backstopped: bash EXIT trap + systemd ExecStopPost
hand fans back to Dell auto on stop/crash; CPU>=83°C or repeated IPMI
failures do the same. Pushgateway metrics (job=fan_control). 36 unit
tests cover the pure curve/hysteresis/presence/parse logic; DRY_RUN +
RUN_ONCE for integration checks. Deployed and verified on 192.168.1.127
(CPU 70->58°C in cool mode, hysteresis stepping confirmed).

Design:  docs/plans/2026-06-04-pve-fan-control-design.md
Runbook: docs/runbooks/fan-control.md

[ci skip]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 09:19:11 +00:00
..
authentik-state.md docs: dashboard access is forward-auth + token-paste (OIDC SSO blocked) 2026-06-05 09:19:10 +00:00
github-api.md [ci skip] Sunset Drone CI: remove all artifacts, DNS, configs, and references 2026-02-23 19:38:55 +00:00
known-issues.md add infrastructure agent team: 8 specialized agents + 14 diagnostic scripts 2026-03-15 02:01:07 +00:00
patterns.md anubis: per-site PoW reverse proxy on blog + kms + travel-blog 2026-05-10 00:06:21 +00:00
proxmox-inventory.md gpu: schedule off NFD label, not k8s-node1 hostname 2026-04-22 13:43:07 +00:00
service-catalog.md fan-control: presence-aware IPMI fan curve for the R730 PVE host 2026-06-05 09:19:11 +00:00
upgrade-config.json chore: add untracked stacks, scripts, and agent configs 2026-04-15 09:33:06 +00:00