One dashboard. Your station. The world's weather.

WeatherNode is an open source, self-hosted weather dashboard that connects to your local weather station or device (Ecowitt, WeatherLink, or local file/API) and combines that live data with forecasts, air quality, astronomy, radar, and worldwide alerts in a single, fast, cache-first app. Use the public API for integrations and automation.

Get started See it live: meteouitgeest.nl

Weather dashboard

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-stations shows 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).

Like WeatherNode? Support hardware and development — buy me a coffee.

Buy me a coffee