80 lines
2.8 KiB
Bash
80 lines
2.8 KiB
Bash
#!/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
|
||
|