Skip to content

Endurain

Fitness tracking application - Alternative open-source à Strava.

Informations

Accès

  • URL locale: http://192.168.1.104:8080
  • URL publique (via reverse proxy): https://run.ncls.ltd
  • Default credentials:
    • Username: admin
    • Password: admin
    • ⚠️ Changer le mot de passe après la première connexion

Configuration Reverse Proxy

Endurain est accessible via Caddy (LXC 103) :

  • Config : caddy/Caddyfile sur LXC 103 (bloc run.ncls.ltd)
  • Backend: http://192.168.1.104:8080
  • Frontend: https://run.ncls.ltd (ancien domaine endurain.ncls.ltd redirige en 301)

Le .env est configuré avec BEHIND_PROXY=true et ENDURAIN_HOST=https://run.ncls.ltd pour le bon fonctionnement derrière le proxy.

Configuration

Structure

104-services/
├── docker-compose.yml
├── .env (secrets)
└── endurain/
    ├── data/        # Activity files, user images
    ├── logs/        # Application logs
    └── postgres/    # PostgreSQL database

Services Docker

  • endurain-app: Application principale (Python FastAPI)
  • endurain-postgres: Base de données PostgreSQL 17.5

Variables d'Environnement

Configurées dans /mnt/lxc-data/104-services/.env :

  • DB_PASSWORD / POSTGRES_PASSWORD: Mot de passe base de données
  • SECRET_KEY: Clé secrète application
  • FERNET_KEY: Clé de chiffrement
  • TZ: Timezone (Europe/Paris)
  • ENDURAIN_HOST: URL d'accès
  • BEHIND_PROXY: true si derrière reverse proxy

Fonctionnalités

  • Tracking d'activités: Course, vélo, natation, etc.
  • Intégrations: Strava, Garmin Connect
  • Statistiques: Graphiques, historique, tendances
  • Social: Partage d'activités, followers
  • Multi-utilisateurs: Plusieurs comptes sur la même instance

Commandes Utiles

# Status
pct exec 104 -- docker compose -f /opt/docker/docker-compose.yml ps

# Logs application
pct exec 104 -- docker logs endurain-app -f

# Logs database
pct exec 104 -- docker logs endurain-postgres -f

# Restart services
pct exec 104 -- docker compose -f /opt/docker/docker-compose.yml restart

# Backup manuel database
pct exec 104 -- docker exec endurain-postgres pg_dump -U endurain endurain > /opt/docker/endurain/backup-$(date +%Y%m%d).sql

Mise à Jour

# Sur le host
pct exec 104 -- bash -c "cd /opt/docker && docker compose pull && docker compose up -d"

Note: Vérifier les release notes pour breaking changes

Backup

Automatique (via script)

Les éléments suivants sont sauvegardés quotidiennement à 05:00 vers Google Drive :

  • docker-compose.yml
  • .env
  • endurain/data/ (activity files, images)

Manuel Database

La base de données PostgreSQL devrait être sauvegardée régulièrement :

# Backup
pct exec 104 -- docker exec endurain-postgres pg_dump -U endurain endurain > /tmp/endurain-db-$(date +%Y%m%d).sql

# Restore
pct exec 104 -- bash -c "cat /tmp/endurain-db-YYYYMMDD.sql | docker exec -i endurain-postgres psql -U endurain endurain"

Important: Ne pas sauvegarder directement le dossier /postgres pendant que la base tourne (risque de corruption)

Dépannage

Container en restart loop

Vérifier les permissions :

# Sur le host
ls -lan /mnt/lxc-data/104-services/endurain/

# Data et logs doivent appartenir à 101000:101000
# Postgres doit appartenir à 100999:100999

Corriger si nécessaire :

chown -R 101000:101000 /mnt/lxc-data/104-services/endurain/{data,logs}
chown -R 100999:100999 /mnt/lxc-data/104-services/endurain/postgres

Oubli mot de passe admin

Réinitialiser via la base de données :

pct exec 104 -- docker exec -it endurain-postgres psql -U endurain
# Puis requêtes SQL pour reset password

Espace disque

# Vérifier espace LXC
pct exec 104 -- df -h

# Vérifier taille données
du -sh /mnt/lxc-data/104-services/endurain/*

Intégrations

Strava

  1. Créer application Strava API : developers.strava.com
  2. Configurer OAuth callback : http://192.168.1.104:8080/api/v1/strava/callback
  3. Ajouter credentials dans les settings Endurain

Garmin Connect

  1. Connecter dans les settings Endurain
  2. Sync automatique des activités

Sécurité

  • ⚠️ Changer le mot de passe admin par défaut
  • Configurer derrière reverse proxy (Caddy) pour HTTPS
  • Activer 2FA si disponible
  • Limiter l'accès réseau (UFW/firewall) si exposé

Voir Aussi