Second Brain documentation

Développement local

Lancer, tester et faire évoluer l'application sur un poste de développement.

Prérequis

  • JDK 25 (le wrapper Maven ./mvnw est fourni) ;
  • Node.js et npm (front Angular 22) ;
  • Docker (base de données locale, tests d’intégration Testcontainers) ;
  • sous Windows, Git Bash (./mvnw) ou mvnw.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 test ExampleDefinitionsTest garantit que config/ reste valide.
  • Un changement d’API impose de régénérer le client : contrat écrit par OpenApiContractIT dans backend/target/openapi.json, puis npm run api:fetch et npm run api:generate dans frontend/.
  • 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.