Développement local
Lancer, tester et faire évoluer l'application sur un poste de développement.
Prérequis
- JDK 25 (le wrapper Maven
./mvnwest fourni) ; - Node.js et npm (front Angular 22) ;
- Docker (base de données locale, tests d’intégration Testcontainers) ;
- sous Windows, Git Bash (
./mvnw) oumvnw.cmd.
Commandes
| Action | Commande |
|---|---|
| Base de données locale | docker compose up -d db |
| Backend en dev (sécurité désactivée) | ./mvnw -pl backend spring-boot:run -Dspring-boot.run.profiles=dev |
| Tests backend (unitaires + intégration) | ./mvnw -pl backend verify |
| Front en dev (proxy vers :8080) | cd frontend && npm start |
| Build du front | cd frontend && npm run build |
| Tests du front | cd frontend && npm test |
| Image complète (application + base) | docker compose --profile app up --build |
| Ce site de documentation | cd docs/site && npm install && npm run build (ou npm run dev) |
Swagger UI en dev : http://localhost:8080/swagger-ui.html.
Ports
| Service | Port par défaut |
|---|---|
| Backend | 8080 |
Front (ng serve) |
4200, proxy /api vers 8080 |
| PostgreSQL | 5432 |
Site de documentation (npm run dev) |
4230 |
Pour lancer plusieurs instances en parallèle (plusieurs branches), changer les ports : base docker run -p 5455:5432 …, backend -Dspring-boot.run.arguments=--server.port=8093 avec DB_URL=jdbc:postgresql://localhost:5455/secondbrain, front ng serve --port 4230 --proxy-config <copie de proxy.conf.json pointant vers 8093>.
Variables d’environnement utiles
| Variable | Défaut | Rôle |
|---|---|---|
DB_URL, DB_USER, DB_PASSWORD |
jdbc:postgresql://localhost:5432/secondbrain, secondbrain |
base de données |
APP_DEFINITIONS_PATH |
../config |
dossier des définitions YAML |
APP_FILES_PATH |
../data/files |
stockage des fichiers |
APP_SECURITY_MODE |
oidc |
dev désactive la sécurité |
Faire évoluer
- Le domaine se change dans
config/, pas dans le code ; le testExampleDefinitionsTestgarantit queconfig/reste valide. - Un changement d’API impose de régénérer le client : contrat écrit par
OpenApiContractITdansbackend/target/openapi.json, puisnpm run api:fetchetnpm run api:generatedansfrontend/. - Schéma : nouvelle migration Flyway
V<n>__<description>.sql. - Toute règle du moteur a un test unitaire, tout endpoint un test d’intégration contre un vrai PostgreSQL.
- Commits en Conventional Commits, en français.