gateway/start.sh
2025-03-15 19:53:40 +01:00

81 lines
No EOL
2.1 KiB
Bash

#!/bin/bash
# Farben für die Ausgabe
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${GREEN}Data Platform - Multi-Agent Service${NC}"
echo -e "${BLUE}Startskript für Frontend und Backend${NC}"
echo "----------------------------------------"
# Verzeichnisstruktur erstellen, falls sie nicht existiert
mkdir -p backend/data
mkdir -p backend/uploads
mkdir -p backend/results
mkdir -p backend/webparts
# Prüfen, ob Python installiert ist
if command -v python3 &>/dev/null; then
PYTHON_CMD="python3"
elif command -v python &>/dev/null; then
PYTHON_CMD="python"
else
echo "Python ist nicht installiert. Bitte installieren Sie Python 3.8 oder höher."
exit 1
fi
# Virtuelle Umgebung erstellen, falls sie nicht existiert
if [ ! -d "backend/venv" ]; then
echo "Erstelle virtuelle Python-Umgebung..."
cd backend
$PYTHON_CMD -m venv venv
cd ..
fi
# Virtuelle Umgebung aktivieren
echo "Aktiviere virtuelle Umgebung..."
source backend/venv/bin/activate 2>/dev/null || . backend/venv/bin/activate
# Abhängigkeiten installieren
echo "Installiere Abhängigkeiten..."
pip install -r requirements.txt
# Backend als Hintergrundprozess starten
echo "Starte Backend-Server..."
cd backend
uvicorn app:app --reload --host 0.0.0.0 --port 8000 &
BACKEND_PID=$!
cd ..
# Kurz warten, um sicherzustellen, dass das Backend startet
sleep 2
# Frontend-Server starten
echo "Starte Frontend-Server..."
cd frontend
$PYTHON_CMD -m http.server 8080 &
FRONTEND_PID=$!
cd ..
echo "----------------------------------------"
echo -e "${GREEN}Server wurden gestartet!${NC}"
echo "Frontend läuft auf: http://localhost:8080"
echo "Backend API läuft auf: http://localhost:8000"
echo "API-Dokumentation: http://localhost:8000/docs"
echo -e "${BLUE}Drücke STRG+C, um beide Server zu beenden${NC}"
# Funktion zum Beenden der Server bei STRG+C
cleanup() {
echo -e "\n${GREEN}Beende Server...${NC}"
kill $BACKEND_PID
kill $FRONTEND_PID
echo "Server wurden beendet"
exit 0
}
# Signal-Handler für STRG+C
trap cleanup SIGINT
# Warten auf Benutzeraktion
wait