WINDFISH 1.9.0 — WEB FONCTIONNEL, CIEL DÉTAILLÉ ET MISES À JOUR By MAHER BEN GAIED | 29 octobre 2026 IMPORTANT — CE ZIP SE COPIE DANS LA RACINE WINDFISH Il contient directement public/, index.html et _sources/. Il n'est plus nécessaire chercher un public/ à l'intérieur d'un autre WindFish-Website/ pour publier le site. Destination de votre installation : /var/www/html/WindFish/ Votre URL principale reste https://service.e-syndic.tn/WindFish/public/index.html 1. SAUVEGARDER ET DÉPLOYER - Sauvegardez le site et les données dans un emplacement non accessible par HTTP. - Décompressez le ZIP localement, puis copiez son CONTENU dans /var/www/html/WindFish/ par fusion. Ne recréez pas ce dossier et ne supprimez rien. - L'ordre recommandé : public/downloads/ (APK et documents d'abord, release.json en dernier), public/assets/, public/data/, pages, fichiers PHP et enfin le nouveau public/downloads/release.json. Une mise à jour du manifeste annonce le nouveau fichier : celui-ci doit déjà exister sur le serveur. - Les pages index.html et en.html dans public/ lancent désormais la vraie application Web. presentation.html / presentation-en.html gardent le site de présentation. - Conservez private/download-count.txt, public/community-config.php et tous vos fichiers personnalisés. Le ZIP ne contient ni compteur initialisé ni configuration contenant les comptes. Les téléchargements restent cumulatifs. - Ne faites pas de rsync --delete, chmod 777 ou réinitialisation globale des droits. - La règle Apache _sources/.htaccess refuse l'accès HTTP aux sources. Elle exige AllowOverride approprié. Avec nginx ou si .htaccess n'est pas pris en charge, gardez _sources hors de /var/www/html, ou ajoutez la règle fournie avant publication. Aucun secret n'est livré, mais les sources et scripts ne doivent pas être exposés. - Ne publiez jamais les sauvegardes, clés de signature, configurations ou données de comptes dans les dossiers public/, downloads/ ou _sources/. 2. VÉRIFIER LE SITE https://service.e-syndic.tn/WindFish/public/index.html https://service.e-syndic.tn/WindFish/public/en.html https://service.e-syndic.tn/WindFish/public/presentation.html https://service.e-syndic.tn/WindFish/public/update.php https://service.e-syndic.tn/WindFish/public/stats.php?diagnostic=1 Rechargez avec Ctrl+F5. update.php doit répondre ok:true, versionCode:10900, webVersionCode:10900. La version du moteur de compteur reste 1.1.1. Une lecture update.php/stats.php n'ajoute pas de téléchargement. Une requête GET réelle download.php ajoute une demande ; ce n'est pas une installation confirmée. Ne restaurez pas un ancien nombre après un essai de téléchargement. 3. INSTALLER ANDROID 1.9.0 UNE PREMIÈRE FOIS Téléchargez WindFish_1.9.0-web-clouds.apk depuis le site puis installez-le par-dessus WindFish. Sauvegardez votre carnet avant l'opération lorsque c'est possible. Ne désinstallez pas l'application, n'effacez pas ses données, gardez Play Protect. L'ancienne version 1.8 n'a pas ce vérificateur : ce premier passage à 1.9 est manuel. La signature, le package, la clé de stockage et le socle natif corrigé sont conservés. Android minimum déclaré 8/API26, cible34 inchangée. Ce n'est pas une livraison AAB pour Google Play. Le diagnostic natif identifie toujours le socle 1.4.2, l'interface et le package identifient 1.9.0. Pas de nouvelle permission Android. 4. FONCTIONNEMENT DE LA VÉRIFICATION AU DÉMARRAGE À partir de 1.9, un contrôle public est lancé au démarrage et au retour dans l'app (au plus toutes les15 minutes). Il ne transmet pas GPS, carnet ou identifiant. S'il existe une version supérieure compatible, un encart affiche ses nouveautés. Le bouton ouvre le téléchargement HTTPS officiel dans le navigateur du téléphone. Ouvrez l'APK téléchargé puis confirmez Installer/Mettre à jour dans Android. Cette version NE télécharge PAS l'APK automatiquement et NE l'installe PAS en silence. Un échec de vérification ne bloque pas WindFish et n'affirme pas que tout est à jour. Réglages → Mises à jour : vérifier manuellement ou désactiver le contrôle automatique. La recherche ne touche pas au compteur ; seul le téléchargement réel est compté. 5. PUBLIER UNE FUTURE VERSION Le manifeste actif est public/downloads/release.json. Il contient package, versionCode, webVersionCode, minSdk, fichier, taille, SHA-256 et notes FR/EN. L'endpoint vérifie la présence, la taille et l'empreinte du fichier avant de l'annoncer. Un APK supérieur doit garder le même certificat Android. Ne renommez pas un ancien APK en inventant une version supérieure. Ne remplacez pas une URL immuable par un autre fichier de même nom. L'APK est validé séparément lors de la préparation de la publication. Un outil optionnel vérifie la signature v2, le package et la version réels : python3 _sources/WindFish-Website/tools/publish_apk_release.py \ --apk /CHEMIN/vers/nouvelle-version-signee.apk \ --public /var/www/html/WindFish/public Ajoutez --apply après avoir lu la simulation. Dépendance : Python3 + cryptography. Cet outil ne construit/signe pas l'APK et ne modifie jamais le compteur ou les avis. Il préserve webVersionCode si seul l'APK change. Une livraison Web complète doit mettre à jour les pages, puis son webVersionCode correspondant, pas seulement le JSON. Si le ZIP complet futur est utilisé, publier d'abord l'APK puis le manifeste. Les téléchargements demandés depuis le contrôle de version sont épinglés à la version et à son SHA-256 : un déploiement incomplet produit 409, pas un mauvais fichier. 6. WEB ET ANDROID La même interface et les mêmes calculs fournissent l'horloge, les prévisions, cartes, ciel, mer/houle, pression, spots, carnet, sorties, statistiques, appâts et avis. Sur ordinateur : navigation latérale et panneau du ciel. Sur mobile : navigation basse. Les rappels Android programmés n'existent pas dans le navigateur. Pas de push distant. Le carnet, les favoris et les points privés restent dans leur navigateur/appareil. Le compte d'avis ne synchronise PAS automatiquement le carnet Android. Exporter/Importer permet un transfert volontaire. Le moteur de communauté conserve l'activation requise. Si non initialisé, suivre _sources/community-module/docs et la notice1.8 conservée ; stocker les données de comptes HORS du documentroot, ne pas lancer une seconde installation sur une base existante. Le site peut fonctionner sans compte pour la météo. Le Web n'est pas promis comme PWA installable hors ligne ; aucune cache serveur personnelle, aucun service-worker de synchronisation ou stockage partagé caché ajouté. 7. CIEL ET NUAGES Le cadran montre température °C et couverture nuageuse. Un appui ouvre le détail : nuages bas/moyens/hauts lorsqu'ils existent, rayonnement, soleil prévu en minutes/heure, comparaison des modèles, écarts et horaires. Les codes principalement dégagé, partiellement nuageux et couvert ont désormais des représentations différentes. Les couches se superposent : ne pas les additionner. La couverture n'est pas une probabilité de pluie, ni l'opacité. Le soleil n'est pas calculé comme 100-couverture. Les valeurs sont des prévisions, pas des mesures locales ni une correction validée de la météo du mardi mentionné. Données manquantes : —, jamais zéro inventé. 37 indicateurs sont pris en charge, leur disponibilité dépend du modèle et de l'heure. 8. RETOUR ARRIÈRE ET DONNÉES Conservez une sauvegarde de fichiers statiques séparée des données actives. Revenir aux anciennes pages ne doit jamais restaurer un vieux compteur ou une base de comptes. Android n'accepte pas normalement une versionCode inférieure. Corriger par une version supérieure, ne pas désinstaller pour forcer un retour et perdre le carnet. Il n'y a aucune migration destructive ni nouveau format de comptes dans 1.9. ENGLISH SUMMARY Merge the archive contents directly into your existing WindFish root; public/ is the live folder. Preserve the existing counter, community-config.php, server configuration and private account database. Do not delete missing files or reset counts. Keep _sources outside the Web document root or protect it with the supplied Apache/nginx rules. The browser now runs the shared application, not a screenshot. Android and browser private records are separate; review accounts do not synchronize the logbook. Install 1.9 manually over the old app once. New startup checks fetch metadata only. A newer version offers a download button; Android installation still requires user confirmation. No silent install or automatic APK transfer. Future APKs need the same signing identity and an increased real versionCode. Publish APK first, manifest last. Detailed sky shows temperature, cloud coverage/layers and forecast sunshine where available. No observed accuracy or Android device validation is claimed. Le site public n'a pas été modifié par cette livraison. Validation sur téléphone et sur votre hébergement nécessaire. Aucun fournisseur réel validé depuis le conteneur. Open-Meteo hébergé gratuit reste soumis à son usage non commercial.