Initialisiere VoTiAn NG mit Docker-Build, .env-Konfiguration und Cookie-Sitzungen

This commit is contained in:
Sven committed 2026-10-05 17:45:38 +02:00
commit 1a30233269
63 files changed
+12138

No files matched your search

Executable
+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$ROOT"
command -v java >/dev/null || { echo 'Java 21 wird benötigt.'; exit 1; }
command -v npm >/dev/null || { echo 'Node.js 22.12+ und npm werden benötigt.'; exit 1; }
mkdir -p work
if [[ ! -d frontend/node_modules ]]; then
(cd frontend && npm ci)
fi
for port in 8080 5173; do
if command -v lsof >/dev/null && lsof -nP -iTCP:"$port" -sTCP:LISTEN >/dev/null 2>&1; then
echo "Port $port ist bereits belegt. Bitte die dort laufende Anwendung zuerst beenden."
exit 1
fi
done
BACKEND_PID=''
FRONTEND_PID=''
cleanup() {
[[ -z "$FRONTEND_PID" ]] || kill "$FRONTEND_PID" 2>/dev/null || true
[[ -z "$BACKEND_PID" ]] || kill "$BACKEND_PID" 2>/dev/null || true
}
trap cleanup EXIT INT TERM
echo 'Backend wird gebaut …'
(cd backend && ./mvnw -q -DskipTests package)
python3 scripts/run-backend.py > work/backend.log 2>&1 &
BACKEND_PID=$!
echo 'Spring Boot startet. Protokoll: work/backend.log'
READY=false
for attempt in {1..120}; do
if curl --fail --silent http://127.0.0.1:8080/api/health >/dev/null 2>&1; then READY=true; break; fi
if ! kill -0 "$BACKEND_PID" 2>/dev/null; then cat work/backend.log; exit 1; fi
sleep 1
done
if [[ "$READY" != true ]]; then echo 'Backend-Start dauert zu lange. Siehe work/backend.log'; exit 1; fi
(cd frontend && exec node node_modules/vite/bin/vite.js --host 127.0.0.1 --port 5173 --strictPort) &
FRONTEND_PID=$!
echo 'VoTiAn NG: http://localhost:5173 — Beenden mit Strg+C'
echo 'Anmeldung mit einem vorhandenen VoTiAn-Zentralenbenutzer.'
while kill -0 "$BACKEND_PID" 2>/dev/null && kill -0 "$FRONTEND_PID" 2>/dev/null; do sleep 2; done