资讯详情

三步跑通 Open-Meteo 天气 API 自托管:新手从零到上线的部署指南

📅 2026/9/24 15:53:30 | 华诺云谱 👁 阅读
三步跑通 Open-Meteo 天气 API 自托管:新手从零到上线的部署指南
三步跑通 Open-Meteo 天气 API 自托管新手从零到上线的部署指南【免费下载链接】open-meteoFree Weather Forecast API for non-commercial use项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo如果你想在项目里免费查询全球天气预报、又不想依赖商业 APIOpen-Meteo 是可以自托管的天气数据服务接口不需要 API key公开 API 面向非商业用途免费而它把同一套服务开放给你在自己的机器上完成自托管部署。硬件上准备至少 8 GB 内存、100 GB 空闲磁盘时间上预留 10 分钟即可。自托管替你省掉什么官方公开 API 免费但有约定单日请求超过 10000 次需先联系官方见 README。如果你的调用量更大或者要求数据始终留在自己的机房自托管就是出路。默认的部署方式不需要你下载任何原始模型文件服务从开放数据仓库实时拉取预报数据库并在本地做 LRU 缓存。整个系统说白了只有两件事一个查询天气的 HTTP 服务一个存放压缩时间序列数据的./data目录。内存建议 16 GBx86-64 与 Arm 均支持。三步让服务跑起来第一步启动容器。官方镜像默认走远程数据 本地缓存开箱即用docker volume create --name open-meteo-data docker run -d --rm --name open-meteo \ -v open-meteo-data:/app/data \ -e REMOTE_DATA_DIRECTORYhttps://openmeteo.s3.amazonaws.com/data/ \ -e CACHE_SIZE8GB \ -p 127.0.0.1:8080:8080 \ ghcr.io/open-meteo/open-meteo第二步验证接口。首次调用冷缓存需要几秒之后同坐标的调用会快很多curl http://127.0.0.1:8080/v1/forecast?latitude47.1longitude8.4modelsecmwf_ifs025hourlytemperature_2m第三步圈定需要的数据。想把某个模型和变量落到本地磁盘用 sync 命令它只收两个参数模型、变量逗号分隔实现见 SyncCommand.swiftdocker run -it --rm -v open-meteo-data:/app/data ghcr.io/open-meteo/open-meteo sync ecmwf_ifs025 temperature_2m模型与变量的完整清单见数据下载文档完整部署流程见入门指南。Docker 还是 Ubuntu 包路线怎么选三条路线的差别主要在管理与目标系统路线适用场景资源开销Docker验证、开发、临时部署任何带 Docker 的 Linux8 GB 内存、100 GB 磁盘冷缓存首查约数秒Ubuntu 22.04 APT 包单台 22.04 机器长期生产运行硬件要求相同systemd 管理附带 openmeteo-sync 同步服务源码构建需要改动代码本身额外需要 Swift 工具链AGPLv3 要求公开改动后的源码安装 APT 包官方仅支持 Ubuntu 22.04sudo gpg --keyserver hkps://keys.openpgp.org --no-default-keyring --keyring /usr/share/keyrings/openmeteo-archive-keyring.gpg --recv-keys E6D9BD390F8226AE echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/openmeteo-archive-keyring.gpg] https://apt.open-meteo.com $(lsb_release -cs) main | sudo tee /etc/apt/sources.list.d/openmeteo-api.list sudo apt update sudo apt install openmeteo-api装完打开/etc/default/openmeteo-api.env取消REMOTE_DATA_DIRECTORY与CACHE_SIZE8GB的注释再sudo systemctl restart openmeteo-api。自托管同样可用于商业用途但数据仍需署名单机自托管性能通常低于官方公共服务对重复调用多的业务才最划算。跑起来之后要盯什么 ⚠️数据清理。官方示例给出两条保留规则压力层数据文件名含 hPa10 天后删、地表数据 90 天后删完整 cron 任务集见cron 任务示例0 * * * * find /var/lib/openmeteo-api/data/ -type f -name chunk_* -wholename *hPa* -mtime 10 -delete 5 * * * * find /var/lib/openmeteo-api/data/ -type f -name chunk_* -mtime 90 -delete监控。APT 包用sudo journalctl -u openmeteo-api.service查日志Docker 用docker logs open-meteo。安全。默认只监听 127.0.0.1:8080外部访问不到这本身是安全的。要开放时在/etc/default/openmeteo-api.env设置API_BIND0.0.0.0:8080建议再挂 nginx 反向代理提供 TLS。性能。一次预报要从数百个压缩文件里读取小片数据冷缓存时耗时几秒服务约每 2 分钟检查远端新预报并预加载。查询变量多或历史数据多时调大CACHE_SIZE。多节点部署见多节点同步文档。常见问题速查 首次调用超时——冷缓存的正常现象等几秒重试即可同坐标的重复调用会命中缓存。变量查不到数据——本地没有该模型/变量先用sync 模型 变量补齐。外部机器连不上端口——默认绑定 127.0.0.1改API_BIND或加反向代理。数据落在哪——Docker 是/app/dataAPT 包是/var/lib/openmeteo-api/data文件均为chunk_*.om。升级——Docker 重新拉镜像并重建容器APT 包用 apt 更新升级再用openmeteo-api version核对版本。授权——天气数据为 CC BY 4.0展示数据时须署名源码为 AGPLv3改动后以网络服务分发需公开源码。最后跑一遍这条命令做验收curl -s -o /dev/null -w %{http_code} http://127.0.0.1:8080/v1/forecast?latitude47.1longitude8.4modelsecmwf_ifs025hourlytemperature_2m【免费下载链接】open-meteoFree Weather Forecast API for non-commercial use项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。