Come ho smesso di pagare gli abbonamenti ai tracker fitness e ho distribuito wger sul mio server
Ho un'abitudine vecchia: non appena inizio ad andare in palestra, il mio telefono si riempie di una dozzina di app fitness. All'inizio tutto funziona bene, ma una settimana dopo vieni accolto da un paywall. Vuoi creare un programma complesso con progressione dei pesi? Paga mensilmente. Vuoi tracciare le calorie senza pubblicità invasive per integratori discutibili? Paga di nuovo. Aggiungi a questo formati proprietari chiusi che impediscono l'esportazione corretta dei dati, e la voglia di tenere traccia degli allenamenti svanisce rapidamente.
Qualche tempo fa mi sono imbattuto in un progetto open-source chiamato wger (pronunciato approssimativamente come "vee-ger"). È un completo manager per allenamenti e nutrizione self-hosted, scritto in Python e Django. Il progetto è su GitHub dal 2013, ha raccolto oltre 6.600 stelle, ed è diventato una piattaforma matura con client mobili e un'API REST aperta.
Cosa può fare il sistema
In termini di funzionalità, wger copre praticamente tutte le esigenze di una persona che si allena regolarmente e tiene traccia del proprio fitness.
Costruttore di allenamenti e progressione del carico
Qui puoi creare programmi di qualsiasi complessità: da semplici split a periodizzazioni con regole precise di progressione dei pesi. Il database degli esercizi è incluso out of the box, con immagini, descrizioni delle tecniche e raggruppamenti per gruppi muscolari. Se manca una specifica macchina, puoi facilmente aggiungerla tu stesso o sottoporla alla community.
Tracciamento nutrizionale e integrazione con Open Food Facts
Invece di inserire manualmente le informazioni nutrizionali di ogni mela o petto di pollo, wger recupera il database dei prodotti da Open Food Facts. Questo è un enorme database aperto di prodotti alimentari da tutto il mondo. Puoi creare i tuoi piani alimentari, tracciare i macronutrienti (proteine, grassi, carboidrati) e l'apporto calorico giornaliero.
Misurazioni e galleria dei progressi
Oltre al peso corporeo di base, il sistema memorizza la cronologia di vita, bicipiti, percentuale di grasso corporeo e qualsiasi metrica personalizzata. Puoi anche caricare foto dei progressi per data. Poiché il server è sotto il tuo controllo, le foto personali non verranno diffuse a cloud di terze parti.
Client mobili e desktop
Di solito, progetti open-source come questo hanno solo un'interfaccia web, scomoda da aprire sullo smartphone proprio alla panca. wger ha un'app Flutter ufficiale. È disponibile per Android (incluso Google Play e F-Droid), iOS e Flathub per Linux desktop. Il client si connette direttamente alla tua istanza tramite l'API.
Sotto il cofano
L'architettura del progetto è classica per i servizi web affidabili:
- Backend scritto in Django (Python).
- Database: PostgreSQL o SQLite (per test rapidi).
- Il frontend utilizza template Django standard più un'API REST costruita su Django REST Framework.
- Le app mobili sono scritte in Flutter, il codice sorgente risiede in repository separati sotto l'organizzazione.
- Licenza: AGPL-3.0.
Avere un'API REST completa significa che puoi automatizzare la registrazione degli allenamenti tramite webhook, connettere bilance smart o scrivere il tuo script Python che compila statistiche annuali e invia un bel report al tuo messenger.
Avvio rapido
Distribuire la tua istanza è più semplice tramite Docker Compose. Il team del progetto mantiene un repository separato con tutte le configurazioni pronte.
Primo passo. Clona il repository con i file Docker:
git clone https://github.com/wger-project/docker.git wger-docker
cd wger-docker
Secondo passo. Avvia lo stack di container:
docker compose up -d
Dopo l'avvio, l'interfaccia web sarà disponibile sulla porta locale (di default http://localhost:80). Al primo accesso, il sistema ti chiederà di creare un account amministratore e caricare i set base di esercizi e ingredienti.
Se configurare il tuo server sembra troppo complicato, gli autori hanno un server pubblico gratuito su wger.de. Puoi registrarti lì, testare l'interfaccia e solo dopo decidere se ti serve un hosting tuo.
Per chi è fatto
Il progetto è perfetto per chiunque:
- Voglia archiviare i dati sanitari e di allenamento sul proprio hardware.
- Sia stanco degli abbonamenti infiniti nelle app commerciali come MyFitnessPal o Hevy.
- Stia cercando un backend pronto per un progetto fitness o una palestra (wger ha una modalità multi-utente di base con controllo degli accessi basato sui ruoli per trainer e clienti).
Come svantaggio: l'interfaccia web sembra un po' datata in alcuni punti, e l'app mobile a volte è meno fluida delle alternative a pagamento. Ma l'indipendenza dai cloud di terze parti e l'API aperta compensano ampiamente. Se stai cercando qualcosa per un home server o Raspberry Pi, wger merita sicuramente un posto nel tuo docker-compose.yml.
Progetti correlati
