---
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
