Deploying Open-Meteo
Introduction
Open-Meteo is an open-source weather API that provides free access to meteorological data for non-commercial use. The platform aggregates data from national weather services including NOAA, DWD, ECMWF, and others to deliver accurate weather forecasts, historical weather data, and climate information through a simple JSON API.
Built with Swift and designed for high performance, Open-Meteo can handle millions of API requests with minimal latency. The project aims to democratize access to weather data that was traditionally available only through expensive commercial APIs.
Key features of Open-Meteo include:
- Free Weather API: No API key required for non-commercial use
- Global Coverage: Weather data for any location on Earth
- Multiple Weather Models: Access to ECMWF, GFS, DWD ICON, and more
- Hourly Forecasts: 7-16 day forecasts with hourly resolution
- Historical Data: Weather archives going back decades
- Air Quality: Air pollution and pollen forecasts
- Marine Forecasts: Wave height, wind, and ocean conditions
- Climate Data: Long-term climate projections
- Geocoding API: Location search and coordinate lookup
- High Performance: Sub-millisecond response times
- Open Source: Self-hostable for commercial use
This guide walks through deploying Open-Meteo on Klutch.sh using Docker.
Why Deploy Open-Meteo on Klutch.sh
Deploying Open-Meteo on Klutch.sh provides weather data infrastructure:
Commercial Use: Self-hosted Open-Meteo can be used commercially without restrictions.
No Rate Limits: Unlimited API requests without quotas or throttling.
Data Privacy: Weather queries stay within your infrastructure.
Persistent Storage: Store weather model data with persistent volumes.
Custom Models: Configure which weather models to download and serve.
Prerequisites
Before deploying Open-Meteo on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your deployment
- Significant storage for weather data (varies by model selection)
- Understanding that weather data download can take considerable time
Deploying Open-Meteo on Klutch.sh
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM ghcr.io/open-meteo/open-meteo:latest
# Create data directoriesRUN mkdir -p /data
# Configure which models to download (optional)ENV DOWNLOAD_MODELS="icon_global,gfs"
EXPOSE 8080
CMD ["serve"]Push to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create and Configure the App
Create a new app and connect it to your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with an internal port of 8080.
Allocate Resources
Open-Meteo is memory intensive when serving weather data. Allocate adequate resources:
| Configuration | Recommended Memory |
|---|---|
| Single model | 4 GB |
| Multiple models | 8-16 GB |
| Full deployment | 32+ GB |
Attach Persistent Volumes
Add persistent storage for weather data:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/data | 100+ GB | Weather model data |
Set Environment Variables
Configure your deployment:
| Variable | Description |
|---|---|
DOWNLOAD_MODELS | Comma-separated list of weather models |
UPDATE_INTERVAL | Data update frequency in minutes |
Deploy Your Application
Click Deploy to build and launch your Open-Meteo instance. Initial data download may take several hours.
Query Your Weather API
Once data is downloaded, query your API:
https://your-app.klutch.sh/v1/forecast?latitude=52.52&longitude=13.41&hourly=temperature_2m