"Refactor script files using Conventional Commits (feat)"

This commit is contained in:
2025-05-23 08:02:52 +02:00
parent 0ad5597df3
commit aa4ec84a44
4 changed files with 332 additions and 184 deletions

View File

@@ -1,50 +1,79 @@
Write-Host "MYP-Umgebung wird bereinigt..." -ForegroundColor Cyan # 🧹 MYP - Manage your Printer (Hauptbereinigungsskript)
# Weiterleitung an das optimierte Infrastructure-Bereinigungsskript
# Stoppen der Debug-Server, falls sie laufen param(
if (Test-Path -Path "logs\backend-debug.jobid") { [switch]$Force,
Write-Host "Stoppe Backend Debug-Server..." -ForegroundColor Yellow [switch]$Help,
$jobId = Get-Content "logs\backend-debug.jobid" [switch]$All
Stop-Job -Id $jobId -ErrorAction SilentlyContinue )
Remove-Job -Id $jobId -Force -ErrorAction SilentlyContinue
Remove-Item "logs\backend-debug.jobid" -Force # Farbdefinitionen für bessere Ausgabe
$Colors = @{
Info = "Cyan"
Success = "Green"
Warning = "Yellow"
Error = "Red"
Header = "Magenta"
} }
if (Test-Path -Path "logs\frontend-debug.jobid") { function Write-ColorOutput {
Write-Host "Stoppe Frontend Debug-Server..." -ForegroundColor Yellow param([string]$Message, [string]$Color = "White")
$jobId = Get-Content "logs\frontend-debug.jobid" Write-Host $Message -ForegroundColor $Colors[$Color]
Stop-Job -Id $jobId -ErrorAction SilentlyContinue
Remove-Job -Id $jobId -Force -ErrorAction SilentlyContinue
Remove-Item "logs\frontend-debug.jobid" -Force
} }
# Stoppen und Entfernen aller Docker-Container # Header anzeigen
Write-Host "Stoppe und entferne alle MYP-Container..." -ForegroundColor Yellow Write-ColorOutput "🧹 MYP - Manage your Printer (Bereinigung)" "Header"
docker-compose down Write-ColorOutput "═══════════════════════════════════════════" "Header"
# Entfernen aller MYP-Container, auch die bereits gestoppten # Hilfe anzeigen
Write-Host "Entferne alle MYP-Container..." -ForegroundColor Yellow if ($Help) {
$containers = docker ps -a --filter "name=myp-" -q Write-ColorOutput "`n📖 Verwendung:" "Info"
if ($containers) { Write-ColorOutput " .\cleanup.ps1 [Optionen]" "White"
docker rm -f $containers Write-ColorOutput "`n⚙️ Optionen:" "Info"
Write-ColorOutput " -Force - Bereinigung ohne Bestätigung durchführen" "White"
Write-ColorOutput " -All - Vollständige Bereinigung (inkl. Volumes)" "White"
Write-ColorOutput " -Help - Diese Hilfe anzeigen" "White"
Write-ColorOutput "`n📚 Beispiele:" "Info"
Write-ColorOutput " .\cleanup.ps1 # Interaktive Bereinigung" "White"
Write-ColorOutput " .\cleanup.ps1 -Force # Automatische Bereinigung" "White"
Write-ColorOutput " .\cleanup.ps1 -All -Force # Vollständige Bereinigung" "White"
exit 0
} }
# Entfernen aller MYP-Images # Prüfe ob Infrastructure-Skript existiert
Write-Host "Entferne alle MYP-Images..." -ForegroundColor Yellow $InfraScript = ".\infrastructure\scripts\cleanup.ps1"
$images = docker images --filter "reference=*myp*" -q if (-not (Test-Path $InfraScript)) {
if ($images) { Write-ColorOutput "`n❌ Infrastructure-Bereinigungsskript nicht gefunden: $InfraScript" "Error"
docker rmi -f $images Write-ColorOutput " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist." "Error"
exit 1
} }
# Entfernen von nicht verwendeten Volumes (optional) # Parameter für Infrastructure-Skript vorbereiten
Write-Host "Entferne nicht verwendete Volumes..." -ForegroundColor Yellow $InfraParams = @()
docker volume prune -f if ($Force) { $InfraParams += "-Force" }
if ($All) { $InfraParams += "-All" }
# Entfernen von nicht verwendeten Netzwerken (optional) # Weiterleitung an Infrastructure-Skript
Write-Host "Entferne nicht verwendete Netzwerke..." -ForegroundColor Yellow Write-ColorOutput "`n🔄 Weiterleitung an Infrastructure-Bereinigungsskript..." "Info"
docker network prune -f
# Entfernen von Build-Cache (optional) try {
Write-Host "Entferne Docker Build-Cache..." -ForegroundColor Yellow if ($InfraParams.Count -gt 0) {
docker builder prune -f & $InfraScript @InfraParams
} else {
& $InfraScript
}
Write-Host "Bereinigung abgeschlossen. Sie können nun 'start.ps1' ausführen, um eine frische Installation zu starten." -ForegroundColor Green $ExitCode = $LASTEXITCODE
if ($ExitCode -eq 0) {
Write-ColorOutput "`n🎉 Bereinigung erfolgreich abgeschlossen!" "Success"
} else {
Write-ColorOutput "`n❌ Bereinigung fehlgeschlagen (Exit Code: $ExitCode)" "Error"
}
exit $ExitCode
} catch {
Write-ColorOutput "`n💥 Unerwarteter Fehler bei der Bereinigung:" "Error"
Write-ColorOutput " $($_.Exception.Message)" "Error"
exit 1
}

View File

@@ -1,42 +1,115 @@
#!/bin/bash #!/bin/bash
# 🧹 MYP - Manage your Printer (Hauptbereinigungsskript)
# Weiterleitung an das optimierte Infrastructure-Bereinigungsskript
echo "MYP-Umgebung wird bereinigt..." set -euo pipefail
# Stoppen der Debug-Server, falls sie laufen # Farbdefinitionen für bessere Ausgabe
if [ -f logs/backend-debug.pid ]; then readonly RED='\033[0;31m'
echo "Stoppe Backend Debug-Server..." readonly GREEN='\033[0;32m'
kill $(cat logs/backend-debug.pid) 2>/dev/null || true readonly YELLOW='\033[1;33m'
rm logs/backend-debug.pid readonly BLUE='\033[0;34m'
readonly MAGENTA='\033[0;35m'
readonly CYAN='\033[0;36m'
readonly WHITE='\033[1;37m'
readonly NC='\033[0m' # No Color
# Logging-Funktionen
log_info() { echo -e "${CYAN} $1${NC}"; }
log_success() { echo -e "${GREEN}$1${NC}"; }
log_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
log_error() { echo -e "${RED}$1${NC}"; }
log_header() { echo -e "${MAGENTA}$1${NC}"; }
# Standard-Parameter
FORCE_MODE=false
ALL_MODE=false
SHOW_HELP=false
# Hilfe-Funktion
show_help() {
log_header "🧹 MYP - Manage your Printer (Bereinigung)"
log_header "═══════════════════════════════════════════"
echo
log_info "📖 Verwendung:"
echo " ./cleanup.sh [Optionen]"
echo
log_info "⚙️ Optionen:"
echo " -f, --force - Bereinigung ohne Bestätigung durchführen"
echo " -a, --all - Vollständige Bereinigung (inkl. Volumes)"
echo " -h, --help - Diese Hilfe anzeigen"
echo
log_info "📚 Beispiele:"
echo " ./cleanup.sh # Interaktive Bereinigung"
echo " ./cleanup.sh --force # Automatische Bereinigung"
echo " ./cleanup.sh --all --force # Vollständige Bereinigung"
echo
}
# Parameter-Parsing
while [[ $# -gt 0 ]]; do
case $1 in
-f|--force)
FORCE_MODE=true
shift
;;
-a|--all)
ALL_MODE=true
shift
;;
-h|--help)
SHOW_HELP=true
shift
;;
*)
log_error "Unbekannter Parameter: $1"
echo "Verwenden Sie --help für Hilfe."
exit 1
;;
esac
done
# Hilfe anzeigen
if [[ "$SHOW_HELP" == true ]]; then
show_help
exit 0
fi fi
if [ -f logs/frontend-debug.pid ]; then # Header anzeigen
echo "Stoppe Frontend Debug-Server..." log_header "🧹 MYP - Manage your Printer (Bereinigung)"
kill $(cat logs/frontend-debug.pid) 2>/dev/null || true log_header "═══════════════════════════════════════════"
rm logs/frontend-debug.pid
# Prüfe ob Infrastructure-Skript existiert
INFRA_SCRIPT="./infrastructure/scripts/cleanup.sh"
if [[ ! -f "$INFRA_SCRIPT" ]]; then
log_error "❌ Infrastructure-Bereinigungsskript nicht gefunden: $INFRA_SCRIPT"
log_error " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist."
exit 1
fi fi
# Stoppen und Entfernen aller Docker-Container # Prüfe Ausführungsrechte
echo "Stoppe und entferne alle MYP-Container..." if [[ ! -x "$INFRA_SCRIPT" ]]; then
docker-compose down log_warning "⚠️ Setze Ausführungsrechte für Infrastructure-Skript..."
chmod +x "$INFRA_SCRIPT"
fi
# Entfernen aller MYP-Container, auch die bereits gestoppten # Parameter für Infrastructure-Skript vorbereiten
echo "Entferne alle MYP-Container..." INFRA_PARAMS=()
docker ps -a --filter "name=myp-" -q | xargs -r docker rm -f if [[ "$FORCE_MODE" == true ]]; then
INFRA_PARAMS+=("--force")
fi
if [[ "$ALL_MODE" == true ]]; then
INFRA_PARAMS+=("--all")
fi
# Entfernen aller MYP-Images # Weiterleitung an Infrastructure-Skript
echo "Entferne alle MYP-Images..." log_info "🔄 Weiterleitung an Infrastructure-Bereinigungsskript..."
docker images | grep "myp-" | awk '{print $3}' | xargs -r docker rmi -f
# Entfernen von nicht verwendeten Volumes (optional) if "${INFRA_SCRIPT}" "${INFRA_PARAMS[@]}"; then
echo "Entferne nicht verwendete Volumes..." log_success "🎉 Bereinigung erfolgreich abgeschlossen!"
docker volume prune -f exit 0
else
# Entfernen von nicht verwendeten Netzwerken (optional) EXIT_CODE=$?
echo "Entferne nicht verwendete Netzwerke..." log_error "❌ Bereinigung fehlgeschlagen (Exit Code: $EXIT_CODE)"
docker network prune -f exit $EXIT_CODE
fi
# Entfernen von Build-Cache (optional)
echo "Entferne Docker Build-Cache..."
docker builder prune -f
echo "Bereinigung abgeschlossen. Sie können nun 'start.sh' ausführen, um eine frische Installation zu starten."

View File

@@ -26,22 +26,22 @@ function Write-ColorOutput {
} }
# Header anzeigen # Header anzeigen
Write-ColorOutput "🖨️ MYP - Manage your Printer" "Header" Write-ColorOutput "MYP - Manage your Printer" "Header"
Write-ColorOutput "═══════════════════════════════════════" "Header" Write-ColorOutput "=======================================" "Header"
# Hilfe anzeigen # Hilfe anzeigen
if ($Help) { if ($Help) {
Write-ColorOutput "`n📖 Verwendung:" "Info" Write-ColorOutput "`nVerwendung:" "Info"
Write-ColorOutput " .\start.ps1 [Environment] [Optionen]" "White" Write-ColorOutput " .\start.ps1 [Environment] [Optionen]" "White"
Write-ColorOutput "`n🌍 Verfügbare Umgebungen:" "Info" Write-ColorOutput "`nVerfügbare Umgebungen:" "Info"
Write-ColorOutput " dev, development - Entwicklungsumgebung (Standard)" "White" Write-ColorOutput " dev, development - Entwicklungsumgebung (Standard)" "White"
Write-ColorOutput " prod, production - Produktionsumgebung" "White" Write-ColorOutput " prod, production - Produktionsumgebung" "White"
Write-ColorOutput " test - Testumgebung" "White" Write-ColorOutput " test - Testumgebung" "White"
Write-ColorOutput "`n⚙️ Optionen:" "Info" Write-ColorOutput "`nOptionen:" "Info"
Write-ColorOutput " -Help - Diese Hilfe anzeigen" "White" Write-ColorOutput " -Help - Diese Hilfe anzeigen" "White"
Write-ColorOutput " -Version - Versionsinformationen anzeigen" "White" Write-ColorOutput " -Version - Versionsinformationen anzeigen" "White"
Write-ColorOutput " -Clean - System vor Start bereinigen" "White" Write-ColorOutput " -Clean - System vor Start bereinigen" "White"
Write-ColorOutput "`n📚 Beispiele:" "Info" Write-ColorOutput "`nBeispiele:" "Info"
Write-ColorOutput " .\start.ps1 # Entwicklungsumgebung starten" "White" Write-ColorOutput " .\start.ps1 # Entwicklungsumgebung starten" "White"
Write-ColorOutput " .\start.ps1 prod # Produktionsumgebung starten" "White" Write-ColorOutput " .\start.ps1 prod # Produktionsumgebung starten" "White"
Write-ColorOutput " .\start.ps1 dev -Clean # Mit Bereinigung starten" "White" Write-ColorOutput " .\start.ps1 dev -Clean # Mit Bereinigung starten" "White"
@@ -50,7 +50,7 @@ if ($Help) {
# Version anzeigen # Version anzeigen
if ($Version) { if ($Version) {
Write-ColorOutput "`n📋 Systeminformationen:" "Info" Write-ColorOutput "`nSysteminformationen:" "Info"
Write-ColorOutput " MYP Version: 2.0.0" "White" Write-ColorOutput " MYP Version: 2.0.0" "White"
Write-ColorOutput " PowerShell: $($PSVersionTable.PSVersion)" "White" Write-ColorOutput " PowerShell: $($PSVersionTable.PSVersion)" "White"
Write-ColorOutput " OS: $($PSVersionTable.OS)" "White" Write-ColorOutput " OS: $($PSVersionTable.OS)" "White"
@@ -60,25 +60,25 @@ if ($Version) {
# Bereinigung falls gewünscht # Bereinigung falls gewünscht
if ($Clean) { if ($Clean) {
Write-ColorOutput "`n🧹 System wird bereinigt..." "Warning" Write-ColorOutput "`nSystem wird bereinigt..." "Warning"
& ".\infrastructure\scripts\cleanup.ps1" -Force & ".\infrastructure\scripts\cleanup.ps1" -Force
if ($LASTEXITCODE -ne 0) { if ($LASTEXITCODE -ne 0) {
Write-ColorOutput "Bereinigung fehlgeschlagen!" "Error" Write-ColorOutput "Bereinigung fehlgeschlagen!" "Error"
exit 1 exit 1
} }
Write-ColorOutput "System erfolgreich bereinigt!" "Success" Write-ColorOutput "System erfolgreich bereinigt!" "Success"
} }
# Prüfe ob Infrastructure-Skript existiert # Prüfe ob Infrastructure-Skript existiert
$InfraScript = ".\infrastructure\scripts\start.ps1" $InfraScript = ".\infrastructure\scripts\start.ps1"
if (-not (Test-Path $InfraScript)) { if (-not (Test-Path $InfraScript)) {
Write-ColorOutput "`nInfrastructure-Startskript nicht gefunden: $InfraScript" "Error" Write-ColorOutput "`nInfrastructure-Startskript nicht gefunden: $InfraScript" "Error"
Write-ColorOutput " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist." "Error" Write-ColorOutput " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist." "Error"
exit 1 exit 1
} }
# Weiterleitung an Infrastructure-Skript # Weiterleitung an Infrastructure-Skript
Write-ColorOutput "`n🔄 Weiterleitung an Infrastructure-Startskript..." "Info" Write-ColorOutput "`nWeiterleitung an Infrastructure-Startskript..." "Info"
Write-ColorOutput " Umgebung: $Environment" "White" Write-ColorOutput " Umgebung: $Environment" "White"
try { try {
@@ -86,15 +86,15 @@ try {
$ExitCode = $LASTEXITCODE $ExitCode = $LASTEXITCODE
if ($ExitCode -eq 0) { if ($ExitCode -eq 0) {
Write-ColorOutput "`n🎉 MYP erfolgreich gestartet!" "Success" Write-ColorOutput "`nMYP erfolgreich gestartet!" "Success"
Write-ColorOutput " Zugriff über: http://localhost" "Info" Write-ColorOutput " Zugriff über: http://localhost" "Info"
} else { } else {
Write-ColorOutput "`nStart fehlgeschlagen (Exit Code: $ExitCode)" "Error" Write-ColorOutput "`nStart fehlgeschlagen (Exit Code: $ExitCode)" "Error"
} }
exit $ExitCode exit $ExitCode
} catch { } catch {
Write-ColorOutput "`n💥 Unerwarteter Fehler beim Start:" "Error" Write-ColorOutput "`nUnerwarteter Fehler beim Start:" "Error"
Write-ColorOutput " $($_.Exception.Message)" "Error" Write-ColorOutput " $($_.Exception.Message)" "Error"
exit 1 exit 1
} }

234
start.sh
View File

@@ -1,111 +1,157 @@
#!/bin/bash #!/bin/bash
# Projektarbeit-MYP Startskript für Linux # 🚀 MYP - Manage your Printer (Hauptstartskript)
# Dieses Skript startet alle notwendigen Dienste für das MYP-Projekt # Weiterleitung an das optimierte Infrastructure-Startskript
echo -e "\e[32mStarte MYP-Projekt...\e[0m" set -euo pipefail
# SSH-Server prüfen und aktivieren # Farbdefinitionen für bessere Ausgabe
echo -e "\e[33mPrüfe SSH-Server-Status...\e[0m" readonly RED='\033[0;31m'
if command -v systemctl > /dev/null; then readonly GREEN='\033[0;32m'
# Prüfen, ob SSH-Server installiert ist readonly YELLOW='\033[1;33m'
if ! systemctl list-unit-files | grep -q ssh.service; then readonly BLUE='\033[0;34m'
echo -e "\e[33mSSH-Server scheint nicht installiert zu sein. Versuche zu installieren...\e[0m" readonly MAGENTA='\033[0;35m'
if command -v apt-get > /dev/null; then readonly CYAN='\033[0;36m'
sudo apt-get update && sudo apt-get install -y openssh-server readonly WHITE='\033[1;37m'
elif command -v yum > /dev/null; then readonly NC='\033[0m' # No Color
sudo yum install -y openssh-server
else
echo -e "\e[31mPacket-Manager nicht gefunden. Bitte installieren Sie openssh-server manuell.\e[0m"
fi
fi
# SSH-Server aktivieren und starten # Logging-Funktionen
echo -e "\e[33mAktiviere SSH-Server beim Systemstart...\e[0m" log_info() { echo -e "${CYAN} $1${NC}"; }
sudo systemctl enable ssh.service || sudo systemctl enable sshd.service log_success() { echo -e "${GREEN}$1${NC}"; }
log_warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
log_error() { echo -e "${RED}$1${NC}"; }
log_header() { echo -e "${MAGENTA}$1${NC}"; }
# SSH-Server starten, falls nicht bereits läuft # Standard-Umgebung
if ! systemctl is-active --quiet ssh.service && ! systemctl is-active --quiet sshd.service; then ENVIRONMENT="dev"
echo -e "\e[33mStarte SSH-Server...\e[0m" CLEAN_MODE=false
sudo systemctl start ssh.service || sudo systemctl start sshd.service SHOW_HELP=false
else SHOW_VERSION=false
echo -e "\e[32mSSH-Server läuft bereits.\e[0m"
fi # Hilfe-Funktion
else show_help() {
echo -e "\e[31mSystemctl nicht gefunden. Bitte aktivieren Sie den SSH-Server manuell.\e[0m" log_header "🖨️ MYP - Manage your Printer"
log_header "═══════════════════════════════════════"
echo
log_info "📖 Verwendung:"
echo " ./start.sh [Environment] [Optionen]"
echo
log_info "🌍 Verfügbare Umgebungen:"
echo " dev, development - Entwicklungsumgebung (Standard)"
echo " prod, production - Produktionsumgebung"
echo " test - Testumgebung"
echo
log_info "⚙️ Optionen:"
echo " -h, --help - Diese Hilfe anzeigen"
echo " -v, --version - Versionsinformationen anzeigen"
echo " -c, --clean - System vor Start bereinigen"
echo
log_info "📚 Beispiele:"
echo " ./start.sh # Entwicklungsumgebung starten"
echo " ./start.sh prod # Produktionsumgebung starten"
echo " ./start.sh dev --clean # Mit Bereinigung starten"
echo
}
# Versions-Funktion
show_version() {
log_header "🖨️ MYP - Manage your Printer"
log_header "═══════════════════════════════════════"
echo
log_info "📋 Systeminformationen:"
echo " MYP Version: 2.0.0"
echo " Bash Version: ${BASH_VERSION}"
echo " OS: $(uname -s)"
echo " Architektur: $(uname -m)"
echo " Kernel: $(uname -r)"
echo
}
# Parameter-Parsing
while [[ $# -gt 0 ]]; do
case $1 in
dev|development)
ENVIRONMENT="dev"
shift
;;
prod|production)
ENVIRONMENT="prod"
shift
;;
test)
ENVIRONMENT="test"
shift
;;
-h|--help)
SHOW_HELP=true
shift
;;
-v|--version)
SHOW_VERSION=true
shift
;;
-c|--clean)
CLEAN_MODE=true
shift
;;
*)
log_error "Unbekannter Parameter: $1"
echo "Verwenden Sie --help für Hilfe."
exit 1
;;
esac
done
# Hilfe anzeigen
if [[ "$SHOW_HELP" == true ]]; then
show_help
exit 0
fi fi
# Überprüfen, ob Docker läuft # Version anzeigen
if ! docker info > /dev/null 2>&1; then if [[ "$SHOW_VERSION" == true ]]; then
echo -e "\e[33mDocker scheint nicht zu laufen. Versuche Docker zu starten...\e[0m" show_version
exit 0
fi
# Versuchen, Docker zu starten (funktioniert auf Systemen mit systemd) # Header anzeigen
if command -v systemctl > /dev/null; then log_header "🖨️ MYP - Manage your Printer"
sudo systemctl start docker log_header "═══════════════════════════════════════"
sleep 5
if ! docker info > /dev/null 2>&1; then # Bereinigung falls gewünscht
echo -e "\e[31mDocker konnte nicht gestartet werden. Bitte starten Sie Docker manuell und führen Sie dieses Skript erneut aus.\e[0m" if [[ "$CLEAN_MODE" == true ]]; then
exit 1 log_warning "🧹 System wird bereinigt..."
fi if ./infrastructure/scripts/cleanup.sh --force; then
log_success "✅ System erfolgreich bereinigt!"
else else
echo -e "\e[31mDocker ist nicht gestartet und konnte nicht automatisch gestartet werden.\e[0m" log_error "❌ Bereinigung fehlgeschlagen!"
echo -e "\e[31mBitte starten Sie Docker manuell und führen Sie dieses Skript erneut aus.\e[0m"
exit 1 exit 1
fi fi
echo -e "\e[32mDocker wurde erfolgreich gestartet.\e[0m"
fi fi
# Überprüfen, ob die Container bereits laufen # Prüfe ob Infrastructure-Skript existiert
RUNNING_CONTAINERS=$(docker ps --format "{{.Names}}" | grep -E "myp-backend|myp-rp|myp-caddy" | wc -l) INFRA_SCRIPT="./infrastructure/scripts/start.sh"
if [[ ! -f "$INFRA_SCRIPT" ]]; then
log_error "❌ Infrastructure-Startskript nicht gefunden: $INFRA_SCRIPT"
log_error " Bitte stellen Sie sicher, dass die Projektstruktur vollständig ist."
exit 1
fi
if [ "$RUNNING_CONTAINERS" -eq 3 ]; then # Prüfe Ausführungsrechte
echo -e "\e[32mAlle MYP-Container laufen bereits.\e[0m" if [[ ! -x "$INFRA_SCRIPT" ]]; then
log_warning "⚠️ Setze Ausführungsrechte für Infrastructure-Skript..."
chmod +x "$INFRA_SCRIPT"
fi
# Weiterleitung an Infrastructure-Skript
log_info "🔄 Weiterleitung an Infrastructure-Startskript..."
echo " Umgebung: $ENVIRONMENT"
if "$INFRA_SCRIPT" "$ENVIRONMENT"; then
log_success "🎉 MYP erfolgreich gestartet!"
log_info " Zugriff über: http://localhost"
exit 0
else else
# Container starten EXIT_CODE=$?
echo -e "\e[33mStarte MYP-Container...\e[0m" log_error "❌ Start fehlgeschlagen (Exit Code: $EXIT_CODE)"
exit $EXIT_CODE
# Ins Projektverzeichnis wechseln
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# Docker-Compose ausführen
docker-compose up -d
# Warten, bis alle Container laufen
echo -e "\e[33mWarte, bis alle Container bereit sind...\e[0m"
ALL_RUNNING=false
RETRY_COUNT=0
MAX_RETRIES=30
while [ "$ALL_RUNNING" = false ] && [ "$RETRY_COUNT" -lt "$MAX_RETRIES" ]; do
sleep 5
RETRY_COUNT=$((RETRY_COUNT + 1))
BACKEND_HEALTH=$(docker inspect --format='{{.State.Health.Status}}' myp-backend 2>/dev/null)
FRONTEND_HEALTH=$(docker inspect --format='{{.State.Health.Status}}' myp-rp 2>/dev/null)
if [ "$BACKEND_HEALTH" = "healthy" ] && [ "$FRONTEND_HEALTH" = "healthy" ]; then
ALL_RUNNING=true
fi
done
if [ "$ALL_RUNNING" = true ]; then
echo -e "\e[32mAlle MYP-Container sind bereit und laufen.\e[0m"
else
echo -e "\e[33mZeitüberschreitung beim Warten auf Container. Bitte überprüfen Sie den Status mit 'docker ps'.\e[0m"
fi
fi fi
# Informationen zur Anwendung anzeigen
echo -e "\n\e[36mMYP-Anwendung ist jetzt verfügbar unter:\e[0m"
echo -e " * http://localhost"
echo -e " * http://192.168.0.5:5000 (Backend API direkt)"
echo -e "\n\e[36mDas Backend ist unter der festen IP 192.168.0.5 erreichbar.\e[0m"
echo -e "\e[36mDie API kann über http://localhost/api/ angesprochen werden.\e[0m"
echo -e "\n\e[36mSSH-Server ist aktiviert und wird beim Systemstart automatisch gestartet.\e[0m"
echo -e "\n\e[33mZum Beenden der Anwendung verwenden Sie: docker-compose down\e[0m"
# Ausführbare Rechte setzen
chmod +x "$0"