Skip to content

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 directories
    RUN 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:

    ConfigurationRecommended Memory
    Single model4 GB
    Multiple models8-16 GB
    Full deployment32+ GB

    Attach Persistent Volumes

    Add persistent storage for weather data:

    Mount PathRecommended SizePurpose
    /data100+ GBWeather model data

    Set Environment Variables

    Configure your deployment:

    VariableDescription
    DOWNLOAD_MODELSComma-separated list of weather models
    UPDATE_INTERVALData 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

Additional Resources