Releases: silenthooligan/localsky
v0.4.0-beta.3
Run it
docker run -d -p 8090:8090 -v localsky-data:/data ghcr.io/silenthooligan/localsky:0.4.0-beta.3Multi-arch image (amd64 + arm64). Quick start: https://localsky.io/docs/getting-started
A security fixes and hardening release. Upgrading is recommended, especially for instances reachable beyond a trusted LAN.
Changed
- Home Assistant integration links updated for the renamed
localsky-harepository.
Upgrade notes
- Behind a reverse proxy, set
trusted_proxiesso LocalSky sees the real client IP.
Full Changelog: v0.4.0-beta.2...v0.4.0-beta.3
v0.4.0-beta.2
Run it
docker run -d -p 8090:8090 -v localsky-data:/data ghcr.io/silenthooligan/localsky:0.4.0-beta.2Multi-arch image (amd64 + arm64). Quick start: https://localsky.io/docs/getting-started
This release builds out the irrigation and sensor side and makes the whole product easy to set up and learn: flow metering, a first-class sensors experience, point-and-click setup for every data source, documentation built into the app, and contextual help on every screen.
Features
- Sensors view: a first-class Sensors page showing every gateway and probe with live readings, battery, and signal, with one place to bind a probe to a zone.
- Guided sensor setup: the first-run wizard discovers a gateway's probes and binds them to your zones in a single step.
- Flow metering: LocalSky reads a controller's flow meter and shows live GPM during a run. A clear capable / connected / live distinction means it only reports a meter you actually have.
- Soil sensors wired end to end: labeled forms for Ecowitt and MQTT soil, and an MQTT probe bound to a zone now feeds the engine's skip decisions directly.
- Point-and-click setup for every data source: adding or editing any weather or sensor source (host, port, URL, tokens, API keys, model, poll cadence) is now a labeled form, with the raw JSON kept as an advanced escape hatch.
- LibreWXR radar and smarter forecast sourcing: LibreWXR joins the catalog as a region-aware default radar provider and a forecast source, alongside an Open-Meteo precipitation-forecast layer.
- Documentation built in: the full handbook ships inside the app and opens same-origin at /docs, so it matches your exact build and works offline or on a LAN with no public domain.
- Help on every screen: a question-mark popover with a short explainer and a "Read full doc" link now sits on every complex screen, with new pages for radar, restrictions, advanced settings, the devices hub, and manual schedules. The controller picker links straight to the controller docs.
- Show and hide on secret fields: API keys, tokens, and passwords have a reveal toggle so you can confirm what you pasted.
Bug fixes
- Setup wizard now completes on a fresh install: license acceptance is saved with the draft, so the toggle keeps its state across steps and the final step no longer rejects an accepted license.
- Setup wizard notification choices (Web Push, MQTT, ntfy, Slack) are carried into the saved configuration instead of being dropped before the final step.
- Flow is no longer reported as present when no meter is connected; the reading now reflects the real device signal.
- OpenWeather sources save correctly (they previously failed to persist).
- The radar Layers panel sizes to its content so settings stay visible, and opens and closes more smoothly.
Security
- Source credentials (app_key, client_secret, refresh_token) are redacted from the config API instead of returned in cleartext. OAuth client IDs are shown as the public identifiers they are.
API
- Contract 1.11.0: additive
GET /api/v1/sensors/inventory(gateways, soil probes, flow).
Full Changelog: v0.4.0-beta.1...v0.4.0-beta.2
v0.4.0-beta.1
Run it
docker run -d -p 8090:8090 -v localsky-data:/data ghcr.io/silenthooligan/localsky:0.4.0-beta.1Multi-arch image (amd64 + arm64). Quick start: https://localsky.io/docs/getting-started
Live Radar grows from a single precipitation layer into a full weather map: choose your imagery providers, overlay national alerts and worldwide tropical systems, add community lightning and wind flow, and manage all of it from one Layers panel.
Features
- Radar provider catalog with a Settings > Radar control: pick which imagery providers the map offers (Auto chooses the best regional source, or define a custom menu) and which layers start on. Sources are region-aware, and your layer choices persist per browser
- National Weather Service alert overlay: severity-colored warning polygons (red extreme, orange severe), tap any polygon for the headline, refreshed every couple of minutes
- Worldwide tropical cyclone tracking: hurricanes, typhoons, and cyclones normalized from the responsible agencies (NOAA NHC/CPHC, JMA, JTWC) into position markers, track lines, and forecast cones; empty when the basins are quiet
- Choose your national forecast model: the weather model behind your forecast is now configurable, from a built-in catalog of national and global models
- Wind flow layer: animated particle flow of current 10 m winds over the visible map, warmer colors for stronger wind, refetched as you pan
- Opt-in Blitzortung community lightning strikes, off by default
- Layers panel: one Layers chip opens a drawer of Imagery and Overlays, each with a toggle, an expandable legend, and source attribution; it overlays the map without resizing it and replaces the old legend rail and layer control. A stacked-layers icon, accent outline, and active-count badge make the picker unmistakable, and a footer link jumps straight to Settings > Radar
- API contract 1.10.0: additive radar endpoints for the tropical-cyclone feed, the wind grid, and the forecast-model catalog
Bug fixes
- Outbound National Weather Service requests now identify LocalSky by its project URL instead of a personal contact, per the NWS API policy
Full Changelog: v0.3.0-beta.2...v0.4.0-beta.1
v0.3.0-beta.1
Run it
docker run -d -p 8090:8090 -v localsky-data:/data ghcr.io/silenthooligan/localsky:0.3.0-beta.1Multi-arch image (amd64 + arm64). Quick start: https://localsky.io/docs/getting-started
Features
- History run log: per-day rows for every start, duration, and skip, with day watered totals
- Run log search (zone, reason, watered/skipped), 7/30/90/All range chips, and a month jump; the log fetches its own window so All is genuinely all
- Dated x-axes on History and zone charts (oldest to newest), zero-floored y-axis
- Rule manager: enable/disable, reorder, delete; template farm with six curated starting points
- Built-in skip gates are operator-controllable per gate behind a warning acknowledgement; control and legal gates stay locked; the trace marks gates disabled by operator
- Segmented On|Off toggle pills on gates and rules
- History retention setting (
persistence.runs_retention_days, default keep forever) with daily prune - Soil probe fault detection: 24h without a valid reading surfaces in
/api/health(degraded), the health banner, and a one-time push naming the zone - Per-zone verdict enforcement at dispatch: zones whose own verdict says skip are logged with the reason and not watered
- Operator-opt-in analytics tag (
LOCALSKY_ANALYTICS_*env, off by default) - Demo mode seeds 30 days of synthetic run history
- API contract 1.8.0: additive
soil_probe_faultson snapshot and health
Bug fixes
- Rain today reads the native Tempest daily accumulator (local-midnight rollover, restart-safe reseed, persisted to history); the HA WeatherFlow per-minute precipitation entity is no longer misread as a daily total
- Days-since-rain takes the min of the regional model and the station's own observed history
- The yard-wide saturation gate names zones missing soil readings instead of going silently inapplicable
- Scheduler no longer double-records completed runs
- Title/subtitle spacing normalized across page headers, panels, and gate rows
Full Changelog: v0.2.0-beta.1...v0.3.0-beta.1
v0.2.0-beta.1 · Public beta launch
The first public release of LocalSky: self-hosted hyperlocal weather and smart irrigation on your own hardware. No cloud, no subscription, no account.
Run it
docker run -d -p 8090:8090 -e LOCALSKY_DEMO=1 ghcr.io/silenthooligan/localsky:latestMulti-arch image (amd64 + arm64). Drop LOCALSKY_DEMO and mount a volume for a real install; the wizard at /setup does the rest. Quick start: https://localsky.io/docs/getting-started
Highlights
- Weather: local-first station ingest (Tempest UDP, Ecowitt gateway polling, Davis WLL, Ambient, MQTT, webhooks), multi-model forecast merge with learned bias correction (Open-Meteo worldwide, NWS in the US, MET Norway, OpenWeather, Pirate Weather), radar (RainViewer worldwide, NEXRAD in the US), lightning.
- Irrigation: FAO-56 Penman-Monteith ET engine, per-zone soil water buckets, 13-species grass catalog (hemisphere-aware), 7 soil textures, a 17-rule transparent skip ladder, sunrise-anchored scheduling, and direct controller drive (OpenSprinkler, Rachio, Rain Bird, Hydrawise, B-hyve, MQTT).
- Home Assistant, optional: pair through the LocalSky integration; every reading, zone valve, forecast, and run/stop/pause service as native entities. Watering survives HA outages.
- Operations: built-in auth (argon2id + API tokens), config snapshots and rollback, backup/restore bundles, honest health reporting, full docs at https://localsky.io/docs
Beta
This is a beta and feedback is the point: the in-app Beta feedback button opens a pre-filled GitHub issue with your version attached. Nothing is sent unless you submit it.