Cómo instalar Endurain en Docker: Rastreador de Fitness Autohospedado en Docker

Endurain | Fitness Tracker | Strava Alternative | Python | FastAPI | PostgreSQL | GPS Tracking | 173+ stars

Endurain en Docker: Rastreador fitness autohospedado alternativa privada a Strava con Python FastAPI, Vue.js 3, PostgreSQL, importación GPX/TCX/FIT, multi-deporte, análisis entrenamientos, Weblate multi-idioma, Codeberg, AGPL-3.0 open source 🏃💪

Endurain es un rastreador de fitness autohospedado construido como alternativa privada a Strava. Python FastAPI backend, Vue.js 3 + Tailwind CSS frontend, PostgreSQL, importación GPX/TCX/FIT, análisis entrenamientos, soporte múltiples deportes, mapas, estadísticas, sincronización Garmin/Strava, multi-idioma (Weblate), 173+ GitHub stars, AGPL-3.0 open source, 2-3 GB RAM, production-ready.



Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Endurain en Docker en el canal GENBYTE:

¿Qué es Endurain en Docker?

Endurain es un rastreador de fitness autohospedado construido como alternativa privada a Strava con Python FastAPI backend, Vue.js 3 + Tailwind CSS frontend, PostgreSQL, importación GPX/TCX/FIT/EXIF, análisis entrenamientos, mapas interactivos, múltiples deportes (running, ciclismo, natación, etc), estadísticas detalladas, sincronización Garmin/Strava, Weblate multi-idioma, sin datos compartidos con terceros. El rastreador fitness que controlas tú.

Propuesta clave: Self-hosted fitness tracker (Python + Vue.js + PostgreSQL). Import GPX/TCX/FIT. Analyze workouts. Display maps. Support multiple sports. Statistics. Garmin/Strava sync. Multi-language (Weblate). No third-party data sharing. API REST. Privacy-first. 173 GitHub stars. AGPL-3.0 open source. Demo available. Feature freeze ongoing. Development active on Codeberg. Multi-arch Docker image. Production-ready for personal/small team use.

Para homelabs: Rastreador fitness privado. Sin compartir datos. Sincronización con Garmin. Análisis detallados. Control total.

Características principales

Importación de datos

GPX, TCX, FIT (Garmin), EXIF fotos, Strava export, múltiples fuentes.

Análisis entrenamientos

Duración, distancia, calorías, ritmo medio, elevación, mapas con track.

Múltiples deportes

Running, ciclismo, natación, esquí, senderismo, hiking, triatlón.

Estadísticas

Por mes, año. Distancia total, tiempo, calorías. Gráficos de progreso.

Sincronización Garmin

Conecta con Garmin. Import automático de entrenamientos desde reloj.

Mapas interactivos

Leaflet.js. Visualiza rutas. Zoom, satélite, topográfico, layers.

Multi-idioma

Weblate. Crowdsourced translations. Español, inglés, francés, más.

API REST

API completa. Webhooks. Automatización. Integración con terceros.

Requisitos del sistema

  • Docker y Docker Compose: versión reciente.
  • RAM: mínimo 2 GB; recomendado 3+ GB.
  • Almacenamiento: 5-20 GB (entrenamientos históricos).
  • Puertos: 8000 (app web), 5432 (PostgreSQL opcional).
  • Navegador: Chrome, Firefox, Safari moderno (VueJS 3).
📌 Tip: Endurain está en feature freeze temporal. Desarrollo activo en Codeberg. Demo diaria se resetea.

Instalación con Docker Compose

Paso 1: Crear docker-compose.yml

version: '3.8' services: endurain: image: codeberg.org/endurain-project/endurain:latest ports: - "8000:8000" environment: DATABASE_URL: postgresql://endurain:contraseña@postgres:5432/endurain DEBUG: "false" TZ: Europe/Madrid depends_on: - postgres volumes: - ./data:/app/data networks: - endurain-net postgres: image: postgres:15-alpine environment: POSTGRES_DB: endurain POSTGRES_USER: endurain POSTGRES_PASSWORD: contraseña_db_segura TZ: Europe/Madrid volumes: - postgres_data:/var/lib/postgresql/data networks: - endurain-net volumes: postgres_data: networks: endurain-net:

Paso 2: Lanzar Docker Compose

docker compose up -d

Paso 3: Acceder a la interfaz

La aplicación estará disponible en http://localhost:8000 en ~30 segundos.

Acceder al proyecto

URL: http://localhost:8000

Demo online: https://demo.endurain.com (user: admin / pass: admin, se resetea diariamente)

  1. Accede a http://localhost:8000
  2. Regístrate o usa credenciales demo
  3. Sube tu primer entrenamiento (GPX o importa desde Strava)
  4. Visualiza análisis, mapas, estadísticas
  5. Configura sincronización Garmin si tienes reloj
⚠️ Importante: Endurain en desarrollo. Espera cambios. Haz backup de datos antes de actualizar.

Casos de uso

  • Atletas privados: Rastreo sin compartir datos con Strava/Garmin.
  • Equipos: Análisis entrenamientos del equipo. Comparación performance.
  • Entrenadores: Monitoreo entrenamientos de atletas. Análisis colectivo.
  • Migración desde Strava: Import histórico. Control total después.
  • GDPR compliance: Datos locales. Sin sincronización automática a terceros.
  • Análisis personal: Histórico detallado. Gráficos. Progreso a largo plazo.

Configuración avanzada

Sincronización Garmin

Si tienes reloj Garmin (Fenix, Forerunner, etc):

  1. En Endurain: Configuración → Garmin Connect
  2. Autoriza con credenciales Garmin
  3. Endurain importa automáticamente entrenamientos nuevos
  4. Los datos quedan locales, no se comparten

Integración Strava

Importa histórico desde Strava:

  • Export datos desde Strava (Account Settings → Export)
  • Carga ZIP en Endurain Import
  • Datos se cargan localmente en tu Endurain

Multi-usuario

Endurain soporta múltiples usuarios. Cada uno tiene entrenamientos privados:

  • Dashboard por usuario
  • Estadísticas independientes
  • Sincronización Garmin por usuario

Gestión y mantenimiento

Ver estado y logs

docker compose ps docker compose logs -f endurain

Detener contenedor

docker compose down

Actualizar Endurain

docker compose pull docker compose up -d

Backup de entrenamientos

docker exec endurain_postgres_1 pg_dump -U endurain endurain > entrenamientos_backup.sql

Monitoreo

  • Entrenamientos subidos: Dashboard muestra total.
  • Últimos entrenamientos: Ver en timeline.
  • Sincronización Garmin: Log en Settings.
  • Uso DB: PostgreSQL crece ~10-50 MB por 1000 entrenamientos.

Stack técnico

  • Backend: Python 3.10+, FastAPI, Pydantic, SQLAlchemy
  • Frontend: Vue.js 3, TypeScript, Tailwind CSS, Pinia + TanStack Query
  • BD: PostgreSQL 12+
  • Mapas: Leaflet.js, OpenStreetMap
  • GPS/Sports: stravalib, python-garminconnect, gpxpy, tcxreader, fitdecode
  • Localización: Weblate (crowdsourced translations)
  • Tracing: Jaeger OpenTelemetry (optional)
  • Notificaciones: Apprise (email, Slack, Discord, etc)
  • Container: Docker (Python 3.x)
  • License: AGPL-3.0 open source

Referencias oficiales

Sígueme en mis redes sociales

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.