Setup technique

Prérequis

  • Docker Desktop
  • Dump de la base de données (preprod)
  • Entrée dans /etc/hosts : 127.0.0.1 www.1a1.test

Installation

1. Cloner avec le submodule

git clone --recurse-submodules git@gitlab.article-1.eu:article-1/dema1n.git # si premier clone
git submodule update --init --recursive # si déjà cloné

2. Copier le fichier d'environnement

cp .env.example .env

3. Lancer les services

docker-compose up -d

4. Importer la base de données

Ouvrir phpMyAdmin sur http://localhost:7070, sélectionner la base, onglet Importer, choisir le fichier .sql.

Vider ensuite le champ ssoId de tous les users.

5. Données statiques sans dump

Sans dump preprod, certaines tables restent vides alors que le code les requiert : feature_toggle (clés listées dans feature-toggle.constants.ts — sans ligne, la feature reste invisible dans l'écran d'admin toggle) et message_template (noms lus dans notification.service.ts — sans ligne, MailService.send() échoue silencieusement : erreur catchée et envoyée à Sentry, rien dans Mailcatcher).

npm run seed          # local, lit les DB_* de .env
npm run seed:preprod  # staging, lit les PREPROD_DB_*

back/seeds/ (via typeorm-extension) fait un upsert par key/name : rejouable à volonté, éditer une valeur dans seeds/seeders/*.seeder.ts puis relancer npm run seed suffit à la mettre à jour. typeorm-extension est figé à 3.9.0 (dernière version compatible typeorm ~0.3.0 — la 4.x exige typeorm ^1.1.0, absent du projet).

URLs locales

Service URL
Frontend http://www.1a1.test:3022
API http://localhost:3017
Worker http://localhost:3018
phpMyAdmin http://localhost:7070
Mailcatcher http://localhost:1080

Déploiement

Environnement Déclencheur
Staging Push sur la branche staging
Production Création d'un tag git (ex: 1.2.11)