Files
wiki/Catalogue-Self-Hosted/apps/app-statistics-for-strava.md
T
2026-06-09 18:40:21 +02:00

4.4 KiB


title: Statistics for Strava created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, strava, statistics, python, flask, dashboard] confidence: high contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/rc4c/Strava-statistics]

Statistics for Strava 📊

Générateur de statistiques et heatmaps à partir des activités Strava. Outil Python/Flask qui produit des visualisations riches impossibles à obtenir dans l'interface officielle Strava.

Métadonnée Valeur
Site web https://statistics-for-strava.kamp.cat/
GitHub https://github.com/rc4c/Strava-statistics
License MIT
Langage Python (Flask)
Étoiles 118 (selfh.st rank)
Dernière MAJ 2026-05-15
Catégorie cat-fitness

Description

Statistics for Strava est une application web qui se connecte à votre compte Strava via l'API officielle et génère des statistiques avancées sur vos activités sportives : heatmaps géographiques, graphiques d'effort, analyses par période, comparaisons annuelles, et bien plus. C'est l'outil idéal pour les cyclistes et coureurs qui veulent aller au-delà des statistiques de base de Strava.

Fonctionnalités phares :

  • Heatmaps interactives (toutes activités ou par sport)
  • Statistiques annuelles : totaux,Records personnels, progression
  • Visualisations effort/semaine, jour/heure préférés
  • Distributions par jour de la semaine, par mois
  • Graphiques d'élévation et dénivelé cumulé
  • Support multi-sport : course, vélo, natation, randonnée, etc.
  • Export PDF des rapports
  • Mode clair/sombre

L'architecture est un backend Flask léger qui orchestre les appels à l'API Strava (avec cache), un worker de génération de heatmaps (basé sur Folium/Leaflet), et un frontend statique servi directement. Pas de base de données externe : tout repose sur des fichiers JSON cachés localement, ce qui simplifie énormément la sauvegarde.

Installation

Via Docker (recommandé)

services:
  strava-stats:
    build: https://github.com/rc4c/Strava-statistics.git
    restart: unless-stopped
    environment:
      STRAVA_CLIENT_ID: ${STRAVA_CLIENT_ID}
      STRAVA_CLIENT_SECRET: ${STRAVA_CLIENT_SECRET}
      STRAVA_REFRESH_TOKEN: ${STRAVA_REFRESH_TOKEN}
      FLASK_SECRET_KEY: ${FLASK_SECRET_KEY:-changez-moi}
      TZ: Europe/Paris
    volumes:
      - strava_cache:/app/cache
    ports:
      - "8080:8080"

volumes:
  strava_cache:

Étape préliminaire obligatoire

  1. Créer une app Strava sur https://www.strava.com/settings/api
  2. Noter Client ID et Client Secret
  3. Générer un refresh token via le flow OAuth (voir doc du projet)
  4. Renseigner ces variables dans .env

Installation manuelle

git clone https://github.com/rc4c/Strava-statistics.git
cd Strava-statistics
pip install -r requirements.txt
cp .env.example .env  # éditer avec vos credentials Strava
python main.py

Configuration

  • STRAVA_CLIENT_ID / STRAVA_CLIENT_SECRET : credentials de l'app Strava
  • STRAVA_REFRESH_TOKEN : token longue durée pour éviter de réauthentifier
  • FLASK_SECRET_KEY : secret Flask pour les sessions
  • Le cache local permet d'éviter de saturer les quotas de l'API Strava (200 req / 15 min)

Alternatives

Open source :

  • app-endurain : clone Strava complet (pas que stats)
  • app-fittrackee : tracker indépendant sans Strava
  • Strava Local Heatmap (variante plus simple) : juste la heatmap
  • VeloViewer (web) : payant, stats pro

Propriétaire :

  • Strava Premium : dashboards améliorés mais limités
  • VeloViewer : ~25€/an, très riche pour cyclistes

Sécurité

  • Les credentials Strava sont sensibles : ne jamais commit le .env
  • Le STRAVA_REFRESH_TOKEN donne accès à toutes vos activités Strava : chiffrez le volume
  • Limiter l'accès réseau au service (pas d'exposition publique large)
  • Mettre à jour régulièrement : Strava fait évoluer son API

Ressources

Pages Liées