MicroCRM est une application de démonstration basique ayant pour être objectif de servir de socle pour le module "P5 - Expert DevOps".
L'application MicroCRM est une implémentation simplifiée d'un "CRM" (Customer Relationship Management). Les fonctionnalités sont limitées à la création, édition et la visualisations des individus liés à des organisations.
Ce monorepo contient les 2 composantes du projet "MicroCRM":
- La partie serveur (ou "backend"), en Java SpringBoot 3;
- La partie cliente (ou "frontend"), en Angular 17.
Une intégration basique avec Gitlab CI est définie via le fichier .gitlab-ci.yml.
-
Se positionner dans le répertoire
backavec une invite de commande:cd back -
Construire le JAR:
# Sur Linux ./gradlew build # Sur Windows gradlew.bat build
-
Démarrer le service:
java -jar build/libs/microcrm-0.0.1-SNAPSHOT.jar
Puis ouvrir l'URL http://localhost:8080 dans votre navigateur.
-
Se positionner dans le répertoire
frontavec une invite de commande:cd front -
(La première fois seulement) Installer les dépendances NodeJS:
npm install
-
Démarrer le service de développement:
npx @angular/cli serve
Puis ouvrir l'URL http://localhost:4200 dans votre navigateur.
Dépendances
- Google Chrome ou Chromium
Dans votre terminal:
cd front
CHROME_BIN=</path/to/google/chrome> npm testDans votre terminal:
cd back
./gradlew testLa CI construit deux images distinctes. Les builds applicatifs doivent être produits avant les images :
bash scripts/ci/build.sh --component all
docker build --file misc/docker/frontend.Dockerfile --tag microcrm-frontend:local .
docker build --file misc/docker/backend.Dockerfile --tag microcrm-backend:local .Le frontend appelle l’API avec la route relative /api. Caddy transmet cette
route au conteneur backend par son nom de service ; aucune adresse IP n’est
intégrée au code.
Le smoke test local démarre les images avec PostgreSQL, vérifie les healthchecks et exécute un parcours de création et de lecture :
sh scripts/ci/smoke.sh \
--frontend-image microcrm-frontend:local \
--backend-image microcrm-backend:local \
--database-image postgres:17.10-alpine3.23Pour reprendre le projet depuis un clone et effectuer un premier déploiement
sur AWS, consulter DOCS/GET-STARTED.md.
DOCS/stack.md— Stack technique du projet.DOCS/schema_architecture_aws.md— Architecture AWS et interactions entre les composants.DOCS/infrastructure/terraform.md— Provisionnement AWS avec Terraform.DOCS/infrastructure/ansible.md— Configuration de l’instance et du cluster K3s.DOCS/infrastructure/helm.md— Déploiement de MicroCRM dans K3s.
DOCS/ci-cd/pipeline.md— Organisation de la pipeline GitLab CI/CD.DOCS/ci-cd/deployment-strategy.md— Release, promotion et rollback.DOCS/Maintenance/backup-recovery.md— Sauvegarde et restauration.DOCS/Maintenance/rollback.md— Retour à une version précédente.DOCS/Maintenance/supervision.md— Supervision CloudWatch.
DOCS/quality/testing.md— Stratégie de tests.DOCS/quality/security.md— Sécurité, secrets et scans.DOCS/quality/performance.md— Performance et métriques DORA.scripts/bootstrap/bootstrap.md— Initialisation AWS et GitLab.scripts/ci/scripts.md— Scripts utilisés par la pipeline.

