#!/bin/bash set -e cd /home/container echo "======================================" echo " Boulangerie Web" echo "======================================" # -------------------------------------- # Mise à jour du projet # -------------------------------------- if [ ! -d ".git" ]; then echo "Dépôt Git absent → clonage..." git clone https://gitea.louismazin.ovh/LouisMazin/Boulangerie_Website.git /tmp/boulangerie cp -a /tmp/boulangerie/. /home/container/ rm -rf /tmp/boulangerie else echo "Mise à jour du dépôt Git..." git fetch origin git reset --hard origin/main fi echo "Git : $(git rev-parse --short HEAD)" # -------------------------------------- # Backend # -------------------------------------- cd /home/container/backend python3 manage.py check echo "Démarrage Django sur :1029" python3 manage.py migrate --noinput python3 manage.py runserver 0.0.0.0:1029 & BACKEND_PID=$! # -------------------------------------- # Frontend # -------------------------------------- cd /home/container/frontend if [ ! -x "node_modules/.bin/vite" ]; then echo "node_modules absent → installation npm..." npm ci fi export VITE_API_URL="/api" echo "Build React..." npm run build echo "Démarrage frontend sur :1028" npm run preview -- --host 0.0.0.0 --port 1028 & FRONTEND_PID=$! # -------------------------------------- # Arrêt propre # -------------------------------------- cleanup() { echo "Arrêt des applications..." kill "$BACKEND_PID" 2>/dev/null || true kill "$FRONTEND_PID" 2>/dev/null || true wait "$BACKEND_PID" 2>/dev/null || true wait "$FRONTEND_PID" 2>/dev/null || true } trap cleanup SIGTERM SIGINT EXIT echo "======================================" echo " Frontend : :1028" echo " Backend : :1029" echo "======================================" wait -n "$BACKEND_PID" "$FRONTEND_PID"