# info-canicule Site d'utilité publique affichant les alertes Vigilance Météo France en temps réel et les conseils officiels en cas d'événements météo dangereux (canicule, orages, vent, etc.). - **Prod** : https://info-canicule.nocleus.com - **Source données** : [meteo.data.gouv.fr](https://meteo.data.gouv.fr/) via [Opendatasoft](https://public.opendatasoft.com/) (Licence Ouverte 2.0) - **Stack** : Astro 5 SSR + Node adapter, TailwindCSS, ioredis (cache Valkey) ## Dev local ```bash make install # Optionnel : Valkey local pour tester le cache docker run -d --name valkey-dev -p 6379:6379 valkey/valkey:8-alpine cp .env.example .env make dev ``` Ouvrir http://localhost:4321. ## Prod (VPS) ```bash # Premier déploiement (depuis le VPS) git clone git@git.nocleus.com:florian/info-canicule.git /opt/projects/info-canicule cd /opt/projects/info-canicule make env # matérialise .env depuis vault Infra make up # build + start, joint shared-net, atteint `valkey:6379` ``` Les déploiements suivants passent par la CI Forgejo (push main → workflow `deploy.yml`). ## Endpoints - `/` — carte Vigilance par département (J) - `/departement/` — détail dept (alertes J + J1 + conseils contextuels) - `/conseils` — conseils officiels pour les 7 phénomènes Vigilance - `/api/health` — JSON `{status, cache, time}` pour UptimeRobot - `/api/vigilance` — JSON public du snapshot Vigilance courant (CORS *) ## Structure ``` src/ ├── layouts/Base.astro # shell HTML + header/footer ├── components/ # VigilanceChip, DepartementGrid, VigilanceLegend ├── lib/ │ ├── cache.ts # ioredis wrapper + cacheOrFetch helper │ ├── vigilance.ts # fetch Opendatasoft + parse + maps utilitaires │ ├── phenomena.ts # référentiel 7 phénomènes + couleurs │ ├── departements.ts # liste INSEE des départements │ └── advice.ts # conseils officiels par phénomène └── pages/ # index, departement/[code], conseils, api/* ``` ## Roadmap - [x] Vraie carte SVG géographique (GeoJSON départements + paths) - [x] Historique T° (données climato base quotidiennes — CSV.GZ par département) - [x] Pages contenu (à propos, mentions légales, dépendances, soutenir) - [x] SEO (sitemap, robots, OG image, JSON-LD) - [x] Umami analytics (RGPD, sans cookies) - [ ] SDK Sentry/GlitchTip côté Astro pour reporter les erreurs serveur (DSN déjà provisionné) - [ ] Détail "qui appeler / s'inscrire au registre canicule" par mairie/préfecture - [ ] Switch optionnel vers l'API Météo France officielle (plus fraîche que Opendatasoft) - [ ] Section "comparer avec moyennes saisonnières" pour signaler les vagues de chaleur anormales