Projektarbeit-MYP/backend/start-backend-server.sh

103 lines
3.0 KiB
Bash

#!/bin/bash
# 🚀 MYP Backend - Entwicklungs-Startskript
# Startet den Backend-Server mit hardgecodeter Konfiguration
set -e
echo "=== MYP Backend - Entwicklungsstart ==="
# Wechsel ins Backend-Verzeichnis
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"
# Hardgecodete Umgebungsvariablen setzen
export FLASK_APP=app.py
export FLASK_ENV=development
export SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
export DATABASE_PATH=instance/myp.db
export LOG_LEVEL=INFO
export JOB_CHECK_INTERVAL=60
export SOCKET_CHECK_INTERVAL=120
export PRINTERS='{"Drucker 1": {"ip": "192.168.0.100"}, "Drucker 2": {"ip": "192.168.0.101"}, "Drucker 3": {"ip": "192.168.0.102"}, "Drucker 4": {"ip": "192.168.0.103"}, "Drucker 5": {"ip": "192.168.0.104"}, "Drucker 6": {"ip": "192.168.0.106"}}'
export TAPO_USERNAME=till.tomczak@mercedes-benz.com
export TAPO_PASSWORD=744563017196A
export HOST=0.0.0.0
export PORT=5000
export BACKEND_URL=http://localhost:5000
export UPLOAD_FOLDER=uploads
export MAX_CONTENT_LENGTH=16777216
export DEBUG=true
export TESTING=false
export DEVELOPMENT=true
export PYTHONPATH=${PYTHONPATH}:$(pwd)
# Prüfe Entwicklungsmodus Parameter
if [ "$1" = "--production" ]; then
export FLASK_ENV=production
export DEBUG=false
export DEVELOPMENT=false
echo "🚀 Produktions-Modus aktiviert"
elif [ "$1" = "--debug" ]; then
export FLASK_ENV=development
export DEBUG=true
export DEVELOPMENT=true
echo "🔧 Debug-Modus aktiviert"
else
echo "🔧 Standard-Entwicklungsmodus"
fi
echo "Konfiguration:"
echo " - Flask Environment: $FLASK_ENV"
echo " - Debug Modus: $DEBUG"
echo " - Host: $HOST"
echo " - Port: $PORT"
echo " - Database: $DATABASE_PATH"
echo ""
# Erstelle notwendige Verzeichnisse
mkdir -p instance logs uploads
# Aktiviere virtuelle Umgebung falls vorhanden
if [ -d "venv" ]; then
echo "Aktiviere virtuelle Umgebung..."
source venv/bin/activate
else
echo "WARNUNG: Keine virtuelle Umgebung gefunden. Verwende System-Python."
fi
# Prüfe ob App-Datei existiert
if [ ! -f "app.py" ]; then
echo "FEHLER: app.py nicht gefunden!"
exit 1
fi
# Starte Flask Development Server
echo "Starte Flask Development Server..."
echo "Backend verfügbar unter: http://localhost:$PORT"
echo "Health-Check: http://localhost:$PORT/health"
echo "API-Test: http://localhost:$PORT/api/test"
echo ""
echo "Zum Stoppen: Ctrl+C"
echo ""
# Starte den Server
if [ "$FLASK_ENV" = "production" ]; then
# Produktionsmodus mit Gunicorn
echo "Starte mit Gunicorn (Produktionsmodus)..."
exec gunicorn \
--bind=$HOST:$PORT \
--workers=2 \
--worker-class=sync \
--timeout=30 \
--keep-alive=5 \
--reload \
--access-logfile=logs/access.log \
--error-logfile=logs/error.log \
--log-level=info \
wsgi:application
else
# Entwicklungsmodus mit Flask
echo "Starte mit Flask (Entwicklungsmodus)..."
exec python3 -m flask run --host=$HOST --port=$PORT --debug
fi