Comment j'ai cessé de payer des abonnements de suivi de fitness et déployé wger sur mon propre serveur
J'ai une vieille habitude : dès que je commence à aller à la salle de sport, mon téléphone accumule une douzaine d'applications de fitness. Au début tout se passe bien, mais une semaine plus tard, vous êtes accueilli par un mur de paiement. Voulez-vous créer un programme complexe avec une progression de charge ? Payez mensuellement. Voulez-vous suivre vos calories sans les publicités intrusives pour des compléments douteux ? Payez à nouveau. Ajoutez à cela des formats propriétaires fermés qui empêchent l'exportation correcte des données, et l'envie de tenir un journal disparaît rapidement.
Il y a quelque temps, je suis tombé sur un projet open-source appelé wger (prononcé approximativement « vee-ger »). C'est un gestionnaire complet d'entraînement et de nutrition auto-hébergé, écrit en Python et Django. Le projet est sur GitHub depuis 2013, a recueilli plus de 6,6 mille étoiles, et a évolué en une plateforme mature avec des clients mobiles et une API REST ouverte.
Ce que le système peut faire
En termes de fonctionnalités, wger couvre pratiquement tous les besoins d'une personne qui fait régulièrement de l'exercice et suit sa condition physique.
Constructeur d'entraînement et progression de charge
Ici, vous pouvez créer des programmes de toute complexité : des splits simples à la périodisation avec des règles précises de progression de charge. La base de données d'exercices est fournie prête à l'emploi, avec des images, des descriptions de technique et des décompositions par groupes musculaires. S'il manque une machine spécifique, vous pouvez facilement l'ajouter vous-même ou la soumettre à la communauté.
Suivi nutritionnel et intégration avec Open Food Facts
Au lieu de saisir manuellement les informations nutritionnelles de chaque pomme ou poitrine de poulet, wger récupère la base de données de produits depuis Open Food Facts. C'est une immense base de données ouverte de produits alimentaires du monde entier. Vous pouvez créer vos propres plans de repas, suivre les macronutriments (protéines, lipides, glucides) et l'apport calorique quotidien.
Mesures et galerie de progression
Au-delà du poids corporel de base, le système stocke l'historique du tour de taille, des biceps, du pourcentage de graisse corporelle et de toutes les métriques personnalisées. Vous pouvez également télécharger des photos de progression par date. Puisque le serveur est sous votre contrôle, les photos personnelles ne fuiront pas vers des nuages tiers.
Clients mobiles et desktop
D'habitude, les projets open-source comme celui-ci n'ont qu'une interface web, ce qui est peu pratique à ouvrir sur votre smartphone juste au rack de squat. wger dispose d'une application Flutter officielle. Elle est conçue pour Android (y compris Google Play et F-Droid), iOS, et Flathub pour Linux desktop. Le client se connecte directement à votre instance via l'API.
Sous le capot
L'architecture du projet ressemble à un classique des services web fiables :
- Back-end écrit en Django (Python).
- Base de données : PostgreSQL ou SQLite (pour des tests rapides).
- Le front-end utilise les templates Django standard plus une API REST construite sur Django REST Framework.
- Les applications mobiles sont écrites en Flutter, le code source se trouve dans des dépôts séparés sous l'organisation.
- Licence : AGPL-3.0.
Avoir une API REST complète signifie que vous pouvez automatiser la journalisation des entraînements via des webhooks, connecter des balances connectées, ou écrire votre propre script Python qui compile des statistiques annuelles et envoie un beau rapport à votre messagerie.
Démarrage rapide
Déployer votre propre instance est plus simple via Docker Compose. L'équipe du projet maintient un dépôt séparé avec toutes les configurations prêtes à l'emploi.
Étape une. Clonez le dépôt avec les fichiers Docker :
git clone https://github.com/wger-project/docker.git wger-docker
cd wger-docker
Étape deux. Démarrez la pile de conteneurs :
docker compose up -d
Après le démarrage, l'interface web sera disponible sur le port local (par défaut http://localhost:80). Lors de la première connexion, le système vous invitera à créer un compte administrateur et à charger les ensembles de base d'exercices et d'ingrédients.
Si configurer votre propre serveur vous semble trop fastidieux, les auteurs ont un serveur public gratuit à l'adresse wger.de. Vous pouvez vous y enregistrer, tester l'interface, et décider ensuite si vous avez besoin de votre propre hébergement.
Pour qui est-ce fait
Le projet est parfait pour quiconque :
- Souhaite stocker les données de santé et d'entraînement sur son propre matériel.
- En a marre des abonnements sans fin dans les applications commerciales comme MyFitnessPal ou Hevy.
- Recherche un back-end prêt à l'emploi pour un projet de fitness ou une salle de sport (wger dispose d'un mode multi-utilisateur basique avec contrôle d'accès basé sur les rôles pour les entraîneurs et les clients).
Comme points négatifs : l'interface web paraît un peu démodée par endroits, et l'application mobile accuse parfois un retard par rapport aux alternatives payantes en termes de fluidité. Mais l'indépendance vis-à-vis des nuages tiers et l'API ouverte compensent largement. Si vous cherchez quelque chose pour un serveur domestique ou un Raspberry Pi, wger mérite définitivement une place dans votre docker-compose.yml.
Projets similaires
