--- title: wger created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, fitness, workout, nutrition, python, django, agpl] confidence: high contested: false sources: [https://selfh.st/apps/?tag=fitness, https://github.com/wger-project/wger, https://wger.de] --- # wger 🏋️ > Application **FLOSS de gestion d'entraînements, nutrition et poids** écrite en Python/Django, avec API REST. Référence open source auto-hébergeable pour le suivi fitness complet. | Métadonnée | Valeur | | :--- | :--- | | **Site web** | https://wger.de/ | | **GitHub** | https://github.com/wger-project/wger | | **License** | AGPL-3.0-or-later | | **Langage** | Python (Django) | | **Étoiles** | ⭐6.2k (GitHub) / ⭐917 (selfh.st rank) | | **Dernière MAJ** | 2026-06-04 | | **Catégorie** | [[cat-fitness]] | ## Description wger (prononcé « vɛɡɐ ») est une application web **libre et open source** de gestion d'entraînements, de nutrition et de poids corporel. Écrit principalement en Python avec le framework **Django**, le projet vise à fournir une alternative crédible aux services commerciaux comme MyFitnessPal, Strong ou Jefit, tout en gardant un contrôle total sur ses données de santé. Côté fonctionnalités, wger offre un **gestionnaire de routines d'entraînement** flexible avec règles de progression automatique, une **base de données d'exercices** collaborative (wiki), un **tracker de poids et mesures corporelles**, un **journal nutritionnel** s'appuyant sur la base collaborative **Open Food Facts**, une **galerie de photos** de progression, et un **mode multi-utilisateurs** basique permettant la gestion d'une petite salle de sport. Une **API REST** complète permet l'intégration avec des outils tiers et des automatisations (Home Assistant, scripts de nutrition, etc.). L'**écosystème est multi-plateforme** : le backend web s'accompagne d'apps natives pour **Android** (Google Play et F-Droid), **iOS**, et **Flathub** (Linux desktop), toutes basées sur Flutter et consommant l'API REST. La **traduction est gérée par Weblate** (multilingue, dont français complet). Le projet est **261 contributeurs**, **9000+ commits**, et un rythme de release soutenu (v2.5 en avril 2026, suivi Django 6, Python 3.14 supporté). ## Installation ### Via Docker (recommandé) Le repo dédié [wger-project/docker](https://github.com/wger-project/docker) fournit un template prêt à l'emploi : ```yaml # docker-compose.yml services: db: image: postgres:16-alpine restart: unless-stopped volumes: - wger-db:/var/lib/postgresql/data environment: POSTGRES_USER: wger POSTGRES_PASSWORD: wger POSTGRES_DB: wger healthcheck: test: ["CMD-SHELL", "pg_isready -U wger"] interval: 10s timeout: 5s retries: 5 app: image: wger/server:latest container_name: wger restart: unless-stopped depends_on: db: condition: service_healthy environment: DJANGO_SETTINGS_MODULE: wger.settings DJANGO_SECRET_KEY: change-me-with-pwgen-50 DJANGO_ALLOWED_HOSTS: "wger.example.com,localhost" SITE_URL: https://wger.example.com EMAIL_HOST: smtp.example.com EMAIL_PORT: 587 EMAIL_HOST_USER: wger@example.com EMAIL_HOST_PASSWORD: smtp-secret EMAIL_USE_TLS: "True" POSTGRES_HOST: db POSTGRES_PORT: 5432 POSTGRES_USER: wger POSTGRES_PASSWORD: wger POSTGRES_DB: wger ports: - "8080:80" volumes: - wger-media:/home/wger/media volumes: wger-db: wger-media: ``` ```bash # Premier lancement : créer le super-utilisateur docker compose run --rm app wger create-superuser admin admin@example.com ``` ### Installation manuelle 1. **Pré-requis** : Python 3.10+, PostgreSQL 14+, Node.js (pour le build frontend), `uv` recommandé. 2. **Cloner** : `git clone https://github.com/wger-project/wger && cd wger` 3. **Dépendances** : `uv sync` (lockfile `uv.lock` fourni). 4. **Base de données** : créer un utilisateur et une DB PostgreSQL (`createdb wger`). 5. **Variables d'environnement** : copier `.env.example` en `.env`, ajuster `DJANGO_SECRET_KEY`, `POSTGRES_*`, `EMAIL_*`. 6. **Migrations** : `uv run wger migrate`. 7. **Collectstatic** : `uv run wger collectstatic --noinput`. 8. **Serveur de dev** : `uv run wger runserver 0.0.0.0:8000`. 9. **Production** : Gunicorn + reverse proxy (Traefik/Caddy). ## Configuration - **Premier lancement** : créer un super-utilisateur, se connecter, configurer la langue et l'unité (kg/lbs). - **Calendrier** : créer des routines, ajouter exercices avec sets/reps/poids, planifier les jours. - **Progression auto** : configurer des règles (ex : +2.5kg à chaque semaine complétée). - **Nutrition** : la base d'aliments est synchronisée depuis Open Food Facts (tâche cron). - **Mesures** : tracker poids, tour de taille, body fat %, etc. avec graphiques. - **API tokens** : créer des tokens dans le profil utilisateur pour intégrations tierces. - **Backups** : `pg_dump wger_db` + sauvegarde du volume `wger-media` (photos uploadées). - **HTTPS obligatoire** via reverse proxy. - **Email** : configurer SMTP pour envoi de notifications et réinitialisation de mot de passe. ## Alternatives ### Open Source - [[app-workout-cool]] — Plateforme coaching moderne (TypeScript/Next.js) - [[app-sparkyfitness]] — MyFitnessPal-like avec IA (TypeScript) - [[app-workout-tracker]] — Tracker GPX + musculation (Go) - [[app-wingfit]] — Fitness minimaliste français (Angular + FastAPI) - **Hevy / Strong** clones — FitNotes (Android natif) ### Propriétaires - **MyFitnessPal** — référence nutrition, freemium, partage de données problématique - **Strong** (iOS/Android) — app muscu fluide, 10$/mois en premium - **JEFIT** — routines muscu, app + web - **Hevy** — moderne, social, 10$/mois - **FitNotes** — gratuit mais Android only ## Sécurité - **Chiffrement mot de passe** : Django gère nativement (PBKDF2 par défaut, Argon2 possible). - **HTTPS obligatoire** via reverse proxy (Traefik/Caddy). - **API tokens** : révocables, scopes à limiter par intégration. - **2FA** : non natif dans wger core — à ajouter via reverse proxy (Authelia/Authentik). - **CSRF, XSS, SQL injection** : protégés par défaut par Django ORM et templates. - **Permissions** : multi-utilisateurs avec rôles (admin, utilisateur standard). - **Uploads** : photos stockées dans le volume, valider la sanitisation des EXIF. - **AGPL-3.0** : si vous modifiez wger et l'exposez publiquement, vous **devez** redistribuer les sources. - **Backups** : `pg_dump` quotidien + rsync des médias photos. ## Ressources - Site officiel : https://wger.de/ - Documentation : https://wger.readthedocs.io/ - Code source : https://github.com/wger-project/wger - Docker template : https://github.com/wger-project/docker - Weblate traductions : https://hosted.weblate.org/engage/wger/ - API docs : https://wger.readthedocs.io/en/latest/api.html - Discord : https://discord.gg/rPWFv6W - Mastodon : @wger@fosstodon.org - selfh.st : https://selfh.st/apps/?tag=fitness ## Pages Liées - [[cat-fitness]] — Catégorie parente - [[app-workout-cool]] — Alternative moderne (TypeScript) - [[app-sparkyfitness]] — Alternative nutrition+IA - [[app-workout-tracker]] — Alternative Go - [[app-wingfit]] — Alternative minimaliste FR - [[recettes-docker-compose]] — Templates de déploiement - [[securisation-home-lab]] — Bonnes pratiques sécurité