>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Python

Como Parei de Pagar por Assinaturas de Rastreadores de Fitness e Implementei o wger no Meu Próprio Servidor

wger logo

Tenho um hábito antigo: assim que começo a ir à academia, meu celular acumula uma dezena de apps de fitness. No início tudo vai bem, mas uma semana depois você é recebido por um paywall. Quer criar um programa complexo com progressão de carga? Pague mensalmente. Quer rastrear calorias sem anúncios intrusivos de suplementos questionáveis? Pague novamente. Some a isso formatos proprietários fechados que impedem a exportação adequada dos dados, e a vontade de manter os registros desaparece rapidamente.

Há algum tempo, encontrei um projeto open-source chamado wger (pronunciado aproximadamente como "vi-guêr"). É um gerenciador completo de treinos e nutrição self-hosted escrito em Python e Django. O projeto está no GitHub desde 2013, acumulou mais de 6,6 mil estrelas e evoluiu para uma plataforma madura com clientes móveis e uma API REST aberta.

Get it on Google Play Download on the App Store Get it on F-Droid Get it on Flathub

O que o sistema pode fazer

Em termos de funcionalidade, o wger cobre praticamente todas as necessidades de uma pessoa que se exercita regularmente e acompanha sua forma física.

Construtor de treinos e progressão de carga

Aqui você pode criar programas de qualquer complexidade: desde splits simples até periodização com regras precisas de progressão de carga. O banco de dados de exercícios vem pronto para uso, com fotos, descrições de técnica e separações por grupos musculares. Se uma máquina específica estiver faltando, você pode adicioná-la facilmente ou enviá-la para a comunidade.

Rastreamento de nutrição e integração com Open Food Facts

Em vez de inserir manualmente as informações nutricionais de cada maçã ou peito de frango, o wger busca o banco de dados de produtos do Open Food Facts. Este é um enorme banco de dados aberto de produtos alimentícios de todo o mundo. Você pode criar seus próprios planos de refeição, rastrear macronutrientes (proteínas, gorduras, carboidratos) e ingestão calórica diária.

Medidas e galeria de progresso

Além do peso corporal básico, o sistema armazena o histórico de cintura, bíceps, percentual de gordura corporal e qualquer métrica personalizada. Você também pode fazer upload de fotos de progresso por data. Como o servidor está sob seu controle, fotos pessoais não vazarão para nuvens de terceiros.

Clientes móveis e desktop

Normalmente, projetos open-source como este possuem apenas uma interface web, o que é inconveniente para abrir no smartphone bem na hora do agachamento. O wger tem um app oficial em Flutter. Ele é construído para Android (incluindo Google Play e F-Droid), iOS e Flathub para Linux desktop. O cliente se conecta diretamente à sua instância via API.

Por baixo dos panos

A arquitetura do projeto parece clássica para serviços web confiáveis:

  • Backend escrito em Django (Python).
  • Banco de dados: PostgreSQL ou SQLite (para testes rápidos).
  • O frontend usa templates padrão do Django mais uma API REST construída com Django REST Framework.
  • Apps móveis escritos em Flutter, código-fonte vive em repositórios separados sob a organização.
  • Licença: AGPL-3.0.

Ter uma API REST completa significa que você pode automatizar o registro de treinos via webhooks, conectar balanças inteligentes ou escrever seu próprio script Python que compila estatísticas anuais e envia um belo relatório para seu mensageiro.

Início rápido

Implantar sua própria instância é mais fácil via Docker Compose. A equipe do projeto mantém um repositório separado com todas as configurações prontas.

Primeiro passo. Clone o repositório com os arquivos Docker:

git clone https://github.com/wger-project/docker.git wger-docker
cd wger-docker

Segundo passo. Inicie o stack de containers:

docker compose up -d

Após a inicialização, a interface web estará disponível na porta local (por padrão http://localhost:80). No primeiro login, o sistema irá solicitar que você crie uma conta de administrador e carregue os conjuntos básicos de exercícios e ingredientes.

Se configurar seu próprio servidor parecer muita trabalheira, os autores têm um servidor público gratuito em wger.de. Você pode se registrar lá, testar a interface e só então decidir se precisa de sua própria hospedagem.

Para quem é isso

O projeto é uma ótima escolha para quem:

  • Quer armazenar dados de saúde e treino em seu próprio hardware.
  • Está cansado de assinaturas intermináveis em apps comerciais como MyFitnessPal ou Hevy.
  • Está procurando um backend pronto para um projeto de fitness ou academia (o wger tem um modo multiusuário básico com controle de acesso baseado em funções para treinadores e clientes).

Como pontos negativos: a interface web parece um pouco antiquada em alguns lugares, e o app móvel às vezes fica atrás de alternativas pagas em suavidade. Mas a independência de nuvens de terceiros e a API aberta compensam bastante. Se você está procurando algo para um servidor doméstico ou Raspberry Pi, o wger definitivamente merece um lugar no seu docker-compose.yml.

Projetos relacionados