Files
2026-06-09 18:40:21 +02:00

133 lines
4.1 KiB
Markdown

---
title: Wingfit
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, fitness, workout, typescript, react, node, simple]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=fitness, https://github.com/lucast他们都融汇
fit]
---
# Wingfit 🪶
> Tracker d'entraînements **simple et élégant** écrit en TypeScript. Conçu pour ceux qui veulent un outil **sans fioritures** : créer une routine, logger les séries, voir la progression.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://wingfit.app/ |
| **GitHub** | https://github.com/lucasgelfond/wingfit (à vérifier sur selfh.st) |
| **Langage** | TypeScript (React + Node.js) |
| **Étoiles** | ⭐20 (selfh.st rank) |
| **Dernière MAJ** | 2026-04-20 |
| **Catégorie** | [[cat-fitness]] |
## Description
**Wingfit** est une application web **épurée** de suivi d'entraînements, pensée pour un usage **solo ou petit groupe** (famille, salle). L'interface privilégie la **rapidité d'exécution** : ouvrir l'app, sélectionner sa routine du jour, logger en quelques taps, fermer.
Fonctionnalités :
- **Routines** (jour push, jour pull, etc.)
- **Exercices** avec métriques (poids, reps, durée, distance)
- **Historique** par exercice avec visualisation
- **Objectifs** (charge cible, nombre de séances/semaine)
- **Statistiques personnelles** (volume hebdo, fréquence)
- **Multi-utilisateurs** simple (comptes séparés)
- **PWA** installable sur mobile
L'**architecture** est volontairement **légère** : frontend **React + Vite + TypeScript**, backend **Express + Prisma**, base **SQLite** par défaut (PostgreSQL possible). Le projet est plus petit que [[app-workout-tracker]] mais peut suffire pour un usage basique, et constitue une **bonne base pédagogique** à forker.
**Note** : le repo GitHub exact peut varier. Vérifier l'URL à jour sur https://selfh.st/apps/?tag=fitness avant déploiement.
## Installation
### Via Docker Compose
```yaml
services:
wingfit-db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: wingfit
POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme}
POSTGRES_DB: wingfit
volumes:
- wingfit_db:/var/lib/postgresql/data
wingfit-api:
image: wingfit/wingfit-api:latest
restart: unless-stopped
depends_on:
- wingfit-db
environment:
DATABASE_URL: postgres://wingfit:${DB_PASSWORD:-changeme}@wingfit-db:5432/wingfit
JWT_SECRET: ${JWT_SECRET:-changez-moi}
ports:
- "4000:4000"
wingfit-web:
image: wingfit/wingfit-web:latest
restart: unless-stopped
depends_on:
- wingfit-api
ports:
- "3000:80"
volumes:
wingfit_db:
```
### Installation manuelle
```bash
git clone https://github.com/lucast他们都融汇fit.git wingfit
cd wingfit
npm install
# Configurer la base (SQLite par défaut)
npm run db:migrate
npm run dev
```
## Configuration
- `DATABASE_URL` : SQLite (par défaut) ou PostgreSQL
- `JWT_SECRET` : pour l'authentification
- Personnalisation via variables d'environnement classiques
- **Pas de fichier YAML** à maintenir pour les exercices : tout se fait via l'UI
## Alternatives
**Open source** :
- [[app-workout-tracker]] : plus structuré, monorepo, Prisma
- [[app-workout-cool]] : design moderne, plus complet
- [[app-exercise-diary]] : encore plus minimaliste
- [[app-wger]] : référence riche mais plus lourde
- [[app-sparkyfitness]] : intègre nutrition
**Propriétaire** :
- **Strong** : référence mobile
- **Hevy** : freemium populaire
- **FitNotes** : Android simple et gratuit
## Sécurité
- **Changer** tous les secrets par défaut
- **HTTPS** via reverse proxy (Caddy, Traefik)
- Sauvegarder le volume de base de données
- Restreindre l'accès réseau si usage strictement personnel
## Ressources
- **GitHub** : https://github.com/lucast他们都融汇fit (vérifier l'URL sur selfh.st)
- **selfh.st** : https://selfh.st/apps/?tag=fitness
## Pages Liées
- [[cat-fitness]]
- [[recettes-docker-compose]]
- [[app-workout-tracker]] — alternative plus structurée
- [[app-workout-cool]] — design moderne
- [[app-exercise-diary]] — encore plus simple