Why open source?
- You own your data — Run it on your server; no vendor lock-in.
- Transparent and auditable — See how data is fetched, cached, and displayed.
- Extensible — Add providers, widgets, and locales via a clear service layer.
- Community-friendly — GPL-3.0; use, modify, and share.
What makes it different
Speed
Cache-first: dashboard reads only from cache. No API calls on page load — ~10ms response instead of 5+ seconds.
Reliability
Health checks and self-healing: missing cache is detected and refetched automatically. Sensor/API staleness triggers OFFLINE badges and optional email alerts.
Scope
One app: live station, 14-day forecast, air quality, astronomy (sun/moon/aurora/ISS), rain radar, satellite, earthquakes, lightning, aviation METAR, and worldwide weather alerts (Meteoalarm, NWS, Environment Canada, Met Office, BOM).
Flexibility
FX (rich effects) or Flat theme, drag-and-drop widgets, configurable data sources, multi-language and multi-unit (metric/imperial/UK/Scandinavia).
Features at a glance
Local weather devices
- Connect your local weather station or device — Ecowitt, WeatherLink, or a local file/API — for real-time temperature, humidity, wind, rain, and pressure
- Auto-refresh every 60s; UI updates only when data changes
- Sensor health monitoring and optional email alerts when the station stops sending data
External data (all optional)
- Forecasts — 14-day + hourly (Yr.no)
- Air quality — WAQI and/or Luftdaten/Sensor.Community
- Astronomy — Sun/moon times, phases, aurora Kp-index, ISS/Tiangong passes, sky events
- Alerts — Meteoalarm (EU), NWS (US), Environment Canada, Met Office (UK), BOM (Australia)
- Radar, satellite, aviation METAR, earthquakes, lightning
Experience
- Weather-based effects (rain, snow, lightning, fog) and optional Flat theme
- Smart polling, per-card timestamps, OFFLINE badges with age in minutes
- Drag-and-drop layout, mobile-responsive, dynamic sitemap and SEO-friendly error pages
Admin and aggregator
- Enable/disable widgets, set theme, configure all data sources and API keys (masked in UI)
- Community telemetry — In Admin → Settings → Community Telemetry you can enable telemetry and set the aggregator URL (and optional API key); your station then appears on the community map. The telemetry aggregator is part of this project and can be hosted alongside this site.
- Visitor analytics, user management, in-app updates (browser-based or manual)
Public API
- REST API for integrations and automation: dashboard, current conditions, today summary, 14-day forecast, astronomy, air quality, METAR, history, sensors
- Data endpoints: earthquakes, weather alerts. All dashboard data is cache-first for fast responses.
Tech stack
- PHP 8.2+
- Laravel 12
- SQLite / MySQL
- Blade, Tailwind CSS, Alpine.js
- Basmilius Weather Icons
Quick start
git clone https://github.com/centauri/WeatherNode.git
cd WeatherNode
composer install && npm install
cp .env.example .env && php artisan key:generate
php artisan migrate && php artisan db:seed
npm run build && php artisan serve
Then open your site (e.g. https://weathernode.example.com) and log in at /admin with the default user admin@example.com / changeme123 — change the password immediately.
For full setup, deployment, and options see the WeatherNode repository on GitHub.
Open data and community
- Open data framework — Pluggable providers (e.g. KNMI); admin UI to enable/disable and suggest new agencies.
- Community stations — Optional telemetry to a central aggregator;
/community-stationsshows stations on a map (e.g. OpenStreetMap). Enable in Admin → Settings → Community Telemetry and set the aggregator URL; the aggregator (in this repo) can be hosted alongside this marketing site so the map stays up.
Credits and license
License: GNU GPL v3. See the project LICENSE.
Data: Yr.no, WAQI, Sensor.Community, NOAA SWPC, Meteoalarm, NWS, Environment Canada, Met Office, BOM, USGS, Open Notify, KNMI, and others (see project README).
Icons: Basmilius Weather Icons (MIT).