---
title: Workout Tracker
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, fitness, workout, tracker, typescript, react, node, prisma]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=fitness, https://github.com/c-hive/gha-dev]
---

# Workout Tracker 💪

> Application **minimaliste et efficace** de suivi d'entraînements, écrite en TypeScript. Pensée pour un usage personnel rapide : créer une routine, logger les sets, suivre la progression.

| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://workout-tracker.dev/ |
| **GitHub** | https://github.com/c-hive/gha-dev |
| **License** | MIT |
| **Langage** | TypeScript (React + Node.js) |
| **Étoiles** | ⭐48 (selfh.st rank) |
| **Dernière MAJ** | 2026-05-05 |
| **Catégorie** | [[cat-fitness]] |

## Description

**Workout Tracker** est une application web légère qui fait **exactement ce qu'on attend d'un tracker d'entraînements** : définir des exercices, créer des routines, logger les séries (poids, répétitions), et visualiser la progression dans le temps. Pas de fonctionnalités gadget, pas de nutrition, pas de réseau social : juste l'**essentiel bien fait**.

Caractéristiques :
- **Exercices** personnalisés ou depuis un catalogue
- **Routines** réutilisables (push, pull, legs, etc.)
- **Logging rapide** des séries avec auto-suggestion des valeurs précédentes
- **Historique** consultable par exercice
- **Graphiques de progression** (charge, volume, 1RM estimé)
- **Mode hors-ligne** partiel (PWA)
- **Thème sombre** par défaut
- **API REST** pour intégrations tierces

L'**architecture technique** utilise **React 18** + **Vite** côté frontend, **Node.js + Fastify** côté backend, et **Prisma + PostgreSQL** comme couche de données. Le code est **modulaire, typé strict**, et bien structuré pour servir de base à des personnalisations. Idéal pour un développeur qui veut **forker et adapter** à son flow.

## Installation

### Via Docker Compose

```yaml
services:
  workout-db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: workout
      POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme}
      POSTGRES_DB: workout
    volumes:
      - workout_db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U workout"]
      interval: 10s
      timeout: 5s
      retries: 5

  workout-api:
    build:
      context: https://github.com/c-hive/gha-dev.git
      dockerfile: apps/api/Dockerfile
    restart: unless-stopped
    depends_on:
      workout-db:
        condition: service_healthy
    environment:
      DATABASE_URL: postgres://workout:${DB_PASSWORD:-changeme}@workout-db:5432/workout
      JWT_SECRET: ${JWT_SECRET:-changez-moi}
      PORT: 3001
    ports:
      - "3001:3001"

  workout-web:
    build:
      context: https://github.com/c-hive/gha-dev.git
      dockerfile: apps/web/Dockerfile
    restart: unless-stopped
    depends_on:
      - workout-api
    environment:
      VITE_API_URL: http://localhost:3001
    ports:
      - "3000:80"

volumes:
  workout_db:
```

### Installation manuelle (Monorepo)

```bash
git clone https://github.com/c-hive/gha-dev.git
cd gha-dev
pnpm install
# Backend
pnpm --filter api db:migrate
pnpm --filter api dev
# Frontend
pnpm --filter web dev
```

## Configuration

- `DATABASE_URL` : PostgreSQL
- `JWT_SECRET` : token d'authentification
- Personnalisation des **exercices** et **routines** via l'UI (pas de YAML à maintenir)
- **Import/Export** JSON pour migrer ou sauvegarder

## Alternatives

**Open source** :
- [[app-wger]] : plus complet (nutrition incluse) mais plus lourd
- [[app-workout-cool]] : design moderne, davantage de features sociales
- [[app-sparkyfitness]] : intègre nutrition et santé
- [[app-exercise-diary]] : encore plus minimaliste, focus journal simple
- **Hevy** (clone libre) : interface familière pour anciens utilisateurs de Strong

**Propriétaire** :
- **Strong** : référence iOS/Android, payante
- **Hevy** : version freemium, populaire
- **FitNotes** : Android gratuit

## Sécurité

- **Changer** `DB_PASSWORD` et `JWT_SECRET` par défaut
- **HTTPS obligatoire** via reverse proxy
- Sauvegarder le volume `workout_db` régulièrement (`pg_dump`)
- Si exposition publique : **rate-limit** sur l'API et 2FA si multi-utilisateurs

## Ressources

- **GitHub** : https://github.com/c-hive/gha-dev
- **selfh.st** : https://selfh.st/apps/?tag=fitness

## Pages Liées

- [[cat-fitness]]
- [[recettes-docker-compose]]
- [[app-wger]] — version plus riche
- [[app-workout-cool]] — design moderne
- [[app-exercise-diary]] — minimaliste
