- FediMeteo es un servicio global de información meteorológica que comenzó en un VPS FreeBSD de 4 euros y publica automáticamente el clima de cada ciudad a través del Fediverse
- Cada país se administra de forma separada en un FreeBSD jail, y usa el software snac y la API de Open-Meteo para obtener datos y publicarlos en formato Markdown
- El sistema se actualiza automáticamente cada 6 horas, admite 39 jail, 2937 ciudades en 38 países y ha crecido hasta superar los 7700 seguidores
- Enfrentó varios problemas operativos, como filtración de claves API, errores en el cálculo de coordenadas y problemas de traducción de idiomas, pero se estabilizó con mejoras en caché y soporte multilingüe
- Es considerado un caso que demuestra que incluso con infraestructura de bajo costo es posible construir un servicio global eficiente y autónomo
Resumen del proyecto
- FediMeteo es un servicio automatizado de alertas meteorológicas basado en el Fediverse que nació de un interés personal
- Su creador comenzó con la idea de querer ver directamente en su timeline el clima de su propia ciudad
- El servicio crea cuentas por ciudad (bots) y publica periódicamente el clima de cada una
- Se eligió FreeBSD como sistema operativo y se separaron jail por país para mejorar la administración y la seguridad
- Las pruebas iniciales se realizaron en un VPS en Alemania, y actualmente opera en un VPS de 4 euros en Milán, Italia
Principios de diseño
- Separación de instancias por país para reforzar la administración y la seguridad, con posibilidad de mover cada una de forma individual si es necesario
- La fuente de datos se elige entre wttr.in y Open-Meteo, priorizando la afinidad con el código abierto y la confiabilidad
- Mayor accesibilidad: idioma local, compatibilidad con navegadores de texto, uso de emojis y sin dependencia de JavaScript
- Se mantiene una estructura en la que componentes pequeños cooperan entre sí, siguiendo la filosofía Unix
- Se adoptó snac como software principal, con soporte para ActivityPub, generación de RSS, bajo uso de recursos y compilación rápida
Implementación técnica
- Cada jail funciona de forma independiente, y un script en Python obtiene los datos de cada ciudad y los convierte a Markdown
- Usa geopy para calcular coordenadas y luego llama a la API de Open-Meteo
- Envía publicaciones con el comando
note de snac, sin necesidad de gestionar claves de API externas
- El script post.sh recorre todas las ciudades y genera/publica automáticamente las entradas
- cron se ejecuta cada 6 horas y Uptime-Kuma monitorea el estado
- Los nombres de las ciudades se gestionan en un archivo (
cities.txt), y al agregar una nueva ciudad se refleja automáticamente
Crecimiento y reacción
- Al principio se probó con foco en Italia y luego se expandió a distintos países de Europa
- FediFollows presentó el proyecto y los seguidores aumentaron rápidamente, junto con las solicitudes de usuarios de varios países
- Se añadieron soporte multilingüe, expresiones con emojis y la función de publicaciones no listadas (unlisted)
- Las mejoras de funciones continuaron gracias al rápido feedback de la comunidad de desarrolladores
Expansión y desafíos técnicos
- Durante la expansión global surgieron problemas como conversión de unidades (Celsius/Fahrenheit), diferencias de zona horaria y distinción entre ciudades con el mismo nombre
- Al entrar en Estados Unidos y Canadá, se añadieron más de 1200 ciudades y se usó el separador
__ para distinguir por estado/provincia
- Después de superar el límite gratuito de la API de Open-Meteo, se le proporcionó una clave API dedicada
- Gracias a la eficiencia de FreeBSD y snac, fue posible operar muchos países incluso en un solo VPS
Rendimiento del sistema e infraestructura
- Especificaciones del VPS: FreeBSD 14.3-RELEASE, con BastilleBSD para gestionar los jail
- Total de 39 jail, snapshots de ZFS cada 15 minutos y respaldos externos cada hora
- Uso de RAM de 501 MB, con un leve aumento durante las actualizaciones
- La carga promedio de CPU se mantiene por debajo del 10%, aunque durante actualizaciones grandes sube hasta 70–75%
- La instancia de Estados Unidos publica con intervalos de 5 segundos entre ciudades, y el procesamiento completo toma unas 2 horas y media
Casos de resolución de problemas
- Filtración de clave API: quedó expuesta por código de depuración, se corrigió de inmediato y se emitió una nueva clave
- Error de geopy: cuando fallaba la respuesta de Nominatim, se resolvió introduciendo caché de coordenadas
- Problemas de idioma: se corrigieron omisiones en traducciones multilingües y errores en la selección del idioma local
Estado actual (a diciembre de 2025)
- Países compatibles: 38 países, con 2937 ciudades
- Más de 7707 seguidores en el Fediverse; no es posible estimar la cantidad de suscriptores RSS
- Incluye ciudades principales de Europa, Norteamérica, Asia y Oceanía
- El sistema opera de forma estable y todavía tiene margen para expandirse a más países
Conclusión
- FediMeteo demuestra que es posible construir un servicio global incluso con infraestructura de bajo costo
- Es un caso que muestra el valor de la soberanía de datos, la estructura simple y la colaboración open source
- Su creador destaca que, a través del proyecto, el clima se convirtió en un medio social que conecta a las personas
1 comentarios
Comentarios de Hacker News
Da mucho gusto ver que este tipo de proyectos pequeños crezcan con éxito
Siento que FreeBSD tiene menos cosas innecesarias y menor latencia que una distribución de Linux
Configuré una VM de FreeBSD de 4 dólares al mes en Vultr (1GB RAM, 1vCPU) y, incluso corriendo Caddy, solo usa 12% de la RAM
Con una VM de 4GB RAM y 4vCPU probablemente se pueda aguantar bastante tráfico
Quiero hacer mi blog personal como una webapp basada en texto con estilo BBS retro — con un servidor multihilo en Nim + sqlite, corriendo en FreeBSD como un solo binario de 4MB, sin contenedores ni librerías de JS
Este artículo me dio más confianza para irme por FreeBSD
Hoy lo probé con mkosi(https://github.com/systemd/mkosi) y, en una instalación mínima, Fedora 43 usa unos 130MiB de RAM y Debian alrededor de 100MiB
Recuerdo que cuando probé una instalación mínima de FreeBSD era parecido, o un poco más dependiendo de la configuración de ZFS
Tal vez una de las causas fue la transición a x64
Me parecía curioso que para hacer lo mismo termináramos usando el doble de RAM, aunque a cambio ahora prácticamente podemos usar RAM ilimitada
Incluso iniciar sesión por SSH es mucho más rápido que en Ubuntu, y el gestor de paquetes apk también es rapidísimo
En cuanto al modelo de licencia prefiero el lado GNU, pero el código en sí me gusta más en estilo BSD
Si es lo segundo, podría valer la pena echarle un vistazo a FlaskBB
Yo también estoy haciendo algo parecido usando open-meteo para un sistema personal de pronóstico de surf
Solo cubre una región, pero es fácil de escalar
Combina los datos oceánicos de open-meteo con pronósticos meteorológicos de corto y largo plazo, y luego usa un LLM para convertir datos cuantitativos en descripciones cualitativas
Básicamente automatiza lo que yo hacía en mi cabeza
Si tienes ideas, estaría bueno conocerlas
https://surfrash.xyz/
Me gusta que sea una interfaz centrada en explicaciones en vez de un muro de datos
También pido que agreguen la zona de Manly (NSW, Australia)
Fue una lectura entretenida
Ojalá me hubiera interesado más por *BSD cuando era más joven, pero ahora estoy tan acostumbrado a Linux que no me resulta fácil cambiar
Parece que ZFS y la función de jail hacen que la administración sea muy fluida
Yo uso podman, pero todavía no he usado ZFS en Linux
Planeo hacer un archivo personal, así que pienso aprovechar la deduplicación de ZFS
Estoy tratando de reducir stacks complejos como Docker, y aunque systemd está ahí, la idea de jail o sandbox resulta bastante atractiva
Prefiero herramientas que funcionen bien solo con la configuración por defecto
Me sorprendieron las especificaciones de ese “VPS de 4 euros”
Por ejemplo, el VPS más barato de Hetzner tiene 2 vCPU, 4GB RAM, 40GB NVMe SSD, aunque no ofrece conexión de 1Gb/s
Lo más barato que encontré fue Contabo
Los servidores baratos muchas veces son de generaciones antiguas o están demasiado sobrevendidos
4 vCPU podrían ser más lentos que 2 vCPU en un servidor moderno
Aun así, para una app centrada en RAM puede ser una buena opción
Dicen que es difícil conseguir instancias, pero yo lo he usado sin problemas por más de 2 años
Como la cuenta gratuita podría terminarse, conviene pasarla a plan de pago por seguridad
Me gusta ver proyectos simples construidos directamente, sin infraestructura gigantesca (Kubernetes, AWS, DynamoDB, etc.)
El propio Hacker News corre sobre un servidor FreeBSD de 4 núcleos
Enlace relacionado
Yo también compré un servidor con especificaciones parecidas por unos 5 dólares
Tiene entre 400 y 500GB de almacenamiento, y empecé con una promoción de 8 dólares por 3 meses
Después pasará a 5 dólares al mes, y la diversión y la inmersión de operar un VPS por cuenta propia son grandes
OVH tiene precios bajos y la ventaja de una política de egress ilimitado
Upcloud también tuvo un equipo de soporte excelente
También escuché el consejo de que, con OVH, conviene contactar soporte por Twitter o Discord
Disfruto el proceso mismo de optimizar comparando precios de servidores y calidad de soporte
Alguna vez pensé en comprar el dominio “freeofcharge.org” y ofrecer como subdominios servicios gratuitos que quepan en RAM
La idea era reunir servicios útiles que pudieran operarse por menos de 10 dólares al mes
Yo también quisiera hacer algo parecido: una herramienta que convierta avisos meteorológicos de una región específica a HTML/Markdown fácil de leer
No sería para el fediverse, solo para alertas del clima más accesibles
Sobre la opinión de que “hay que ofrecer el pronóstico en el idioma local”,
como también hay muchos usuarios que no conocen el idioma local, creo que sobrescribir el idioma predeterminado del navegador es innecesario
En su lugar, ofrece expresiones intuitivas con emojis para reducir la barrera del idioma