Fork de Elec_business_spring utilisé pour valider la prise en charge de Lombok par HexaGlue.
Electricity Business est une application pour réserver des bornes de recharge électrique. Elle est composée de deux parties :
- Backend (
elecbusiness_spring) : Spring Boot 3.x, Java 21, PostgreSQL, Redis, JWT, OTP, Testcontainers, H2 - Frontend (
elecbusiness_front) : Angular, Ionic, Tailwind CSS
Tout est dockerisé pour simplifier le déploiement local et serveur.
- Docker
- Docker Compose
- Accès terminal / SSH avec droits sudo
git clone https://github.com/Nahima697/elecbusiness_spring.git
git clone https://github.com/Nahima697/elecbusiness_front.git
# PostgreSQL
POSTGRES_DB=eb_db
POSTGRES_USER=eb_user
POSTGRES_PASSWORD=eb_password
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
# Mail
MAIL_HOST=mail
MAIL_PORT=1025
# JWT
JWT_SECRET=<votre_secret_jwt>
+---------------------+
| Frontend |
| Angular/Ionic |
| Port 8100 |
+----------+----------+
|
v
+---------------------+
| Backend |
| Spring Boot |
| Port 8080 |
| JWT + OTP Auth |
+----------+----------+
|
-------------------------
| |
v v
+------------+ +------------+
| PostgreSQL | | Redis |
| Port 5432 | | Port 6379 |
+------------+ +------------+
^
|
+-----------+
| MailHog |
| SMTP |
| Port 1025|
+-----------+
Depuis le dossier contenant le docker-compose.yaml :
docker-compose up --build -d
Vérifier les conteneurs :
docker-compose ps
- Frontend : http://:8100
- Backend : http://:8080
- MailHog : http://:8025
- PostgreSQL : via port 5432 (si nécessaire)
- Redis : via port 6379 (si nécessaire)
docker-compose downFROM maven:3.9.1-eclipse-temurin-21 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTestsFROM eclipse-temurin:21-jre
WORKDIR /app
COPY --from=build /app/target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]FROM node:22 AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build --prodFROM nginx:alpine
COPY --from=build /app/dist/elecbusiness_front /usr/share/nginx/html
EXPOSE 8100
CMD ["nginx", "-g", "daemon off;"]sudo apt update && sudo apt upgrade -ysudo apt install -y git docker.io docker-composesudo systemctl enable docker
sudo usermod -aG docker $USER# Cloner les projets
cd /opt
git clone https://github.com/Nahima697/elecbusiness_spring.git
git clone https://github.com/Nahima697/elecbusiness_front.git
# Placer le fichier .env correctement
cd elecbusiness_spring # ou frontend si besoin
# Builder et lancer les conteneurs
docker-compose build
docker-compose up -d
# Vérifier les conteneurs
docker-compose ps# Pull des derniers changements
cd /opt/elecbusiness_spring
git pull
./mvnw clean verify
cd ../elecbusiness_front
git pull
npm install
npm run test
npm run build
cd ..
# Rebuild et relancer
docker-compose build
docker-compose up -dTests → phase de build dans Dockerfile
Déploiement → démarre uniquement du code/images déjà testés
docker-compose up ne lance pas les tests