1 - Structure

1.1 - Domaine

Ce dépôt contient 3 sous-dépôts (git submodules) :

  • article1-connect — SSO & gestion centralisée des utilisateurs (NestJS + Vue/Quasar)
  • dema1n — Plateforme de mentorat/orientation (NestJS + Nuxt 2/Vuetify)
  • inspire-v2 — Plateforme d'orientation éducative (NestJS + Vue/Quasar)

1.2 - Prérequis

  • Docker Desktop (et docker-compose si non inclus)
  • Dumps de base de données pour Dema1n et Inspire-v2
  • Entrée dans /etc/hosts pour Dema1n uniquement :
127.0.0.1   www.1a1.test

2 - Installation

2.1 - Cloner avec les submodules

 # Si le dépôt existe pas
git clone --recurse-submodules git@gitlab.article-1.eu:article-1/article1.git
cd article1
git submodule update --remote # Pour mettre à jour les submodules

 # si le dépôt est déjà cloné
git submodule update --init --recursive
git submodule update --remote # Pour mettre à jour les submodules

2.2 - Copier les fichiers d'environnement

cp article1-connect/.env.example article1-connect/.env
cp dema1n/.env.example dema1n/.env
cp inspire-v2/.env.example inspire-v2/.env

2.3 - Lancer les services

docker-compose up -d # Lancer tous les services
# Ou par projet
docker-compose -f docker-compose-dema1n.yml up -d # Dema1n + A1C
docker-compose -f docker-compose-inspire.yml up -d # Inspire + A1C

3 - URLs locales

3.1 - Plateformes

Projet Frontend API
article1-connect http://localhost:8082 http://localhost:3000
dema1n http://www.1a1.test:3022 http://localhost:3017
inspire-v2 http://localhost:8481 http://localhost:3236

3.2 - Outils

Service URL
RabbitMQ UI http://localhost:15672 (guest/guest)
Mailcatcher http://localhost:1080
phpMyAdmin (dema1n) http://localhost:7070
Elasticsearch http://localhost:9200

4 - Bases de données

4.1 - Dema1n (MySQL)

Demander à une personne de l'équipe fe dumper la db et de vous la fournir

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

4.2 - Inspire-v2 (PostgreSQL)

Pour exporter un dump fraîs

docker-compose exec -i inspire-v2-api-dev-db pg_dump -U postgres -d template | gzip -c > db_dump.sql.gz

Pour le charger en db:

# Réinitialiser la base et importer le dump
docker-compose exec -it inspire-v2-api-dev-db psql -U postgres -c "DROP DATABASE IF EXISTS template;" 
docker-compose exec -it inspire-v2-api-dev-db psql -U postgres -c "CREATE DATABASE template;"
gunzip -c db_dump.sql.gz | docker-compose exec -T inspire-v2-api-dev-db psql -U postgres -d template

5 - Stack & outils

Projet Backend ORM Frontend DB Node Package manager
article1-connect NestJS 10 Prisma Vue 3 + Quasar PostgreSQL 22 yarn
dema1n NestJS 8 TypeORM Nuxt 2 + Vuetify MySQL + Redis 16 npm
inspire-v2 NestJS 9 TypeORM Vue 3 + Quasar PostgreSQL 20 yarn

6 - Déploiement

Les 3 plateformes déploient de la même manière

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