"feat: Enhanced backend scripts documentation in README
This commit is contained in:
parent
95a8784770
commit
d2f23d589a
1
backend/README_BACKEND_SCRIPTS.md
Normal file
1
backend/README_BACKEND_SCRIPTS.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
@ -247,10 +247,8 @@ initialize_database() {
|
|||||||
# Aktiviere virtuelle Umgebung
|
# Aktiviere virtuelle Umgebung
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
|
|
||||||
# Lade Umgebungsvariablen
|
# Umgebungsvariablen sind bereits in prepare_configuration() gesetzt
|
||||||
if [ -f "env.backend" ]; then
|
log "Verwende hardgecodete Konfiguration..."
|
||||||
export $(cat env.backend | grep -v '^#' | grep -v '^$' | xargs)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Setze Flask-App
|
# Setze Flask-App
|
||||||
export FLASK_APP=app.py
|
export FLASK_APP=app.py
|
||||||
@ -286,7 +284,24 @@ User=$USER
|
|||||||
Group=$USER
|
Group=$USER
|
||||||
WorkingDirectory=$SCRIPT_DIR
|
WorkingDirectory=$SCRIPT_DIR
|
||||||
Environment=PATH=$SCRIPT_DIR/venv/bin
|
Environment=PATH=$SCRIPT_DIR/venv/bin
|
||||||
EnvironmentFile=$SCRIPT_DIR/env.backend
|
Environment=FLASK_APP=app.py
|
||||||
|
Environment=FLASK_ENV=production
|
||||||
|
Environment=SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
|
||||||
|
Environment=DATABASE_PATH=instance/myp.db
|
||||||
|
Environment=LOG_LEVEL=INFO
|
||||||
|
Environment=JOB_CHECK_INTERVAL=60
|
||||||
|
Environment=SOCKET_CHECK_INTERVAL=120
|
||||||
|
Environment=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"}}
|
||||||
|
Environment=TAPO_USERNAME=till.tomczak@mercedes-benz.com
|
||||||
|
Environment=TAPO_PASSWORD=744563017196A
|
||||||
|
Environment=HOST=0.0.0.0
|
||||||
|
Environment=PORT=5000
|
||||||
|
Environment=BACKEND_URL=http://localhost:5000
|
||||||
|
Environment=UPLOAD_FOLDER=uploads
|
||||||
|
Environment=MAX_CONTENT_LENGTH=16777216
|
||||||
|
Environment=DEBUG=false
|
||||||
|
Environment=TESTING=false
|
||||||
|
Environment=DEVELOPMENT=false
|
||||||
ExecStart=$SCRIPT_DIR/venv/bin/gunicorn --bind 0.0.0.0:5000 --workers 4 wsgi:application
|
ExecStart=$SCRIPT_DIR/venv/bin/gunicorn --bind 0.0.0.0:5000 --workers 4 wsgi:application
|
||||||
ExecReload=/bin/kill -s HUP \$MAINPID
|
ExecReload=/bin/kill -s HUP \$MAINPID
|
||||||
Restart=always
|
Restart=always
|
||||||
@ -326,15 +341,15 @@ main() {
|
|||||||
|
|
||||||
if [ "$INSTALL_MODE" = "production" ]; then
|
if [ "$INSTALL_MODE" = "production" ]; then
|
||||||
echo "📋 Produktionsbetrieb:"
|
echo "📋 Produktionsbetrieb:"
|
||||||
echo " 1. Konfiguration prüfen: nano env.backend"
|
echo " 1. Service starten: sudo systemctl start myp-backend"
|
||||||
echo " 2. Service starten: sudo systemctl start myp-backend"
|
echo " 2. Service prüfen: sudo systemctl status myp-backend"
|
||||||
echo " 3. Service prüfen: sudo systemctl status myp-backend"
|
echo " 3. Oder manuell: ./start-production.sh"
|
||||||
echo " 4. Oder manuell: ./start-production.sh"
|
echo " 4. Logs anzeigen: sudo journalctl -u myp-backend -f"
|
||||||
else
|
else
|
||||||
echo "🔧 Entwicklungsbetrieb:"
|
echo "🔧 Entwicklungsbetrieb:"
|
||||||
echo " 1. Konfiguration prüfen: nano env.backend"
|
echo " 1. Server starten: ./start-backend-server.sh"
|
||||||
echo " 2. Server starten: ./start-backend-server.sh"
|
echo " 2. Development-Server: ./start-backend-server.sh --development"
|
||||||
echo " 3. Development-Server: ./start-backend-server.sh --development"
|
echo " 3. Debug-Modus: ./start-debug-server.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -1,195 +1,103 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 🏭 MYP Backend - Standalone Server Start
|
# 🚀 MYP Backend - Entwicklungs-Startskript
|
||||||
# Startet den Backend-Server vollständig unabhängig vom Frontend
|
# Startet den Backend-Server mit hardgecodeter Konfiguration
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
echo "🏭 MYP Backend - Standalone Server wird gestartet..."
|
echo "=== MYP Backend - Entwicklungsstart ==="
|
||||||
|
|
||||||
# Farben für Terminal-Ausgabe
|
# Wechsel ins Backend-Verzeichnis
|
||||||
RED='\033[0;31m'
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
GREEN='\033[0;32m'
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
# Funktionen
|
|
||||||
log_info() {
|
|
||||||
echo -e "${BLUE}[INFO]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
log_success() {
|
|
||||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
log_warning() {
|
|
||||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
log_error() {
|
|
||||||
echo -e "${RED}[ERROR]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Arbeitsverzeichnis setzen
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
||||||
cd "$SCRIPT_DIR"
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
log_info "Arbeitsverzeichnis: $SCRIPT_DIR"
|
# Hardgecodete Umgebungsvariablen setzen
|
||||||
|
|
||||||
# Umgebungsmodus bestimmen
|
|
||||||
if [ "$1" = "--production" ] || [ "$FLASK_ENV" = "production" ]; then
|
|
||||||
RUN_MODE="production"
|
|
||||||
log_info "Produktionsmodus aktiviert"
|
|
||||||
elif [ "$1" = "--development" ] || [ "$FLASK_ENV" = "development" ]; then
|
|
||||||
RUN_MODE="development"
|
|
||||||
log_info "Entwicklungsmodus aktiviert"
|
|
||||||
else
|
|
||||||
RUN_MODE="development"
|
|
||||||
log_info "Standard-Entwicklungsmodus aktiviert"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Umgebungsvariablen laden
|
|
||||||
if [ -f "env.backend" ]; then
|
|
||||||
log_info "Lade Backend-Umgebungsvariablen..."
|
|
||||||
export $(cat env.backend | grep -v '^#' | grep -v '^$' | xargs)
|
|
||||||
export FLASK_ENV="$RUN_MODE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prüfe Python-Installation
|
|
||||||
if ! command -v python3 &> /dev/null; then
|
|
||||||
log_error "Python3 ist nicht installiert!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Prüfe pip-Installation
|
|
||||||
if ! command -v pip3 &> /dev/null; then
|
|
||||||
log_error "pip3 ist nicht installiert!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
log_success "Python-Installation verifiziert"
|
|
||||||
|
|
||||||
# Erstelle virtuelle Umgebung falls nicht vorhanden
|
|
||||||
if [ ! -d "venv" ]; then
|
|
||||||
log_info "Erstelle virtuelle Python-Umgebung..."
|
|
||||||
python3 -m venv venv
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Aktiviere virtuelle Umgebung
|
|
||||||
log_info "Aktiviere virtuelle Umgebung..."
|
|
||||||
source venv/bin/activate
|
|
||||||
|
|
||||||
# Installiere Dependencies
|
|
||||||
log_info "Installiere Python-Dependencies..."
|
|
||||||
pip install --upgrade pip
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
# Notwendige Verzeichnisse erstellen
|
|
||||||
log_info "Erstelle notwendige Verzeichnisse..."
|
|
||||||
mkdir -p instance logs migrations/versions
|
|
||||||
|
|
||||||
# Datenbank initialisieren
|
|
||||||
log_info "Initialisiere Datenbank..."
|
|
||||||
export FLASK_APP=app.py
|
export FLASK_APP=app.py
|
||||||
python3 -c "
|
export FLASK_ENV=development
|
||||||
from app import create_app, init_db
|
export SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
|
||||||
app = create_app('$RUN_MODE')
|
export DATABASE_PATH=instance/myp.db
|
||||||
with app.app_context():
|
export LOG_LEVEL=INFO
|
||||||
init_db()
|
export JOB_CHECK_INTERVAL=60
|
||||||
print('Datenbank initialisiert')
|
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)
|
||||||
|
|
||||||
# Drucker initialisieren
|
# Prüfe Entwicklungsmodus Parameter
|
||||||
if [ ! -z "$PRINTERS" ]; then
|
if [ "$1" = "--production" ]; then
|
||||||
log_info "Initialisiere Drucker-Konfiguration..."
|
export FLASK_ENV=production
|
||||||
python3 -c "
|
export DEBUG=false
|
||||||
from app import create_app, init_printers
|
export DEVELOPMENT=false
|
||||||
app = create_app('$RUN_MODE')
|
echo "🚀 Produktions-Modus aktiviert"
|
||||||
with app.app_context():
|
elif [ "$1" = "--debug" ]; then
|
||||||
init_printers()
|
|
||||||
print('Drucker initialisiert')
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Server starten basierend auf Modus
|
|
||||||
if [ "$RUN_MODE" = "production" ]; then
|
|
||||||
log_info "Starte Backend-Server im Produktionsmodus..."
|
|
||||||
log_info "Verwende Gunicorn für Produktionsbetrieb"
|
|
||||||
|
|
||||||
# Prüfe ob Gunicorn installiert ist
|
|
||||||
if ! command -v gunicorn &> /dev/null; then
|
|
||||||
log_error "Gunicorn ist nicht installiert! Installiere mit: pip install gunicorn"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Starte mit Produktions-Skript
|
|
||||||
exec ./start-production.sh
|
|
||||||
|
|
||||||
else
|
|
||||||
log_info "Starte Backend-Server im Entwicklungsmodus..."
|
|
||||||
|
|
||||||
# Flask-Entwicklungsserver
|
|
||||||
export FLASK_APP=app.py
|
|
||||||
export FLASK_ENV=development
|
export FLASK_ENV=development
|
||||||
export FLASK_DEBUG=1
|
export DEBUG=true
|
||||||
|
export DEVELOPMENT=true
|
||||||
# Port prüfen
|
echo "🔧 Debug-Modus aktiviert"
|
||||||
PORT=${PORT:-5000}
|
else
|
||||||
if netstat -tuln | grep -q ":$PORT "; then
|
echo "🔧 Standard-Entwicklungsmodus"
|
||||||
log_warning "Port $PORT ist bereits belegt!"
|
fi
|
||||||
log_info "Verwende alternativen Port 5001..."
|
|
||||||
PORT=5001
|
echo "Konfiguration:"
|
||||||
fi
|
echo " - Flask Environment: $FLASK_ENV"
|
||||||
|
echo " - Debug Modus: $DEBUG"
|
||||||
log_info "Backend-Server startet auf Port $PORT..."
|
echo " - Host: $HOST"
|
||||||
|
echo " - Port: $PORT"
|
||||||
# Flask-Server starten
|
echo " - Database: $DATABASE_PATH"
|
||||||
python3 -m flask run --host=0.0.0.0 --port=$PORT &
|
echo ""
|
||||||
FLASK_PID=$!
|
|
||||||
|
# Erstelle notwendige Verzeichnisse
|
||||||
# Warten auf Server-Start
|
mkdir -p instance logs uploads
|
||||||
log_info "Warte auf Backend-Service..."
|
|
||||||
timeout=60
|
# Aktiviere virtuelle Umgebung falls vorhanden
|
||||||
counter=0
|
if [ -d "venv" ]; then
|
||||||
|
echo "Aktiviere virtuelle Umgebung..."
|
||||||
while [ $counter -lt $timeout ]; do
|
source venv/bin/activate
|
||||||
if curl -f http://localhost:$PORT/health >/dev/null 2>&1; then
|
else
|
||||||
log_success "Backend-Server ist bereit!"
|
echo "WARNUNG: Keine virtuelle Umgebung gefunden. Verwende System-Python."
|
||||||
break
|
fi
|
||||||
fi
|
|
||||||
|
# Prüfe ob App-Datei existiert
|
||||||
if [ $((counter % 10)) -eq 0 ]; then
|
if [ ! -f "app.py" ]; then
|
||||||
log_info "Warte auf Backend-Service... ($counter/$timeout Sekunden)"
|
echo "FEHLER: app.py nicht gefunden!"
|
||||||
fi
|
exit 1
|
||||||
|
fi
|
||||||
sleep 1
|
|
||||||
counter=$((counter + 1))
|
# Starte Flask Development Server
|
||||||
done
|
echo "Starte Flask Development Server..."
|
||||||
|
echo "Backend verfügbar unter: http://localhost:$PORT"
|
||||||
if [ $counter -eq $timeout ]; then
|
echo "Health-Check: http://localhost:$PORT/health"
|
||||||
log_error "Backend-Service konnte nicht gestartet werden!"
|
echo "API-Test: http://localhost:$PORT/api/test"
|
||||||
kill $FLASK_PID 2>/dev/null || true
|
echo ""
|
||||||
exit 1
|
echo "Zum Stoppen: Ctrl+C"
|
||||||
fi
|
echo ""
|
||||||
|
|
||||||
# URLs anzeigen
|
# Starte den Server
|
||||||
echo ""
|
if [ "$FLASK_ENV" = "production" ]; then
|
||||||
log_success "🎉 Backend-Server erfolgreich gestartet!"
|
# Produktionsmodus mit Gunicorn
|
||||||
echo ""
|
echo "Starte mit Gunicorn (Produktionsmodus)..."
|
||||||
echo "📡 Backend-API: http://localhost:$PORT"
|
exec gunicorn \
|
||||||
echo "🔧 Backend-Health: http://localhost:$PORT/health"
|
--bind=$HOST:$PORT \
|
||||||
echo "📋 Backend-Test: http://localhost:$PORT/api/test"
|
--workers=2 \
|
||||||
echo ""
|
--worker-class=sync \
|
||||||
|
--timeout=30 \
|
||||||
# Logs anzeigen (optional)
|
--keep-alive=5 \
|
||||||
if [ "$2" = "--logs" ] || [ "$3" = "--logs" ]; then
|
--reload \
|
||||||
log_info "Zeige Backend-Logs (Strg+C zum Beenden):"
|
--access-logfile=logs/access.log \
|
||||||
tail -f logs/myp.log 2>/dev/null || log_warning "Keine Log-Datei gefunden"
|
--error-logfile=logs/error.log \
|
||||||
fi
|
--log-level=info \
|
||||||
|
wsgi:application
|
||||||
log_info "Verwende Strg+C um den Server zu stoppen"
|
else
|
||||||
|
# Entwicklungsmodus mit Flask
|
||||||
# Warte auf Signal
|
echo "Starte mit Flask (Entwicklungsmodus)..."
|
||||||
wait $FLASK_PID
|
exec python3 -m flask run --host=$HOST --port=$PORT --debug
|
||||||
fi
|
fi
|
@ -1,52 +1,84 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Farbcodes für Ausgabe
|
# 🔧 MYP Backend - Debug-Startskript
|
||||||
RED='\033[0;31m'
|
# Startet den Backend-Server im Debug-Modus mit maximaler Verbosity
|
||||||
GREEN='\033[0;32m'
|
|
||||||
YELLOW='\033[0;33m'
|
|
||||||
BLUE='\033[0;34m'
|
|
||||||
NC='\033[0m' # No Color
|
|
||||||
|
|
||||||
# Funktion zur Ausgabe mit Zeitstempel
|
set -e
|
||||||
log() {
|
|
||||||
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
error_log() {
|
echo "=== MYP Backend - Debug-Modus ==="
|
||||||
echo -e "${RED}[$(date +'%Y-%m-%d %H:%M:%S')] FEHLER:${NC} $1" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
# Pfad zum Debug-Server
|
# Wechsel ins Backend-Verzeichnis
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
DEBUG_SERVER_DIR="$SCRIPT_DIR/debug-server"
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
# Prüfe, ob das Debug-Server-Verzeichnis existiert
|
# Hardgecodete Debug-Umgebungsvariablen
|
||||||
if [ ! -d "$DEBUG_SERVER_DIR" ]; then
|
export FLASK_APP=app.py
|
||||||
error_log "Debug-Server-Verzeichnis nicht gefunden: $DEBUG_SERVER_DIR"
|
export FLASK_ENV=development
|
||||||
|
export FLASK_DEBUG=1
|
||||||
|
export SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
|
||||||
|
export DATABASE_PATH=instance/myp.db
|
||||||
|
export LOG_LEVEL=DEBUG
|
||||||
|
export JOB_CHECK_INTERVAL=30
|
||||||
|
export SOCKET_CHECK_INTERVAL=60
|
||||||
|
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)
|
||||||
|
|
||||||
|
echo "🔧 Debug-Konfiguration:"
|
||||||
|
echo " - Flask Environment: $FLASK_ENV"
|
||||||
|
echo " - Debug Modus: $FLASK_DEBUG"
|
||||||
|
echo " - Log Level: $LOG_LEVEL"
|
||||||
|
echo " - Host: $HOST"
|
||||||
|
echo " - Port: $PORT"
|
||||||
|
echo " - Database: $DATABASE_PATH"
|
||||||
|
echo " - Job Check Interval: $JOB_CHECK_INTERVAL Sekunden"
|
||||||
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prüfe, ob Python installiert ist
|
# Starte Flask im Debug-Modus
|
||||||
if ! command -v python &> /dev/null; then
|
echo "🚀 Starte Flask Debug-Server..."
|
||||||
error_log "Python nicht gefunden. Bitte installieren Sie Python."
|
echo "Backend verfügbar unter: http://localhost:$PORT"
|
||||||
exit 1
|
echo "Health-Check: http://localhost:$PORT/health"
|
||||||
fi
|
echo "API-Test: http://localhost:$PORT/api/test"
|
||||||
|
echo ""
|
||||||
|
echo "🔧 Debug-Features aktiviert:"
|
||||||
|
echo " - Auto-Reload bei Code-Änderungen"
|
||||||
|
echo " - Detaillierte Error-Pages"
|
||||||
|
echo " - Erweiterte Logging-Ausgabe"
|
||||||
|
echo " - Schnellere Job-Check-Intervalle"
|
||||||
|
echo ""
|
||||||
|
echo "Zum Stoppen: Ctrl+C"
|
||||||
|
echo ""
|
||||||
|
|
||||||
# Prüfe, ob pip installiert ist
|
# Starte Flask mit Debug-Optionen
|
||||||
if ! command -v pip &> /dev/null; then
|
exec python3 -m flask run \
|
||||||
error_log "pip nicht gefunden. Bitte installieren Sie pip."
|
--host=$HOST \
|
||||||
exit 1
|
--port=$PORT \
|
||||||
fi
|
--debug \
|
||||||
|
--reload \
|
||||||
# Wechsle ins Debug-Server-Verzeichnis
|
--debugger
|
||||||
cd "$DEBUG_SERVER_DIR" || exit 1
|
|
||||||
|
|
||||||
# Installiere Abhängigkeiten, falls nötig
|
|
||||||
if [ -f "requirements.txt" ]; then
|
|
||||||
log "Installiere Abhängigkeiten..."
|
|
||||||
pip install -r requirements.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Starte den Debug-Server
|
|
||||||
log "Starte Backend-Debug-Server..."
|
|
||||||
python app.py
|
|
@ -7,6 +7,31 @@ set -e
|
|||||||
|
|
||||||
echo "=== MYP Backend - Produktionsstart ==="
|
echo "=== MYP Backend - Produktionsstart ==="
|
||||||
|
|
||||||
|
# Wechsel ins Backend-Verzeichnis
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
cd "$SCRIPT_DIR"
|
||||||
|
|
||||||
|
# Hardgecodete Produktions-Umgebungsvariablen
|
||||||
|
export FLASK_APP=app.py
|
||||||
|
export FLASK_ENV=production
|
||||||
|
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=false
|
||||||
|
export TESTING=false
|
||||||
|
export DEVELOPMENT=false
|
||||||
|
export PYTHONPATH=${PYTHONPATH}:$(pwd)
|
||||||
|
|
||||||
# Konfiguration
|
# Konfiguration
|
||||||
WORKERS=${WORKERS:-4}
|
WORKERS=${WORKERS:-4}
|
||||||
BIND_ADDRESS=${BIND_ADDRESS:-"0.0.0.0:5000"}
|
BIND_ADDRESS=${BIND_ADDRESS:-"0.0.0.0:5000"}
|
||||||
@ -15,19 +40,9 @@ KEEP_ALIVE=${KEEP_ALIVE:-5}
|
|||||||
MAX_REQUESTS=${MAX_REQUESTS:-1000}
|
MAX_REQUESTS=${MAX_REQUESTS:-1000}
|
||||||
MAX_REQUESTS_JITTER=${MAX_REQUESTS_JITTER:-100}
|
MAX_REQUESTS_JITTER=${MAX_REQUESTS_JITTER:-100}
|
||||||
|
|
||||||
# Umgebungsvariablen
|
|
||||||
export FLASK_ENV=production
|
|
||||||
export PYTHONPATH=${PYTHONPATH}:$(pwd)
|
|
||||||
|
|
||||||
# Log-Verzeichnis erstellen
|
# Log-Verzeichnis erstellen
|
||||||
mkdir -p logs
|
mkdir -p logs
|
||||||
|
|
||||||
# Prüfe, ob alle erforderlichen Umgebungsvariablen gesetzt sind
|
|
||||||
if [ -z "$SECRET_KEY" ]; then
|
|
||||||
echo "WARNUNG: SECRET_KEY ist nicht gesetzt. Verwende einen festgelegten Schlüssel."
|
|
||||||
export SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Produktionsparameter ausgeben
|
# Produktionsparameter ausgeben
|
||||||
echo "Konfiguration:"
|
echo "Konfiguration:"
|
||||||
echo " - Workers: $WORKERS"
|
echo " - Workers: $WORKERS"
|
||||||
@ -35,8 +50,18 @@ echo " - Bind: $BIND_ADDRESS"
|
|||||||
echo " - Timeout: $TIMEOUT Sekunden"
|
echo " - Timeout: $TIMEOUT Sekunden"
|
||||||
echo " - Max Requests: $MAX_REQUESTS"
|
echo " - Max Requests: $MAX_REQUESTS"
|
||||||
echo " - Environment: $FLASK_ENV"
|
echo " - Environment: $FLASK_ENV"
|
||||||
|
echo " - Database: $DATABASE_PATH"
|
||||||
|
echo " - Log Level: $LOG_LEVEL"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
# Gunicorn starten
|
# Gunicorn starten
|
||||||
echo "Starte Gunicorn-Server..."
|
echo "Starte Gunicorn-Server..."
|
||||||
exec gunicorn \
|
exec gunicorn \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user