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) |