158 lines
5.6 KiB
Markdown
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
|