TL;DR
FediMeteo began as a personal project that publishes short weather forecasts as federated accounts, built on a low-cost FreeBSD VPS and the snac ActivityPub server. The service pulls open weather data, posts city-specific updates every six hours, and scaled rapidly after being promoted on the fediverse.
What happened
A hobby project became a distributed weather service by combining lightweight tooling, open data and FreeBSD jails. The creator started on a small VPS — initially hosted in Germany and later a €4/month VM in Milan — and used FreeBSD jails to isolate per-country instances. A Python app computes coordinates, fetches forecasts (initially testing wttr.in and Open-Meteo, settling on Open-Meteo), and renders Markdown for posting. Each city is represented as a snac user; a shell script iterates cities and publishes updates via snac every six hours, while Uptime-Kuma monitors the job. The project prioritized accessibility: local-language posts, emoji cues, and pages that work without JavaScript or graphical browsers. After adding many Italian provincial capitals the author expanded across Europe; a wider audience discovered the project after a fediverse directory highlighted it, triggering requests for more cities and features such as wind data, unlisted posts, unit conversions and timezone handling.
Why it matters
- Shows low-cost infrastructure can support a broadly used federated service when combined with efficient software and careful design.
- Demonstrates how open weather APIs and minimalist tools can produce accessible, localised content for many users without storing personal data.
- Illustrates the importance of localization, accessibility and lightweight protocols in public-facing services.
- Highlights the benefits of small, cooperative open-source projects: the snac developer quickly added features to address real needs.
Key facts
- Original testing used a small VPS on a German provider (4 shared cores, 4GB RAM, 120GB SSD); current instance runs on a €4/month VPS in Milan with 4 shared cores, 8GB RAM and 75GB disk.
- FreeBSD jails are used to separate instances by country for management and security.
- The service experimented with wttr.in and Open-Meteo and settled on Open-Meteo as the primary data source.
- snac is the federated server software used to host per-city accounts and to publish posts via command line.
- A Python application generates Markdown forecasts (current, 12-hour, 7-day) after resolving city coordinates with geopy.
- A shell script (post.sh) loops through cities and posts updates every six hours via cron; requests are serialized to update cities one at a time.
- No weather data is stored locally; the system fetches and renders on demand.
- Uptime-Kuma monitors update jobs and alerts the operator if posts stop.
- The snac developer added features requested by the operator, including retaining a system language for posts and support for unlisted posts.
What to watch next
- Deployment of the more complete, global version that handles multiple timezones, unit conversions (Celsius/Fahrenheit) and city disambiguation.
- Expansion beyond Europe to cover larger countries with multiple time zones (the project noted challenges for USA, Canada, Australia).
- not confirmed in the source
Quick glossary
- FreeBSD: A free and open-source Unix-like operating system known for stability, networking and jail-based process isolation.
- VPS (Virtual Private Server): A virtualized server instance provided by hosting companies that supplies dedicated resources like CPU, RAM and storage.
- ActivityPub: A federated social networking protocol that enables servers to exchange social content such as posts and follows.
- Open-Meteo: An open weather data API providing machine-readable forecasts and observations used by developers and services.
- snac: A lightweight ActivityPub server used by the project to host city accounts and publish posts from the command line.
Reader FAQ
Who built and operates FediMeteo?
The project was created and is operated by the author of the original report; the source names Stefano Marinelli as the writer.
Which weather data source does FediMeteo use?
The service tested wttr.in and Open-Meteo and ultimately adopted Open-Meteo for regular use.
How often are city forecasts posted?
Updates are scheduled every six hours via a cron job that runs a posting script.
Does FediMeteo store local copies of weather data?
No; the implementation fetches and renders data on demand and does not keep local weather datasets.
Will the service add US-style units or handle multiple time zones?
The author said a more global version is being developed to address units, timezones and city disambiguation, but further details are not confirmed in the source.
FediMeteo: How a Tiny €4 FreeBSD VPS Became a Global Weather Service for Thousands FreeBSD 17 min read 26/02/2025 07:00:00 • Last modified: 30/12/2025 08:40:00 by Stefano Marinelli Categories: fediverse,…
Sources
- FediMeteo: A €4 FreeBSD VPS Became a Global Weather Service
- BSD Now 605: Fediverse Weather Service
- admin@fedimeteo.com
- Archive: February 2025 – IT Notes
Related posts
- Show HN: 22 GB of Hacker News in SQLite — Hacker Book dataset post
- Loss32: Build a Win32-Centric Linux Desktop to Run .exe Apps
- Enabling PowerVR GPU on RISC-V TH1520: Kernel Plumbing to 3D Rendering