Nice Work
This commit is contained in:
@@ -1,49 +1,111 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "🚀 Starting Klangkiste (Box + GUI)"
|
||||
echo "🚀 Starting Klangkiste (Box + Backend + Frontend)"
|
||||
|
||||
HOST_IP="${KLANGKISTE_HOST_IP:-}"
|
||||
if [[ -z "$HOST_IP" ]]; then
|
||||
HOST_IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
|
||||
fi
|
||||
if [[ -z "$HOST_IP" ]]; then
|
||||
HOST_IP="127.0.0.1"
|
||||
fi
|
||||
BACKEND_URL_DEFAULT="http://${HOST_IP}:5001"
|
||||
BACKEND_URL="${KLANGKISTE_BACKEND_URL:-$BACKEND_URL_DEFAULT}"
|
||||
|
||||
read -rp "➡️ Backend: npm install ausführen? (y/N) " backend_install_choice
|
||||
if [[ "$backend_install_choice" =~ ^([YyJj]|[Yy]es|[Jj]a)$ ]]; then
|
||||
BACKEND_NPM_INSTALL="1"
|
||||
else
|
||||
BACKEND_NPM_INSTALL="0"
|
||||
fi
|
||||
|
||||
read -rp "➡️ Frontend: npm install ausführen? (y/N) " frontend_install_choice
|
||||
if [[ "$frontend_install_choice" =~ ^([YyJj]|[Yy]es|[Jj]a)$ ]]; then
|
||||
FRONTEND_NPM_INSTALL="1"
|
||||
else
|
||||
FRONTEND_NPM_INSTALL="0"
|
||||
fi
|
||||
|
||||
# Ensure both processes are stopped on exit or Ctrl+C.
|
||||
cleanup() {
|
||||
echo ""
|
||||
echo "🛑 Stopping Klangkiste..."
|
||||
if [[ -n "${SERVER_PID:-}" ]]; then
|
||||
kill -TERM "$SERVER_PID" 2>/dev/null || true
|
||||
wait "$SERVER_PID" 2>/dev/null || true
|
||||
if [[ -n "${BACKEND_PID:-}" ]]; then
|
||||
kill -TERM "$BACKEND_PID" 2>/dev/null || true
|
||||
wait "$BACKEND_PID" 2>/dev/null || true
|
||||
fi
|
||||
if [[ -n "${GUI_PID:-}" ]]; then
|
||||
kill -TERM "$GUI_PID" 2>/dev/null || true
|
||||
wait "$GUI_PID" 2>/dev/null || true
|
||||
fi
|
||||
if [[ -n "${BOX_PID:-}" ]]; then
|
||||
kill -TERM "$BOX_PID" 2>/dev/null || true
|
||||
wait "$BOX_PID" 2>/dev/null || true
|
||||
fi
|
||||
if [[ -n "${BOX2_PID:-}" ]]; then
|
||||
kill -TERM "$BOX2_PID" 2>/dev/null || true
|
||||
wait "$BOX2_PID" 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
trap cleanup INT TERM EXIT
|
||||
|
||||
# Server starten (FastAPI + GUI)
|
||||
echo "▶️ Starting Server..."
|
||||
# Backend starten (Node + SQLite)
|
||||
echo "▶️ Starting Backend..."
|
||||
(
|
||||
cd server
|
||||
python3 main.py
|
||||
cd gui/backend
|
||||
if [[ "$BACKEND_NPM_INSTALL" == "1" ]]; then
|
||||
npm install
|
||||
else
|
||||
echo "ℹ️ Backend npm install übersprungen."
|
||||
fi
|
||||
npm run dev
|
||||
) &
|
||||
|
||||
SERVER_PID=$!
|
||||
BACKEND_PID=$!
|
||||
|
||||
# GUI starten (Vite)
|
||||
# Frontend starten (Vite + React)
|
||||
GUI_PORT="${KLANGKISTE_GUI_PORT:-5174}"
|
||||
echo "▶️ Starting GUI on port ${GUI_PORT}..."
|
||||
echo "▶️ Starting Frontend on port ${GUI_PORT}..."
|
||||
(
|
||||
cd gui
|
||||
npm run dev -- --host 0.0.0.0 --port "${GUI_PORT}" --strictPort
|
||||
cd gui/frontend
|
||||
if [[ "$FRONTEND_NPM_INSTALL" == "1" ]]; then
|
||||
npm install
|
||||
else
|
||||
echo "ℹ️ Frontend npm install übersprungen."
|
||||
fi
|
||||
VITE_BACKEND_URL="${BACKEND_URL}" npm run dev -- --host 0.0.0.0 --port "${GUI_PORT}" --strictPort
|
||||
) &
|
||||
|
||||
GUI_PID=$!
|
||||
|
||||
# Box starten (FastAPI + Run-Modus)
|
||||
echo "▶️ Starting Box..."
|
||||
cd box
|
||||
python3 main.py run
|
||||
(
|
||||
cd box
|
||||
KLANGKISTE_SERVER_URL="${BACKEND_URL}" python3 main.py run
|
||||
) &
|
||||
|
||||
BOX_PID=$!
|
||||
|
||||
# Box 2 starten (FastAPI + Run-Modus)
|
||||
echo "▶️ Starting Box 2..."
|
||||
(
|
||||
cd box2
|
||||
KLANGKISTE_SERVER_URL="${BACKEND_URL}" \
|
||||
KLANGKISTE_API_PORT="8001" \
|
||||
KLANGKISTE_SETUP_PORT="9001" \
|
||||
python3 main.py run
|
||||
) &
|
||||
|
||||
BOX2_PID=$!
|
||||
|
||||
echo ""
|
||||
echo "✅ Server PID: $SERVER_PID"
|
||||
echo "✅ GUI PID: $GUI_PID"
|
||||
echo "✅ Backend PID: $BACKEND_PID"
|
||||
echo "✅ Frontend PID: $GUI_PID"
|
||||
echo "✅ Box PID: $BOX_PID"
|
||||
echo "✅ Box2 PID: $BOX2_PID"
|
||||
echo "🛑 Press Ctrl+C to stop everything"
|
||||
echo ""
|
||||
|
||||
wait "$BOX_PID"
|
||||
|
||||
Reference in New Issue
Block a user