Files
2026-06-09 18:40:21 +02:00

158 lines
5.6 KiB
Markdown

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