81 lines
2.4 KiB
Bash
81 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# MYP Backend - Produktions-Startskript
|
|
# Startet die Flask-Anwendung mit Gunicorn für den Produktionsbetrieb
|
|
|
|
set -e
|
|
|
|
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
|
|
WORKERS=${WORKERS:-4}
|
|
BIND_ADDRESS=${BIND_ADDRESS:-"0.0.0.0:5000"}
|
|
TIMEOUT=${TIMEOUT:-30}
|
|
KEEP_ALIVE=${KEEP_ALIVE:-5}
|
|
MAX_REQUESTS=${MAX_REQUESTS:-1000}
|
|
MAX_REQUESTS_JITTER=${MAX_REQUESTS_JITTER:-100}
|
|
|
|
# Log-Verzeichnis erstellen
|
|
mkdir -p logs
|
|
|
|
# Produktionsparameter ausgeben
|
|
echo "Konfiguration:"
|
|
echo " - Workers: $WORKERS"
|
|
echo " - Bind: $BIND_ADDRESS"
|
|
echo " - Timeout: $TIMEOUT Sekunden"
|
|
echo " - Max Requests: $MAX_REQUESTS"
|
|
echo " - Environment: $FLASK_ENV"
|
|
echo " - Database: $DATABASE_PATH"
|
|
echo " - Log Level: $LOG_LEVEL"
|
|
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
|
|
echo "Starte Gunicorn-Server..."
|
|
exec gunicorn \
|
|
--workers=$WORKERS \
|
|
--worker-class=sync \
|
|
--bind=$BIND_ADDRESS \
|
|
--timeout=$TIMEOUT \
|
|
--keep-alive=$KEEP_ALIVE \
|
|
--max-requests=$MAX_REQUESTS \
|
|
--max-requests-jitter=$MAX_REQUESTS_JITTER \
|
|
--preload \
|
|
--access-logfile=logs/access.log \
|
|
--error-logfile=logs/error.log \
|
|
--log-level=info \
|
|
--capture-output \
|
|
--enable-stdio-inheritance \
|
|
wsgi:application |