--- title: Endurain created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, strava-alternative, activity-tracker, python, fastapi, gpx] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/Endurain/endurain] --- # Endurain 🏃 > Clone **lĂ©ger et moderne** de Strava, Ă©crit en Python/FastAPI. Suivi d'activitĂ©s outdoor (course, vĂ©lo, natation) avec import GPX/FIT, statistiques et interface Ă©purĂ©e. | MĂ©tadonnĂ©e | Valeur | | :--- | :--- | | **Site web** | https://endurain.com/ | | **GitHub** | https://github.com/Endurain/endurain | | **License** | AGPL-3.0-or-later | | **Langage** | Python (FastAPI + Vue.js) | | **Étoiles** | ⭐4 (selfh.st rank) | | **DerniĂšre MAJ** | 2026-05-08 | | **CatĂ©gorie** | [[cat-fitness]] | ## Description **Endurain** est un projet rĂ©cent (2024+) qui vise Ă  fournir une **alternative open source Ă  Strava** centrĂ©e sur les activitĂ©s d'endurance. InspirĂ© de l'interface Strava mais sans le cĂŽtĂ© social/segment, il se concentre sur l'**essentiel** : importer une trace, voir sa carte, ses stats, son historique. FonctionnalitĂ©s : - **Import GPX, TCX et FIT** - **Carte interactive** OpenStreetMap par activitĂ© - **Statistiques** par sport (course, vĂ©lo, natation, etc.) - **Équipements** (chaussures, vĂ©lo) avec kilomĂ©trage cumulĂ© - **Multi-utilisateurs** avec comptes sĂ©parĂ©s - **API REST** documentĂ©e - **Mode sombre** natif - **Docker-first** : dĂ©ploiement simplifiĂ© L'**architecture** est moderne et saine : backend **FastAPI + SQLModel + PostgreSQL**, frontend **Vue 3 + Vite + Pinia**, file de tĂąches **optionnelle** avec **arq** (Redis). Le code est **propre, typĂ©, documentĂ©**, et le projet monte en maturitĂ© rapidement. C'est l'un des **success stories rĂ©cents** du self-hosting fitness. > **Note** : peu d'Ă©toiles (⭐4) ne reflĂšte pas la qualitĂ© — le projet est encore jeune mais l'activitĂ© GitHub (commits, issues, releases) est soutenue. ## Installation ### Via Docker Compose (recommandĂ©) ```yaml services: endurain-db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: endurain POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme} POSTGRES_DB: endurain volumes: - endurain_db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U endurain"] interval: 10s timeout: 5s retries: 5 endurain-backend: image: ghcr.io/endurain/endurain:latest restart: unless-stopped depends_on: endurain-db: condition: service_healthy environment: DATABASE_URL: postgresql://endurain:${DB_PASSWORD:-changeme}@endurain-db:5432/endurain SECRET_KEY: ${SECRET_KEY:-changez-moi-32-caracteres} TZ: Europe/Paris volumes: - endurain_uploads:/app/uploads ports: - "8000:8000" volumes: endurain_db: endurain_uploads: ``` ### Installation manuelle (Dev) ```bash git clone https://github.com/Endurain/endurain.git cd endurain # Backend cd backend python -m venv venv && source venv/bin/activate pip install -r requirements.txt alembic upgrade head uvicorn app.main:app --reload # Frontend (autre terminal) cd ../frontend npm install && npm run dev ``` ## Configuration - `DATABASE_URL` : PostgreSQL obligatoire - `SECRET_KEY` : pour JWT, 32+ caractĂšres - `TZ` : fuseau horaire (important pour les calculs quotidiens) - **Premier utilisateur** créé en CLI : `python -m app.scripts.create_user --admin` - **Migrations** : `alembic upgrade head` Ă  chaque release ## Alternatives **Open source** : - [[app-fittrackee]] : plus mature, français, fonctionnalitĂ©s proches - [[app-statistics-for-strava]] : si vous voulez juste des stats sur vos donnĂ©es Strava - [[app-wger]] : orientĂ© musculation, pas outdoor - **Runalyze** : allemand, riche, plus lourd - **OwnTracks** : si focus gĂ©olocalisation gĂ©nĂ©rique **PropriĂ©taire** : - **Strava** : leader, segments sociaux, gratuit avec limites - **Garmin Connect** : si Ă©cosystĂšme Garmin - **Komoot** : orientĂ© itinĂ©rance vĂ©lo/rando ## SĂ©curitĂ© - **Changer** `DB_PASSWORD` et `SECRET_KEY` absolument - **HTTPS obligatoire** via reverse proxy (Traefik, Caddy) - Sauvegarder le volume `endurain_uploads` (fichiers GPX/FIT) et `endurain_db` (`pg_dump`) - Les traces GPX contiennent des **donnĂ©es de localisation** : sĂ©curiser l'accĂšs - **Activer les migrations** lors de chaque upgrade (lire le CHANGELOG) ## Ressources - **GitHub** : https://github.com/Endurain/endurain - **Site officiel** : https://endurain.com/ - **selfh.st** : https://selfh.st/apps/?tag=fitness ## Pages LiĂ©es - [[cat-fitness]] - [[recettes-docker-compose]] - [[app-fittrackee]] — alternative mature - [[app-statistics-for-strava]] — pour stats Strava - [[app-wger]] — orientĂ© musculation