7.3 KiB
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 fournit un template prêt à l'emploi :
# 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:
# Premier lancement : créer le super-utilisateur
docker compose run --rm app wger create-superuser admin admin@example.com
Installation manuelle
- Pré-requis : Python 3.10+, PostgreSQL 14+, Node.js (pour le build frontend),
uvrecommandé. - Cloner :
git clone https://github.com/wger-project/wger && cd wger - Dépendances :
uv sync(lockfileuv.lockfourni). - Base de données : créer un utilisateur et une DB PostgreSQL (
createdb wger). - Variables d'environnement : copier
.env.exampleen.env, ajusterDJANGO_SECRET_KEY,POSTGRES_*,EMAIL_*. - Migrations :
uv run wger migrate. - Collectstatic :
uv run wger collectstatic --noinput. - Serveur de dev :
uv run wger runserver 0.0.0.0:8000. - 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 volumewger-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_dumpquotidien + 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é