This commit is contained in:
Louis Mazin 2026-10-14 00:19:42 +02:00
parent ef5b14d084
commit e62d5b0d89

101
start.sh
View File

@ -1,29 +1,88 @@
#!/usr/bin/env bash
set -euo pipefail #!/bin/bash
set -e
cd /home/container
echo "======================================"
echo "GooDrive"
echo "======================================"
# --------------------------------------
# Mise à jour du projet
# --------------------------------------
if [ ! -d ".git" ]; then
echo "Dépôt Git absent → clonage..."
git clone https://gitea.louismazin.ovh/LouisMazin/GooDrive.git /tmp/goodrive
cp -a /tmp/goodrive/. /home/container/
rm -rf /tmp/goodrive
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 cd /home/container/backend
# Lors du premier démarrage, laisser à la base le temps de devenir disponible.
tries=0 python3 manage.py check
until python manage.py migrate --noinput; do
tries=$((tries+1)) echo "Démarrage Django sur :1035"
if ((tries >= 30)); then
echo "Impossible d'appliquer les migrations après 30 tentatives." >&2 python3 manage.py migrate --noinput
exit 1
fi
sleep 2
done
python manage.py ensure_admin python manage.py ensure_admin
python manage.py runserver 0.0.0.0:1029 & python3 manage.py runserver 0.0.0.0:1035 &
backend_pid=$! BACKEND_PID=$!
# --------------------------------------
# Frontend
# --------------------------------------
cd /home/container/frontend cd /home/container/frontend
export VITE_API_PROXY_TARGET="${VITE_API_PROXY_TARGET:-http://127.0.0.1:1029}"
npm run dev -- --host 0.0.0.0 --port 1028 & echo "Installation des dépendances frontend..."
frontend_pid=$! npm ci
echo "Build React..."
npm run build
echo "Démarrage frontend sur :1034"
npm run preview -- --host 0.0.0.0 --port 1034 &
FRONTEND_PID=$!
# --------------------------------------
# Arrêt propre
# --------------------------------------
cleanup() { cleanup() {
kill "$backend_pid" "$frontend_pid" 2>/dev/null || true echo "Arrêt des applications..."
wait "$backend_pid" "$frontend_pid" 2>/dev/null || true
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 EXIT SIGINT SIGTERM
wait -n "$backend_pid" "$frontend_pid" trap cleanup SIGTERM SIGINT EXIT
echo "======================================"
echo " Frontend : :1034"
echo " Backend : :1035"
echo "======================================"
wait -n "$BACKEND_PID" "$FRONTEND_PID"