From a5ae098d499eee93bb08d9df25bfda4fe3e6c197 Mon Sep 17 00:00:00 2001 From: vluce Date: Tue, 30 Sep 2025 12:23:23 +0200 Subject: [PATCH 1/3] refactor: docker compose dedicated to sonar env --- docker/local.docker-compose.yml | 46 +-------------------------------- docker/sonar.docker-compose.yml | 46 +++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 45 deletions(-) create mode 100644 docker/sonar.docker-compose.yml diff --git a/docker/local.docker-compose.yml b/docker/local.docker-compose.yml index a4b6ba2..8035f88 100644 --- a/docker/local.docker-compose.yml +++ b/docker/local.docker-compose.yml @@ -1,4 +1,4 @@ -name: 'iro-calc-back' +name: 'iro-calc-back-local' services: database: @@ -10,47 +10,3 @@ services: - POSTGRES_PASSWORD=admin1234 ports: - "5432:5432" - - sonarqube: - image: sonarqube:lts-community - depends_on: - - sonar_db - environment: - SONAR_JDBC_URL: jdbc:postgresql://sonar_db:5432/sonar - SONAR_JDBC_USERNAME: sonar - SONAR_JDBC_PASSWORD: sonar - ports: - - "9001:9000" - volumes: - - sonarqube_conf:/opt/sonarqube/conf - - sonarqube_data:/opt/sonarqube/data - - sonarqube_extensions:/opt/sonarqube/extensions - - sonarqube_logs:/opt/sonarqube/logs - - sonarqube_temp:/opt/sonarqube/temp - - sonar_db: - image: postgres:13 - environment: - POSTGRES_USER: sonar - POSTGRES_PASSWORD: sonar - POSTGRES_DB: sonar - volumes: - - sonar_db:/var/lib/postgresql - - sonar_db_data:/var/lib/postgresql/data - - pg_admin: - image: dpage/pgadmin4:8.4 - environment: - PGADMIN_DEFAULT_EMAIL: "admin@local.com" - PGADMIN_DEFAULT_PASSWORD: "admin" - ports: - - "8081:80" - -volumes: - sonarqube_conf: - sonarqube_data: - sonarqube_extensions: - sonarqube_logs: - sonarqube_temp: - sonar_db: - sonar_db_data: diff --git a/docker/sonar.docker-compose.yml b/docker/sonar.docker-compose.yml new file mode 100644 index 0000000..ac89483 --- /dev/null +++ b/docker/sonar.docker-compose.yml @@ -0,0 +1,46 @@ +name: 'iro-calc-back-sonar' + +services: + sonarqube: + image: sonarqube:lts-community + depends_on: + - sonar_db + environment: + SONAR_JDBC_URL: jdbc:postgresql://sonar_db:5432/sonar + SONAR_JDBC_USERNAME: sonar + SONAR_JDBC_PASSWORD: sonar + ports: + - "9001:9000" + volumes: + - sonarqube_conf:/opt/sonarqube/conf + - sonarqube_data:/opt/sonarqube/data + - sonarqube_extensions:/opt/sonarqube/extensions + - sonarqube_logs:/opt/sonarqube/logs + - sonarqube_temp:/opt/sonarqube/temp + + sonar_db: + image: postgres:13 + environment: + POSTGRES_USER: sonar + POSTGRES_PASSWORD: sonar + POSTGRES_DB: sonar + volumes: + - sonar_db:/var/lib/postgresql + - sonar_db_data:/var/lib/postgresql/data + + pg_admin: + image: dpage/pgadmin4:8.4 + environment: + PGADMIN_DEFAULT_EMAIL: "admin@local.com" + PGADMIN_DEFAULT_PASSWORD: "admin" + ports: + - "8081:80" + +volumes: + sonarqube_conf: + sonarqube_data: + sonarqube_extensions: + sonarqube_logs: + sonarqube_temp: + sonar_db: + sonar_db_data: \ No newline at end of file From 4b1aeb783de01cf7208bc980af9c12ac1fe16f52 Mon Sep 17 00:00:00 2001 From: vluce Date: Tue, 30 Sep 2025 12:25:23 +0200 Subject: [PATCH 2/3] feat: add localstack configuration to local dockerfile --- docker/local.docker-compose.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docker/local.docker-compose.yml b/docker/local.docker-compose.yml index 8035f88..d23ce86 100644 --- a/docker/local.docker-compose.yml +++ b/docker/local.docker-compose.yml @@ -10,3 +10,18 @@ services: - POSTGRES_PASSWORD=admin1234 ports: - "5432:5432" + + aws: + image: 'localstack/localstack' + container_name: 'localstack' + environment: + - SERVICES=sqs,s3,lambda,ssm,logs,iam,events + - DEFAULT_REGION=eu-west-3 + - AWS_DEFAULT_REGION=eu-west-3 + - DEBUG=1 + - DATA_DIR=/var/localstack/data + - LAMBDA_EXECUTOR=docker + ports: + - '4566:4566' + volumes: + - /var/run/docker.sock:/var/run/docker.sock From 6efe0b28d6825e06ccf8c6a5ec93184ab782bab4 Mon Sep 17 00:00:00 2001 From: Victor LUCE Date: Tue, 30 Sep 2025 17:31:19 +0200 Subject: [PATCH 3/3] docs: update README.md with installation fixes --- README.md | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index dfe0661..f230c26 100644 --- a/README.md +++ b/README.md @@ -29,26 +29,21 @@ This is the backend of the IroCO2 application. Developed using Java 21 and Sprin ### Run in development -#### With Docker Compose (recommended) +1. Create a `infrastructure/src/main/resources/application-local.properties` (ask an IroCO2 referent on how to document it) -1. Start the database and tools: +2. Start the database and localstack : + - With Docker Compose (recommended) ```bash docker compose -f docker/local.docker-compose.yml up -d ``` -2. Run the backend (in another terminal): - ```bash - mvn spring-boot:run - ``` - -#### Without Docker - -- Make sure a PostgreSQL instance is running and accessible (see `docker/local.docker-compose.yml` for env vars). -- Update the `application.properties` or use environment variables as needed. -- Run: - ```bash - mvn spring-boot:run - ``` - + - Without Docker + + Make sure a PostgreSQL and a Localstack instance are accessible (see `docker/local.docker-compose.yml` for env vars). + +3. On IntelliJ, create a configuration to launch the app with local profile : + - in `infrastructure/src/main/java/MainApp.main`, right-click on the run button associated to`main`function + - edit a configuration where you simply add `spring.profiles.active=local` as an environment variable +4. Run `MainApp.main` with the configuration you just created --- ## 📦 Project Structure @@ -68,7 +63,7 @@ This is the backend of the IroCO2 application. Developed using Java 21 and Sprin mvn test ``` - Cucumber BDD tests included -- Testcontainers used for integration tests (PostgreSQL, Localstack) +- Testcontainers used for integration tests (PostgreSQL, Localstack) so a Docker Daemon is needed ## 🛡️ Security & Auth @@ -85,6 +80,7 @@ We use [Prettier Java](https://github.com/jhipster/prettier-java) to ensure cons 1. Install Node modules: ```bash + npm install npm ci ``` 2. (Recommended) Install the File Watchers plugin in your IDE and configure it as follows: @@ -102,15 +98,6 @@ We use [Prettier Java](https://github.com/jhipster/prettier-java) to ensure cons npx prettier --write "**/*.java" ``` -### Git LF/CRLF configuration -By default, Git on Windows may convert line endings (LF → CRLF). Our Prettier config enforces LF. To avoid unwanted conversions, run one of the following: - -```bash -git config --system core.autocrlf false # per-system -git config --global core.autocrlf false # per-user -git config --local core.autocrlf false # per-project -``` - --- ## 🧭 Local SonarQube Usage @@ -120,7 +107,7 @@ We use SonarQube for static code analysis and code quality. ### Start SonarQube locally ```bash -docker compose -f docker/local.docker-compose.yml up +docker compose -f docker/sonar.docker-compose.yml up ``` ### Configuration