---
title: FitTrackee
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, fitness, activity-tracker, python, flask, gpx, strava-alternative]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=fitness, https://github.com/FitTrackee/FitTrackee]
---

# FitTrackee 🚴

> Tracker d'activités sportives **auto-hébergeable** écrit en Python/Flask, avec import GPX/TCX, multi-utilisateurs et interface épurée. Alternative francophone à Strava.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://fittrackee.org/ |
| **GitHub** | https://github.com/FitTrackee/FitTrackee |
| **License** | AGPL-3.0-or-later |
| **Langage** | Python (Flask + Vue.js) |
| **Étoiles** | ⭐74 (selfh.st rank) |
| **Dernière MAJ** | 2026-05-22 |
| **Catégorie** | [[cat-fitness]] |

## Description

**FitTrackee** est une application web **libre** de suivi d'activités sportives (course, vélo, randonnée, natation, etc.) conçue par un développeur français (Samy Rabih). Elle permet d'**importer des traces GPX, TCX et FIT**, d'analyser les performances (distance, dénivelé, vitesse, fréquence cardiaque), et de partager ponctuellement des segments avec d'autres utilisateurs.

Fonctionnalités clés :
- **Import de fichiers** GPX, TCX, FIT (depuis montre/GPS)
- **Carte OpenStreetMap** des activités avec profil altimétrique
- **Statistiques** par sport, période, équipement
- **Multi-utilisateurs** avec comptes isolés
- **API REST documentée** (OpenAPI)
- **Équipements** (vélo, chaussures) avec suivi de kilométrage
- **Segments** : découpage manuel de tronçons
- **Notifications par e-mail**
- **Mode sombre** et interface responsive

L'**architecture** repose sur un backend **Flask + SQLAlchemy** (PostgreSQL ou SQLite), un **worker Dramatiq + Redis** pour les tâches asynchrones (envoi d'e-mails, génération de tuiles de carte), et un frontend **Vue.js 3**. Le projet est **français à l'origine**, ce qui garantit une **traduction de qualité** et une documentation claire pour la communauté FR.

## Installation

### Via Docker Compose

```yaml
services:
  fittrackee-db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: fittrackee
      POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme}
      POSTGRES_DB: fittrackee
    volumes:
      - fittrackee_db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U fittrackee"]
      interval: 10s
      timeout: 5s
      retries: 5

  fittrackee-redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - fittrackee_redis:/data

  fittrackee-backend:
    image: fittrackee/fittrackee:latest
    restart: unless-stopped
    depends_on:
      fittrackee-db:
        condition: service_healthy
      fittrackee-redis:
        condition: service_started
    environment:
      FLASK_APP: fittrackee
      DATABASE_URL: postgresql://fittrackee:${DB_PASSWORD:-changeme}@fittrackee-db:5432/fittrackee
      REDIS_URL: redis://fittrackee-redis:6379
      SECRET_KEY: ${FLASK_SECRET_KEY:-changez-moi}
      EMAIL_URL: smtplogin://user:pass@smtp.example.com:587
      TILE_SERVER_URL: https://tile.openstreetmap.org/{z}/{x}/{y}.png
      WEATHER_API_KEY: ${WEATHER_API_KEY:-}
    volumes:
      - fittrackee_uploads:/usr/src/app/uploads
    ports:
      - "5000:5000"

  fittrackee-worker:
    image: fittrackee/fittrackee:latest
    restart: unless-stopped
    depends_on:
      - fittrackee-backend
    command: dramatiq fittrackee.worker
    environment:
      DATABASE_URL: postgresql://fittrackee:${DB_PASSWORD:-changeme}@fittrackee-db:5432/fittrackee
      REDIS_URL: redis://fittrackee-redis:6379
    volumes:
      - fittrackee_uploads:/usr/src/app/uploads

volumes:
  fittrackee_db:
  fittrackee_redis:
  fittrackee_uploads:
```

### Installation manuelle

Voir la documentation officielle https://docs.fittrackee.org/installation.html (sections Docker, manuel Python, etc.).

## Configuration

- `DATABASE_URL` : PostgreSQL ou SQLite (SQLite possible pour petit usage)
- `REDIS_URL` : pour la file de tâches
- `SECRET_KEY` : secret Flask (obligatoire en production)
- `EMAIL_URL` : pour notifications (format `smtplogin://user:pass@host:port`)
- `TILE_SERVER_URL` : serveur de tuiles (par défaut OSM, peut être changé)
- `WEATHER_API_KEY` : optionnel, pour récupérer la météo des activités

L'**admin** se crée en CLI : `flask users create --admin`.

## Alternatives

**Open source** :
- [[app-wger]] : orienté routines d'entraînement, pas activités outdoor
- [[app-endurain]] : clone Strava plus récent, Go
- [[app-statistics-for-strava]] : si vous voulez juste des stats sur vos données Strava
- **Runalyze** : allemand, riche, plus lourd à héberger

**Propriétaire** :
- **Strava** : leader, segments sociaux, gratuit avec limitations
- **Garmin Connect** : si écosystème Garmin
- **Komoot** : orienté randonnée/vélo itinérance

## Sécurité

- **Changer toutes les clés** par défaut avant déploiement
- Mettre en place **HTTPS** (reverse proxy type Caddy/Traefik)
- **Sauvegardes** : `pg_dump` quotidien + volume `fittrackee_uploads`
- Les fichiers GPX/FIT uploadés peuvent contenir des **données de localisation précises** : sécuriser l'accès

## Ressources

- **GitHub** : https://github.com/FitTrackee/FitTrackee
- **Site officiel** : https://fittrackee.org/
- **Documentation** : https://docs.fittrackee.org/
- **selfh.st** : https://selfh.st/apps/?tag=fitness

## Pages Liées

- [[cat-fitness]]
- [[recettes-docker-compose]]
- [[app-wger]] — orienté routines
- [[app-endurain]] — clone Strava
- [[app-statistics-for-strava]] — pour les stats Strava
