Hoe ik Stopte met Betalen voor Fitness Tracker Abonnementen en wger op Mijn Eigen Server Deployde
Ik heb een oude gewoonte: zodra ik naar de sportschool ga, hoopt mijn telefoon een dozijn fitness-apps op. In het begin gaat alles goed, maar een week later word je begroet door een betaalmuur. Wil je een complex programma met gewichtsprogressie maken? Betaal maandelijks. Wil je calorieën bijhouden zonder opdringerige advertenties voor twijfelachtige supplementen? Betaal opnieuw. Voeg daar nog gesloten proprietaire formaten aan toe die goede data-export verhinderen, en de motivatie om logs bij te houden verdwijnt snel.
Enige tijd geleden stuitte ik op een open-source project genaamd wger (ongeveer uitgesproken als "vee-ger"). Het is een volledig uitgeruste self-hosted workout- en voedingsmanager geschreven in Python en Django. Het project staat sinds 2013 op GitHub, heeft meer dan 6,6 duizend sterren verzameld en is uitgegroeid tot een volwassen platform met mobiele clients en een open REST API.
Wat het systeem kan doen
Qua functionaliteit dekt wger praktisch alle behoeften van een persoon die regelmatig sport en zijn fitness bijhoudt.
Workout-constructor en loadprogressie
Hier kun je programma's van elke complexiteit maken: van eenvoudige splits tot periodisering met nauwkeurige gewichtsprogressieregels. De oefendatabase wordt meegeleverd, met afbeeldingen, techniekbeschrijvingen en uitsplitsingen naar spiergroepen. Als een specifieke machine ontbreekt, kun je deze eenvoudig zelf toevoegen of indienen bij de community.
Voedingsregistratie en Open Food Facts-integratie
In plaats van handmatig de voedingswaarde van elke appel of kippenborst in te voeren, haalt wger de productdatabase op uit Open Food Facts. Dit is een enorme open database van voedingsproducten uit de hele wereld. Je kunt je eigen maaltijdplannen opstellen, macronutriënten (eiwitten, vetten, koolhydraten) en dagelijkse calorie-inname bijhouden.
Metingen en voortgangsgalerij
Naast het basislichaamsgewicht slaat het systeem de geschiedenis op van taille, biceps, lichaamsvetpercentage en eventuele aangepaste metrieken. Je kunt ook voortgangsfoto's per datum uploaden. Omdat de server onder jouw controle staat, lekken persoonlijke foto's niet naar clouds van derden.
Mobiele en desktop-clients
Meestal hebben open-source projecten zoals dit alleen een webinterface, wat onhandig is om te openen op je smartphone tijdens de squat rack. wger heeft een officiële Flutter-app. Deze is gebouwd voor Android (inclusief Google Play en F-Droid), iOS en Flathub voor desktop Linux. De client maakt rechtstreeks verbinding met je instance via de API.
Onder de motorkap
De projectarchitectuur ziet er klassiek uit voor betrouwbare webservices:
- Backend geschreven in Django (Python).
- Database: PostgreSQL of SQLite (voor snelle tests).
- Frontend gebruikt standaard Django-templates plus een REST API gebouwd op Django REST Framework.
- Mobiele apps geschreven in Flutter, broncode leeft in aparte repositories onder de organisatie.
- Licentie: AGPL-3.0.
Een volledige REST API hebben betekent dat je workout-logging kunt automatiseren via webhooks, slimme weegschalen kunt aansluiten of je eigen Python-script kunt schrijven dat jaarlijkse statistieken compileert en een leuk rapport naar je messenger stuurt.
Snelle start
Je eigen instance deployen gaat het gemakkelijkst via Docker Compose. Het projectteam onderhoudt een aparte repository met alle kant-en-klare configuraties.
Stap één. Clone de repository met de Docker-bestanden:
git clone https://github.com/wger-project/docker.git wger-docker
cd wger-docker
Stap twee. Start de container-stack:
docker compose up -d
Na opstart is de webinterface beschikbaar op de lokale poort (standaard http://localhost:80). Bij de eerste login vraagt het systeem je om een administrator-account aan te maken en de basisset oefeningen en ingrediënten te laden.
Als het opzetten van je eigen server te veel gedoe lijkt, hebben de auteurs een openbare gratis server op wger.de. Je kunt je daar registreren, de interface testen en pas daarna beslissen of je eigen hosting nodig hebt.
Voor wie is dit bedoeld
Het project is perfect voor iedereen die:
- Gezondheids- en workoutgegevens op eigen hardware wil opslaan.
- Het beu is om eindeloos te betalen voor abonnementen in commerciële apps zoals MyFitnessPal of Hevy.
- Op zoek is naar een kant-en-klare backend voor een fitnessproject of sportschool (wger heeft een basismulti-usermodus met op rollen gebaseerde toegangscontrole voor trainers en klanten).
Aan de negatieve kant: de webinterface ziet er op sommige plaatsen een beetje ouderwets uit, en de mobiele app blijft soms achter qua vloeiendheid vergeleken met betaalde alternatieven. Maar onafhankelijkheid van clouds van derden en de open API maken dit meer dan goed. Als je op zoek bent naar iets voor een thuisserver of Raspberry Pi, verdient wger zeker een plekje in je docker-compose.yml.
Gerelateerde projecten
