Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Dockerfile multi-stage (node:20 build + nginx:alpine serve) - nginx.conf SPA avec try_files et gzip - docker-compose.yml avec labels Registrator/Fabio (SERVICE_80_CHECK_TCP) - .woodpecker.yml : validate, security-check, build-image, SBOM, write-env, test-env, deploy (stop→acme→up), test-deploy, healthcheck - .gitignore : ajout .env et /.reports/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Carte Leaflet plein écran avec heatmap (OpenStreetMap, dark mode) - Sélecteur de période 24h / 7j / 30j - Panneau latéral : volume total, compteur de transactions, top 3 villes - mockData.ts : 2 400 transactions simulées sur 24 villes FR/EU - DataService.ts : abstraction prête pour branchement Subsquid/Ğ1v2 - Schémas Zod (g1.schema.ts) : validation runtime Duniter GVA + Cesium+ - Adaptateurs DuniterAdapter et CesiumAdapter (Ğ1v1, à migrer v2) - Suite de tests Vitest : 43 tests, conformité schéma Ğ1 vérifiée Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>