--- 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 ```yaml 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 ```bash 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 - **GitHub** : https://github.com/nicwortel/fitbit-health-dashboard - **Démo de l'auteur** : https://nicwortel.nl/fitbit-health-dashboard/ - **API Fitbit** : https://dev.fitbit.com/build/reference/ - **selfh.st** : https://selfh.st/apps/?tag=fitness ## Pages Liées - [[cat-fitness]] - [[recettes-docker-compose]] - [[app-statistics-for-strava]] — philosophie similaire, pour Strava - [[app-fittrackee]] — pour activités outdoor