Liga-System/setup_env.sh

80 lines
2.8 KiB
Bash
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Sicherstellen dass das Script abbricht wenn ein Fehler passiert
# -e: Beendet das Script sofort wenn ein Befehl einen Fehlercode zurückgibt (Exit-Code != 0)
set -e
echo "✅ Starte einrichtung der Liga Umgebung. Updates und System Abhängigkeiten werden installiert ..."
# Prüfen ob der Liga-Service auf dem System installiert ist
# systemctl list-unit-files zeigt alle registrierten Service-Dateien
SERVICE_EXISTS=false
if systemctl list-unit-files --type service | grep -q "liga.service"; then
# Service existiert → sicher anhalten bevor Updates kommen
sudo systemctl stop liga
SERVICE_EXISTS=true
echo "✅ Liga Service wurde gestoppt."
else
# Service nicht installiert → kein Fehler, nur Info
echo " Liga Service nicht gefunden. Wird übersprungen."
fi
# 1. System updaten
# apt update: Lädt die aktuellen Paketlisten vom Server herunter
# apt upgrade -y: Installiert alle verfügbaren Updates, -y bestätigt automatisch
sudo apt update && sudo apt upgrade -y
# 2. System-Abhängigkeiten installieren
# -y: Automatisch mit "Ja" bestätigen
sudo apt install -y \
python3 \
python3-venv \
python3-full \
libmariadb3 \
libmariadb-dev
echo "✅ Updates installiert. Überprüfe Softwarestand von Git ..."
# Git Pull: Holt die neuesten Änderungen vom Remote-Repository
# und merged sie in den lokalen Branch
git pull
echo "✅ Softwarestand von Git aktuell. Richte Umgebung ein ..."
# 3. Virtuelle Umgebung erstellen (falls noch nicht vorhanden)
# Wenn .venv schon existiert wird es einfach aktualisiert/überschrieben
python3 -m venv .venv
# 4. Virtuelle Umgebung aktivieren
# WICHTIG: Da wir in einem Bash-Script sind, gilt die Aktivierung nur für dieses Script
source .venv/bin/activate
echo "✅ Umgebung eingerichtet! Installiere Pakete ..."
# 5. pip aktualisieren
# pip ist der Paketmanager für Python sollte aktuell sein um Kompatibilitätsprobleme zu vermeiden
pip install --upgrade pip
# 6. Python-Pakete installieren
pip install -r requirements.txt
echo "✅ Pakete installiert. Starte Liga Service ..."
# Prüfen ob der Service vorher existierte und versuche ihn zu starten
if [ "$SERVICE_EXISTS" = true ]; then
# Service existiert bereits auf dem System → versuchen zu starten
# systemctl start gibt Exit-Code 0 bei Erfolg, != 0 bei Fehler
if sudo systemctl start liga; then
echo "✅ Liga Service erfolgreich gestartet. Alles bereit!"
else
echo "❌ FEHLER: Liga Service konnte nicht gestartet werden!"
echo " Prüfe mit: sudo systemctl status liga"
echo " Prüfe mit: sudo journalctl -u liga --no-pager -n 50"
exit 1
fi
else
# Service war vorher auch nicht installiert Info an den User
echo " Liga Service nicht installiert. Manuell starten oder Service erst einrichten."
fi