No description
  • Python 93.4%
  • Shell 5.6%
  • Dockerfile 1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
mholland 870a8e1324
All checks were successful
Build and Publish Container / build-and-publish (push) Successful in 26s
Merge pull request 'Add Ollama fan boost and model monitoring v1.7.0' (#11) from feature/v1.7.0-ollama-fan-boost-models into main
Reviewed-on: #11
2026-09-23 12:53:37 +00:00
.forgejo/workflows Redesign hardware monitor UI v1.2.0 2026-09-22 07:24:21 -05:00
assets Add authentication cooling controls and telemetry v1.3.0 2026-09-22 08:00:14 -05:00
deploy Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00
.dockerignore Add NVIDIA monitoring v1.1.0 2026-09-22 06:44:47 -05:00
.gitignore Add NVIDIA monitoring v1.1.0 2026-09-22 06:44:47 -05:00
app.py Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00
compose.yaml Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00
Dockerfile Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00
README.md Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00
requirements.txt Add NVIDIA monitoring v1.1.0 2026-09-22 06:44:47 -05:00
verify-package.sh Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00
VERSION Add Ollama fan boost and model monitoring v1.7.0 2026-09-23 07:53:23 -05:00

HollandNAS Hardware Monitor v1.7.0

Hardware monitoring and conservative cooling control dashboard for HollandNAS / TrueNAS SCALE.

v1.7.0 changes

Ollama Fan Boost

  • Adds an optional Ollama-driven case-fan automation on the Cooling page.
  • Disabled by default.
  • Uses Ollama /api/ps directly as the model-loaded trigger.
  • Controls only the three case-fan channels:
    • Fan 4 — Rear Exhaust.
    • Fan 5 — Top Fan 2.
    • Fan 6 — Top Fan 1.
  • Leaves all three front radiator fans and the AIO pump untouched.
  • Uses only the known-working fixed-duty Commander ST write path; it does not use liquidctl hardware fan curves.
  • Writes once when a model becomes loaded and once after it unloads; it does not continually rewrite fan duty while state is unchanged.
  • Uses a 12-second unload debounce so quick model swaps do not cause unnecessary fan-speed cycling.
  • If the Ollama API is unavailable, fan speeds are left unchanged.
  • A manual case-fan Apply temporarily overrides the automation until the next Ollama load/unload transition.
  • Normal and model-loaded case-fan duty are configurable and persisted in /data.

CPU and Cooling gauges

  • CPU page Temperature is now a 0–100 °C gauge.
  • Adds a CPU Utilization gauge with a 0–100% scale.
  • Keeps Current Clock, Max Clock, and Governor as standard metric cards.
  • Cooling page summary is now four gauges:
    • Coolant: 20–50 °C.
    • Pump: 0–3000 RPM.
    • CPU / Coolant Δ: 0–70 °C.
    • Radiator Average: 0–2500 RPM.
  • Removes the old Cooling-page fixed-duty/manual-mode badge and explanatory warning/instruction text while retaining all safety behavior.

Ollama model inventory improvements

  • Adds an Available Models table sourced from Ollama /api/tags.
  • Models are mutually exclusive between Loaded Models and Available Models.
  • When a model loads it moves into Loaded Models; when it unloads it returns to Available Models.
  • Uses /api/show to enrich installed-model metadata without loading the model.
  • Persists a small per-model metadata cache under /data so parameter size, quantization, context, and other known details remain available when Ollama does not report them while unloaded.
  • Changes Unload to Unload In.
  • Prefixes the displayed Ollama server version with v.
  • Ollama GPU VRAM now shows Ollama VRAM usage over total GPU VRAM, for example 6.2 GiB / 8.0 GiB.

v1.6.1 features retained

  • Commander ST hardware fan-curve writes remain fail-closed because the current liquidctl curve path is unreliable on this controller.
  • Individual fixed-duty controls remain available for all six fans.
  • Pump fixed-duty modes remain available at 75%, 85%, and 100%.
  • CPU + GPU utilization history with 1m / 5m / 15m switching and fixed 0–100% scale.
  • CPU, NVIDIA GPU, AIO coolant, and pump Overview gauges.
  • Combined CPU / GPU / coolant temperature history with 1m / 5m / 15m switching.
  • CPU logical-thread utilization bars with slowly decaying trailing markers.
  • Conservative Ollama monitoring through the Ollama HTTP API plus existing /proc and NVIDIA process telemetry.
  • No Docker socket and no Docker-log access.
  • Compact network header telemetry.
  • GPU page order: Engine Utilization, Thermals & Limits, Performance, GPU Processes.
  • Serialized Commander ST reads/writes with transient-response retry handling and last-known-good telemetry fallback.

Persistent data

The TrueNAS deployment mounts:

/mnt/Holland Fast/hardware-monitor/data:/data

The app stores:

  • /data/hardware_monitor.db — administrator account hash, cooling-control state, Ollama Fan Boost settings, and cached Ollama model metadata.
  • /data/session_secret — Flask session-signing secret.

Temperature/utilization histories and CPU trailing markers remain memory-only and are not written to disk.

Ollama connectivity

The TrueNAS compose maps host.docker.internal to Docker's host gateway and defaults to:

http://host.docker.internal:11434

No Docker socket or Docker log access is used.

Image

github.hollandayinn.com/testing/hollandnas-hardware-monitor:1.7.0

Dashboard

http://<TRUENAS-IP>:8765