Installation¶
Prérequis¶
| Outil | Version | Notes |
|---|---|---|
| Node.js | 24 | Voir .nvmrc. Le projet utilise --env-file=.env natif. |
| pnpm | 11+ | Gestionnaire de paquets imposé (packageManager dans package.json). |
| PostgreSQL | en prod/preprod | En dev/test, SQLite suffit (aucune installation requise). |
| Redis | optionnel | Requis seulement si QUEUE_BACKEND=bull (file de jobs durable). |
pnpm uniquement
N'utilisez jamais npm dans ce projet. Toutes les commandes passent par pnpm.
Installer les dépendances¶
Configurer l'environnement¶
Le serveur lit ses variables via node --env-file=.env. Copiez le fichier d'exemple puis ajustez les valeurs :
Variables principales¶
# Base de données
DATABASE_BACKEND=sqlite # sqlite (dev/test) | postgres (prod)
SQLITE_STORAGE= # chemin du fichier SQLite (vide = défaut)
DATABASE_URL= # chaîne de connexion PostgreSQL en prod
# File de jobs en arrière-plan
QUEUE_BACKEND=memory # memory (dev/test) | bull (Redis, prod)
REDIS_URL=redis://localhost:6379
# Stockage de fichiers
STORAGE_BACKEND=local # local (disque) | s3 (Garage / S3-compatible)
STORAGE_SIGNING_SECRET=replace-me # REQUIS pour signer les URLs /_storage/...
PUBLIC_BACKEND_URL=http://localhost:3000
Variables par domaine¶
| Préfixe | Rôle |
|---|---|
SMTP_* |
Email sortant (SMTP). Sans configuration, l'envoi est inactif en dev. |
SENTRY_* |
Suivi d'erreurs. Laisser vide pour désactiver en dev/test. |
SWAGGER_USER / SWAGGER_PASSWORD |
Les deux sont requis pour exposer /docs (Basic Auth). |
THROTTLER_* |
Rate limiting (@nestjs/throttler). THROTTLER_DISABLED=true pour le bypass. |
OPENROUTER_* |
Génération de formulaires par IA (POST /forms/generate). Sans clé : fallback stub. |
MONEROO_* |
Passerelle de paiement. Hors NODE_ENV=test, requis (test = provider Stub). |
S3_* |
Stockage Garage / S3 quand STORAGE_BACKEND=s3 (voir le runbook Garage). |
Référence complète
Le fichier .env.exemple documente chaque variable, ses valeurs possibles et ses valeurs par défaut. C'est la source de vérité.
Initialiser la base de données¶
Appliquer les migrations Sequelize :
Pour repartir d'une base propre (drop + recréation + migrations) :
Étapes suivantes¶
- Lancer le projet — serveur de développement, scripts utilitaires, création d'un superutilisateur.
- Tests — exécuter les suites d'intégration et e2e.