125 lines
4.9 KiB
Markdown
125 lines
4.9 KiB
Markdown
---
|
|
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
|