A fresh named volume mounted at /state came up root-owned (the image never
created the dir, so docker made the mountpoint as root) and the non-root
lake service 500'd every /history with EACCES — seen live on the first LAN
lake deploy. The image now creates and owns /state, so new volumes inherit
uid 10001; and an unwritable cache serves the frame from memory instead of
failing, keeping the cache an accelerator rather than a dependency.
Steady-state usage of the Open-Meteo API is removed; it remains only as a dormant fallback. Geocoding -> local GeoNames + Nominatim; wind gusts -> Meteostat; history -> NASA POWER (curated cells seeded with keyless ERA5); recent+forecast -> NASA range + MET Norway. Plus a drift-check tool comparing NASA vs Open-Meteo. All keyless, no new infra. Backend suite green in-image (gate).