Aller au contenu

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

pnpm install

Configurer l'environnement

Le serveur lit ses variables via node --env-file=.env. Copiez le fichier d'exemple puis ajustez les valeurs :

cp .env.exemple .env

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 :

bash scripts/dbmigrate.sh

Pour repartir d'une base propre (drop + recréation + migrations) :

bash scripts/dbreset.sh

É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.