Files
wiki/Catalogue-Self-Hosted/apps/app-fitbit-health-dashboard.md
2026-06-09 18:40:21 +02:00

4.9 KiB


title: Fitbit Health Dashboard created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, fitbit, dashboard, python, fastapi, visualization] confidence: high contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/nicwortel/fitbit-health-dashboard]

Fitbit Health Dashboard ❤️

Dashboard personnel pour visualiser et analyser les données Fitbit (poids, sommeil, fréquence cardiaque, activité). Python/FastAPI avec graphiques riches en HTML/Plotly.

Métadonnée Valeur
Site web https://nicwortel.nl/fitbit-health-dashboard/
GitHub https://github.com/nicwortel/fitbit-health-dashboard
License MIT
Langage Python (FastAPI)
Étoiles 70 (selfh.st rank)
Dernière MAJ 2026-04-10
Catégorie cat-fitness

Description

Fitbit Health Dashboard est une application web personnelle qui se connecte à l'API Fitbit et centralise toutes vos données de santé dans un tableau de bord interactif et esthétique. L'idée est de garder le contrôle sur les données de votre montre/balance Fitbit sans dépendre des changements d'interface de l'app officielle.

Fonctionnalités :

  • Poids : courbes d'évolution, moyennes mobiles, IMC
  • Sommeil : durée, phases, efficacité, régularité
  • Activité : pas, calories, distance, étages, zones fréquence cardiaque
  • Fréquence cardiaque au repos : tendances long terme
  • Hydratation et alimentation (si trackés sur Fitbit)
  • Plages de dates personnalisables
  • Graphiques interactifs Plotly (zoom, export PNG)
  • Mode sombre

L'architecture est volontairement simple : backend FastAPI qui parle à l'API Fitbit, SQLite pour le cache des données (très efficace, pas besoin de Postgres), et frontend statique avec htmx + Plotly pour des graphes riches sans build JS complexe. Le projet est maintenu par un développeur néerlandais et reste proche de ses besoins personnels (qualité > exhaustivité).

Installation

Via Docker Compose

services:
  fitbit-dashboard:
    build: https://github.com/nicwortel/fitbit-health-dashboard.git
    restart: unless-stopped
    environment:
      FITBIT_CLIENT_ID: ${FITBIT_CLIENT_ID}
      FITBIT_CLIENT_SECRET: ${FITBIT_CLIENT_SECRET}
      FITBIT_REDIRECT_URI: http://localhost:8000/oauth/callback
      SESSION_SECRET: ${SESSION_SECRET:-changez-moi-32-caracteres}
      TZ: Europe/Paris
    volumes:
      - fitbit_data:/app/data
    ports:
      - "8000:8000"

volumes:
  fitbit_data:

Étape préliminaire obligatoire

  1. Créer une app sur https://dev.fitbit.com/apps/new
  2. OAuth 2.0 Application Type : « Server »
  3. Callback URL : http://localhost:8000/oauth/callback (adapter à votre domaine)
  4. Renseigner les credentials dans .env

Installation manuelle

git clone https://github.com/nicwortel/fitbit-health-dashboard.git
cd fitbit-health-dashboard
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # éditer avec vos credentials
uvicorn app.main:app --host 0.0.0.0 --port 8000

Configuration

  • FITBIT_CLIENT_ID / FITBIT_CLIENT_SECRET : credentials dev.fitbit.com
  • FITBIT_REDIRECT_URI : doit correspondre EXACTEMENT à celui déclaré sur dev.fitbit.com
  • SESSION_SECRET : secret pour les sessions Flask (32+ caractères)
  • TZ : fuseau horaire (impacte les calculs de jour)
  • Le cache SQLite accélère drastiquement les affichages (l'API Fitbit est très limitée en quotas)

Alternatives

Open source :

  • app-statistics-for-strava : même philosophie, mais pour Strava
  • HealthData-Export / Gadgetbridge : pour exporter les données hors cloud
  • QuantifyME : quantifier soi open source

Propriétaire :

  • Fitbit app (officielle) : gratuite, complète, mais ferme le contrôle des données
  • Fitbit Premium : ~9€/mois, analyses avancées

Notes : Google (propriétaire de Fitbit) a déprécié certaines API au profit de Google Fit — vérifier la compatibilité actuelle. Si vos appareils sont récents, privilégiez un export Google Takeout + app-statistics-for-strava.

Sécurité

  • Credentials Fitbit = accès à toutes vos données de santé : ne jamais commit le .env
  • Mettre en place HTTPS obligatoire (reverse proxy)
  • Sauvegarder le volume fitbit_data (SQLite) régulièrement
  • Considérer un firewall : ce dashboard est personnel, pas de besoin d'accès public

Ressources

Pages Liées