2 points par GN⁺ 2025-12-31 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • FediMeteo est un service mondial d’information météo né sur un VPS FreeBSD à 4 euros, qui publie automatiquement la météo de chaque ville via le Fediverse
  • Chaque pays est géré de façon isolée dans une jail FreeBSD, et les données sont récupérées avec le logiciel snac et l’API Open-Meteo puis publiées au format Markdown
  • Le système se met à jour automatiquement toutes les 6 heures, prend en charge 39 jails, 2937 villes dans 38 pays, et a dépassé 7700 abonnés
  • Le service a rencontré divers problèmes d’exploitation, comme une fuite de clé API, des erreurs de calcul de coordonnées et des problèmes de traduction, mais il a été stabilisé grâce au cache et à l’amélioration du support multilingue
  • Il est considéré comme un exemple montrant qu’il est possible de construire un service mondial efficace et autonome avec une infrastructure à faible coût

Présentation du projet

  • FediMeteo est un service automatisé d’alertes météo basé sur le Fediverse, né d’un intérêt personnel
    • Son créateur est parti de l’idée qu’il voulait voir directement la météo de sa propre ville dans sa timeline
    • Le service crée des comptes par ville (bots) qui publient régulièrement la météo de chaque ville
  • FreeBSD a été choisi comme système d’exploitation, avec des jails séparées par pays pour faciliter l’administration et renforcer la sécurité
  • Les premiers tests ont été réalisés sur un VPS en Allemagne, et le service fonctionne aujourd’hui sur un VPS à 4 euros à Milan, en Italie

Principes de conception

  • Séparation des instances par pays pour renforcer l’administration et la sécurité, avec possibilité de migration individuelle si nécessaire
  • Sources de données au choix entre wttr.in et Open-Meteo, avec une préférence pour l’open source et la fiabilité
  • Accessibilité renforcée : langue locale, compatibilité avec les navigateurs texte, usage des émojis, sans dépendance à JavaScript
  • Maintien d’une architecture où de petits composants coopèrent, conformément à la philosophie Unix
  • Adoption de snac comme logiciel central, avec prise en charge d’ActivityPub, génération de RSS, faible consommation de ressources et compilation rapide

Implémentation technique

  • Chaque jail fonctionne de manière indépendante, et des scripts Python récupèrent les données de chaque ville avant de les convertir en Markdown
    • Calcul des coordonnées avec geopy, puis appel à l’API Open-Meteo
    • Envoi des publications avec la commande note de snac, sans nécessité de gérer des clés API externes
  • Le script post.sh parcourt toutes les villes pour générer et publier automatiquement les messages
    • cron l’exécute toutes les 6 heures, avec Uptime-Kuma pour la supervision de l’état du service
  • Les noms de villes sont gérés dans un fichier (cities.txt), et l’ajout d’une nouvelle ville est pris en compte automatiquement

Croissance et retours

  • Les tests ont d’abord été centrés sur l’Italie, avant une extension à différents pays européens
  • FediFollows a présenté le projet, entraînant une forte hausse du nombre d’abonnés et des demandes d’utilisateurs de plusieurs pays
  • Ajout du support multilingue, des émojis et de la fonction de publication non listée (unlisted)
  • Les fonctionnalités continuent d’être améliorées grâce aux retours rapides de la communauté de développeurs

Extension et défis techniques

  • Lors de l’extension à l’échelle mondiale, des problèmes sont apparus autour de la conversion d’unités (Celsius/Fahrenheit), des décalages horaires et de la distinction entre villes homonymes
  • L’arrivée aux États-Unis et au Canada a ajouté plus de 1200 villes, avec usage du séparateur __ pour distinguer les États ou provinces
  • Après avoir dépassé la limite de l’API gratuite d’Open-Meteo, le projet a obtenu une clé API dédiée
  • Grâce à l’efficacité de FreeBSD et de snac, il est possible d’exploiter de nombreux pays sur un seul VPS

Performances du système et infrastructure

  • Configuration du VPS : FreeBSD 14.3-RELEASE, avec BastilleBSD pour gérer les jails
    • Au total 39 jails, snapshots ZFS toutes les 15 minutes et sauvegardes externes chaque heure
    • 501 Mo de RAM utilisés, avec une légère hausse pendant les mises à jour
  • Charge CPU moyenne inférieure à 10 %, avec des pointes à 70–75 % lors des mises à jour massives
  • L’instance américaine publie avec un intervalle de 5 secondes entre les villes, pour un traitement complet d’environ 2 h 30

Exemples de résolution de problèmes

  • Fuite de clé API : exposition due à du code de débogage, corrigée immédiatement avec émission d’une nouvelle clé
  • Erreur geopy : mise en place d’un cache des coordonnées pour pallier les échecs de réponse de Nominatim
  • Problèmes de langue : correction d’omissions dans les traductions multilingues et d’erreurs dans le choix de la langue locale

État actuel (en décembre 2025)

  • Pays pris en charge : 38 pays, pour 2937 villes
  • Plus de 7707 abonnés sur le Fediverse, nombre d’abonnés RSS impossible à estimer
  • Présence des principales villes en Europe, Amérique du Nord, Asie et Océanie
  • Le système fonctionne de manière stable et conserve une marge d’extension vers d’autres pays

Conclusion

  • FediMeteo prouve qu’il est possible de construire un service mondial même avec une infrastructure à faible coût
  • C’est un exemple des valeurs de souveraineté des données, de structure simple et de coopération open source
  • Son créateur souligne qu’à travers ce projet, la météo est devenue un lien social entre les personnes

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.