73 lines
1.9 KiB
Bash
Executable File
73 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Installation Script für MYP Backend
|
|
|
|
echo "=== MYP Backend Installation ==="
|
|
echo ""
|
|
|
|
# Prüfe Python-Version
|
|
python_version=$(python3 --version 2>&1 | awk '{print $2}')
|
|
echo "Python-Version: $python_version"
|
|
|
|
# Prüfe, ob die Python-Version mindestens 3.8 ist
|
|
required_version="3.8.0"
|
|
if [[ "$(printf '%s\n' "$required_version" "$python_version" | sort -V | head -n1)" != "$required_version" ]]; then
|
|
echo "FEHLER: Python $required_version oder höher wird benötigt"
|
|
exit 1
|
|
fi
|
|
|
|
# Erstelle virtuelle Umgebung
|
|
echo ""
|
|
echo "Erstelle virtuelle Python-Umgebung..."
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
# Installiere Abhängigkeiten
|
|
echo ""
|
|
echo "Installiere Abhängigkeiten..."
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
|
|
# Erstelle .env-Datei
|
|
echo ""
|
|
echo "Erstelle .env-Datei..."
|
|
if [ ! -f .env ]; then
|
|
cp .env.example .env
|
|
echo "Die .env-Datei wurde aus der Beispieldatei erstellt."
|
|
echo "Bitte passe die Konfiguration für GitHub OAuth und Tapo-Steckdosen an."
|
|
else
|
|
echo ".env-Datei existiert bereits."
|
|
fi
|
|
|
|
# Erstelle Logs-Ordner
|
|
echo ""
|
|
echo "Erstelle logs-Ordner..."
|
|
mkdir -p logs
|
|
|
|
# Erstelle Instance und Backup Ordner
|
|
echo ""
|
|
echo "Erstelle instance-Ordner..."
|
|
mkdir -p instance/backups
|
|
|
|
# Initialisiere die Datenbank
|
|
echo ""
|
|
echo "Initialisiere die Datenbank..."
|
|
FLASK_APP=app.py flask db init
|
|
FLASK_APP=app.py flask db migrate -m "Initiale Datenbank-Erstellung"
|
|
FLASK_APP=app.py flask db upgrade
|
|
|
|
echo ""
|
|
echo "=== Installation abgeschlossen ==="
|
|
echo ""
|
|
echo "Wichtige Schritte vor dem Start:"
|
|
echo "1. Konfiguriere die .env-Datei mit deinen GitHub OAuth-Credentials"
|
|
echo "2. Konfiguriere die Tapo-Steckdosen-Zugangsdaten in der .env-Datei"
|
|
echo "3. Passe die crontab-example an und installiere den Cron-Job (optional)"
|
|
echo ""
|
|
echo "Starte den Server mit:"
|
|
echo "source venv/bin/activate"
|
|
echo "python app.py"
|
|
echo ""
|
|
echo "Oder mit Gunicorn für Produktion:"
|
|
echo "gunicorn --bind 0.0.0.0:5000 app:app"
|
|
echo "" |