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-composesi non inclus) - Dumps de base de données pour Dema1n et Inspire-v2
- Entrée dans
/etc/hostspour 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) |