Installation
Installation
Prérequis
- Node.js LTS (v20 ou supérieur)
- Corepack activé (
corepack enable) - Docker et Docker Compose
Le gestionnaire de paquets est pnpm exclusivement. Ne pas utiliser npm ni yarn.
1. Cloner et installer les dépendances
git clone <url-du-depot>
cd PROJET-myPromo
pnpm install
2. Services Docker (base de données et stockage)
Démarrer PostgreSQL, Adminer et Garage (S3 local) :
docker compose up -d postgres adminer garage s3ui
| Service | URL locale | Port |
|---|---|---|
| PostgreSQL 17 | localhost:55432 | 55432 |
| Adminer (UI BDD) | http://localhost:8081 | 8081 |
| Garage — API S3 | http://localhost:3900 | 3900 |
| Garage — Admin API | http://localhost:3903 | 3903 |
| S3 UI | http://localhost:8090 | 8090 |
3. Configuration
Copier .env.example en .env et renseigner les valeurs. Ne jamais committer de secret.
cp app/mypromo/.env.example app/mypromo/.env
Variables essentielles (extrait) :
DATABASE_URL=postgresql://pulse:<mot-de-passe>@localhost:55432/pulse_my_promo?schema=public
BETTER_AUTH_SECRET=<min-32-caractères>
YOUSIGN_API_KEY=<votre-clé>
PAPPERS_API_TOKEN=<votre-token>
# … cf. app/mypromo/.env.example pour la liste complète
Toutes les variables sont validées au démarrage par un plugin Nitro : le serveur refuse de démarrer si la configuration est incomplète.
4. Migration de la base de données
pnpm -C app/mypromo run db:migrate:deploy
En développement, pour créer une nouvelle migration après modification du schéma Prisma :
pnpm -C app/mypromo run db:migrate
Pour régénérer le client Prisma sans migration :
pnpm -C app/mypromo run db:generate
Pour ouvrir Prisma Studio (interface visuelle BDD) :
pnpm -C app/mypromo run db:studio
5. Données de seed
La commande seed:dev peuple la base (profils dev|demo|test). Les comptes seedés utilisent le mot de passe ChangeMe123!.
pnpm -C app/mypromo run seed:dev
# ou selon le profil souhaité :
pnpm -C app/mypromo run seed:demo
pnpm -C app/mypromo run seed:test
6. Démarrer le serveur de développement
pnpm -C app/mypromo run dev
L'application est accessible sur http://localhost:3000.
7. Commandes qualité
pnpm run check # gate complet (racine) : lint + typecheck + format:check + tests
pnpm -C app/mypromo run check # lint + typecheck + tests (sans format:check)
pnpm -C app/mypromo run lint:fix # corrections ESLint automatiques
pnpm -C app/mypromo run test:unit # tests unitaires (Vitest)
pnpm -C app/mypromo run test:integration # tests d'intégration (Vitest)
pnpm -C app/mypromo run test:e2e # tests end-to-end (Playwright)
Avant le premier lancement des tests E2E, installer les binaires Playwright :
pnpm -C app/mypromo exec playwright install chromium