Skip to content

berch-t/CarbonTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

CarbonTrack

Empreinte carbone temps réel par job GPU — transparence opérateur datacenter, conformité CSRD/ESRS E1, optimisation carbon-aware.

Status Python Next.js License

CarbonTrack instrumente un datacenter pour publier en continu l'empreinte carbone de chaque job GPU, au format conforme ESRS E1 (CSRD) et à la norme ISO/IEC 21031:2024 (Software Carbon Intensity).

Trois usages :

  1. Dashboard public — transparence mix énergétique, jauge gCO₂/kWh temps réel, widget embeddable.
  2. Espace client — rapport PDF ESRS E1 vérifiable, CO₂ par projet, comparaison vs AWS/GCP/Azure.
  3. API & hint — API REST versionnée + endpoint carbon-aware scheduling hint pour décaler les jobs non-urgents vers les créneaux les plus propres.

Premier pilote : DataOne Eybens (Grenoble, GPU AMD Instinct, liquid cooling direct). Indifférent au vendor GPU (AMD ROCm + NVIDIA CUDA via abstraction).


Pourquoi

  • Pression réglementaire : CSRD/ESRS E1 continue d'exiger Scope 2 double-méthode (location + market-based) pour l'exercice 2025 publié en 2026.
  • Gap produit : les outils ESG génériques (Sweep, Watershed, Persefoni) s'arrêtent au niveau "site / mois". Aucun ne descend au job GPU individuel — l'unité économique réelle d'un DC IA.
  • Avantage France : mix RTE ~32 gCO₂/kWh (2023) vs ~385 en Virginie. Quantifier cet avantage en temps réel = argument commercial direct.

Quickstart

Prérequis : Docker, uv (Python), pnpm (Node 20+), just.

git clone <repo> carbontrack && cd carbontrack
cp .env.example .env         # renseigner ELECTRICITY_MAPS_API_KEY, ANTHROPIC_API_KEY
just bootstrap               # install deps Python + JS + pre-commit hooks
just up                      # Docker Compose : api + web + widget + redis + questdb + postgres
just seed                    # charge fixtures RTE + ADEME Base Empreinte V23.6

# Dashboard public
open http://localhost:3000

# API
curl http://localhost:8000/v1/carbon/intensity

Stack

Couche Techno
API Python 3.12 · FastAPI · Pydantic v2 · APScheduler
Persistence QuestDB (timeseries) · PostgreSQL 17 (relationnel) · Redis 7 (cache / quota)
Frontend Next.js 15 · React 19 · TypeScript 5.6 · Tailwind · shadcn/ui · Recharts
Widget esbuild (ESM, zéro dépendance, ~4 KB gzipped)
Rapport PDF WeasyPrint + Jinja2 + matplotlib
LLM Anthropic claude-haiku-4-5 (avec prompt caching)
Sources carbone RTE ODRÉ eco2mix · Electricity Maps · ADEME Base Empreinte V23.6
Déploiement Docker · GitHub Actions · GCP Cloud Run ou Scaleway Serverless Containers
Observabilité OpenTelemetry · Prometheus · Grafana Cloud · Loki

Détail complet : carbontrack.md.

Plan d'implémentation

MVP en 3 semaines découpé en 10 chantiers (A → J). Voir PLAN.md pour la todolist complète et les dépendances inter-chantiers.

Structure monorepo (cible)

carbontrack/
├── apps/
│   ├── api/              # FastAPI (Python 3.12, uv)
│   ├── web/              # Next.js 15 (dashboard)
│   └── widget/           # JS embeddable (esbuild, ESM, 0 dep)
├── packages/
│   ├── shared-types/     # TypeScript types partagés (web ↔ widget)
│   └── shared-ui/        # composants shadcn/ui réutilisables
├── infra/
│   ├── docker/           # Dockerfile par service
│   ├── compose/          # docker-compose.yml + overrides
│   └── deploy/           # Cloud Run / Scaleway manifests
├── tests/
│   ├── fixtures/         # réponses RTE / Electricity Maps capturées
│   └── golden/           # golden tests calcul SCI
├── docs/                 # methodology.md, api.md
├── carbontrack.md        # spec MVP (source of truth)
├── PLAN.md               # plan détaillé chantiers A-J
├── CLAUDE.md             # instructions agent Claude Code
└── justfile              # recettes dev

Conformité

  • SCI — ISO/IEC 21031:2024 : SCI = ((E × I) + M) / R appliqué par job
  • CSRD ESRS E1 — Scope 2 location-based (RTE) + market-based (PPA client), E1-5 (énergie) + E1-6 (GES)
  • GHG Protocol — export CSV compatible Watershed / Sweep / Persefoni / IBM Envizi

Chaque rapport PDF inclut un hash SHA-256 en pied de page pour vérification tierce.

License

MIT © 2026 — à déterminer avec DataOne selon accord commercial.

About

Real-time GPU carbon footprint for datacenters — CSRD/ESRS E1 compliant, SCI (ISO/IEC 21031:2024), public dashboard & embeddable widget. Vendor-neutral (AMD ROCm + NVIDIA CUDA).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors