Cómo dejé de pagar suscripciones de rastreadores de fitness y desplegué wger en mi propio servidor
Tengo un viejo hábito: en cuanto empiezo a ir al gimnasio, mi teléfono acumula una docena de apps de fitness. Al principio todo va bien, pero una semana después te encuentras con un muro de pago. ¿Quieres crear un programa complejo con progresión de peso? Paga mensualmente. ¿Quieres registrar tus calorías sin anuncios intrusivos de suplementos cuestionables? Paga de nuevo. A esto se suma que los formatos propietarios cerrados impiden exportar datos correctamente, y las ganas de llevar un registro desaparecen rápidamente.
Hace un tiempo me topé con un proyecto de código abierto llamado wger (se pronuncia aproximadamente como "vi-yer"). Es un gestor completo de ejercicios y nutrición con autoalojamiento, escrito en Python y Django. El proyecto está en GitHub desde 2013, ha acumulado más de 6.6 mil estrellas, y se ha convertido en una plataforma madura con clientes móviles y una API REST abierta.
Lo que puede hacer el sistema
En términos de funcionalidad, wger cubre prácticamente todas las necesidades de una persona que hace ejercicio regularmente y lleva un seguimiento de su estado físico.
Constructor de entrenamientos y progresión de carga
Aquí puedes crear programas de cualquier complejidad: desde splits simples hasta periodización con reglas precisas de progresión de peso. La base de datos de ejercicios viene lista para usar, con imágenes, descripciones de técnica y desgloses por grupos musculares. Si falta una máquina específica, puedes agregarla fácilmente tú mismo o enviarla a la comunidad.
Seguimiento nutricional e integración con Open Food Facts
En lugar de introducir manualmente la información nutricional de cada manzana o pechuga de pollo, wger obtiene la base de datos de productos de Open Food Facts. Esta es una enorme base de datos abierta de productos alimenticios de todo el mundo. Puedes crear tus propios planes de comidas, seguir los macronutrientes (proteínas, grasas, carbohidratos) y la ingesta calórica diaria.
Mediciones y galería de progreso
Más allá del peso corporal básico, el sistema almacena el historial de cintura, bíceps, porcentaje de grasa corporal y cualquier métrica personalizada. También puedes subir fotos de progreso por fecha. Como el servidor está bajo tu control, las fotos personales no se filtrarán a nubes de terceros.
Clientes móviles y de escritorio
Por lo general, proyectos de código abierto como este solo tienen una interfaz web, lo cual es inconveniente de abrir en tu teléfono justo en la rack de sentadillas. wger tiene una app oficial en Flutter. Está disponible para Android (incluyendo Google Play y F-Droid), iOS y Flathub para Linux de escritorio. El cliente se conecta directamente a tu instancia a través de la API.
Bajo el capó
La arquitectura del proyecto es clásica para servicios web confiables:
- Backend escrito en Django (Python).
- Base de datos: PostgreSQL o SQLite (para pruebas rápidas).
- El frontend usa plantillas estándar de Django más una API REST construida con Django REST Framework.
- Las apps móviles están escritas en Flutter, el código fuente vive en repositorios separados bajo la organización.
- Licencia: AGPL-3.0.
Tener una API REST completa significa que puedes automatizar el registro de ejercicios mediante webhooks, conectar básculas inteligentes o escribir tu propio script en Python que compile estadísticas anuales y envíe un bonito informe a tu messenger.
Inicio rápido
Desplegar tu propia instancia es más fácil a través de Docker Compose. El equipo del proyecto mantiene un repositorio separado con todas las configuraciones listas para usar.
Paso uno. Clona el repositorio con los archivos de Docker:
git clone https://github.com/wger-project/docker.git wger-docker
cd wger-docker
Paso dos. Inicia el stack de contenedores:
docker compose up -d
Después del inicio, la interfaz web estará disponible en el puerto local (por defecto http://localhost:80). En el primer inicio de sesión, el sistema te pedirá crear una cuenta de administrador y cargar los conjuntos básicos de ejercicios e ingredientes.
Si configurar tu propio servidor parece demasiado trabajo, los autores tienen un servidor público gratuito en wger.de. Puedes registrarte allí, probar la interfaz y solo entonces decidir si necesitas tu propio alojamiento.
Para quién está hecho
El proyecto es ideal para cualquiera que:
- Quiere almacenar datos de salud y ejercicios en su propio hardware.
- Está cansado de las suscripciones interminables en apps comerciales como MyFitnessPal o Hevy.
- Busca un backend listo para usar para un proyecto de fitness o gimnasio (wger tiene un modo multiusuario básico con control de acceso basado en roles para entrenadores y clientes).
Como punto en contra: la interfaz web se ve un poco anticuada en algunos lugares, y la app móvil a veces se queda atrás de las alternativas de pago en fluidez. Pero la independencia de nubes de terceros y la API abierta lo compensan ampliamente. Si buscas algo para un servidor doméstico o Raspberry Pi, wger definitivamente merece un lugar en tu docker-compose.yml.
Proyectos relacionados
