← Ocean Routing

🌬️ Self-hosting Open-Meteo

Run your own keyless weather API (wind + waves + elevation) so the router never hits public rate limits. Live — hosted instance below.

Hosted server — set this as the router's Open-Meteo URL
http://20260530-open-meteo-api.206.116.247.141.sslip.io

In the router: 1 · Weather Data → Server (advanced) → paste the URL above as the Open-Meteo server URL and pick model GFS 0.25° (self-host). The sections below explain how it's built & kept in sync.

Why

The weather router calls Open-Meteo's free, keyless forecast/marine/elevation APIs directly from the browser. They're rate-limited per IP (≈600/min, 10k/day). Hosting your own instance removes the limit entirely; the app just points at your server.

1 · Pull the image & create a data volume

docker pull ghcr.io/open-meteo/open-meteo
docker volume create --name open-meteo-data

2 · Sync the data the router needs

# Wind — GFS global 0.25° (API derives speed/direction from u/v components)
docker run -it --rm -v open-meteo-data:/app/data ghcr.io/open-meteo/open-meteo \
  sync ncep_gfs025 wind_u_component_10m,wind_v_component_10m

# Waves — GFS Wave global 0.25°
docker run -it --rm -v open-meteo-data:/app/data ghcr.io/open-meteo/open-meteo \
  sync ncep_gfswave025 wave_height,wave_period,wave_direction,swell_wave_height,swell_wave_period
Re-run the sync commands on a schedule (GFS updates every 6 h) to keep forecasts fresh. You do not need elevation/DEM data for US/Canada west-coast routing — that coastline is built into the app.

3 · Run the API server

docker run -d --rm -v open-meteo-data:/app/data -p 8080:8080 ghcr.io/open-meteo/open-meteo

4 · Test & point the router at it

curl "http://127.0.0.1:8080/v1/forecast?latitude=47.1&longitude=-126&models=ncep_gfs025&hourly=wind_speed_10m"
curl "http://127.0.0.1:8080/v1/marine?latitude=47.1&longitude=-126&hourly=wave_height"

In the router: 1 · Weather Data → Server (advanced) → set Open-Meteo server URL to your instance, and pick model GFS 0.25° (self-host). A single instance serves forecast, marine and elevation on one host.

Repo: github.com/open-meteo/open-meteo (has Dockerfile + docker-compose.yml). HTTPS note: if the app is served over https, your Open-Meteo server must be HTTPS too (browsers block mixed content).