Files
wiki/Catalogue-Self-Hosted/apps/app-fittrackee.md
T
2026-06-09 18:40:21 +02:00

5.6 KiB


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

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

Pages Liées