#!/bin/bash # MYP Frontend Installations-Skript # Dieses Skript installiert das Frontend mit Docker und Host-Netzwerkanbindung set -e # Bei Fehler beenden # Farbcodes für Ausgabe RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Funktion zur Ausgabe mit Zeitstempel log() { echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1" } # Pfade definieren SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" FRONTEND_DIR="$SCRIPT_DIR/packages/reservation-platform" # Prüfen ob Docker installiert ist if ! command -v docker &> /dev/null; then log "${RED}Docker ist nicht installiert. Bitte installieren Sie Docker.${NC}" log "Siehe: https://docs.docker.com/get-docker/" exit 1 fi if ! command -v docker compose &> /dev/null; then log "${RED}Docker Compose ist nicht installiert. Bitte installieren Sie Docker Compose.${NC}" log "Siehe: https://docs.docker.com/compose/install/" exit 1 fi # Wechsle ins Frontend-Verzeichnis cd "$FRONTEND_DIR" log "Arbeite im Verzeichnis: $FRONTEND_DIR" # Erstelle .env-Datei log "${YELLOW}Erstelle .env Datei...${NC}" cat > .env << EOL # Basic Server Configuration RUNTIME_ENVIRONMENT=prod DB_PATH=db/sqlite.db # OAuth Configuration (Bitte anpassen) OAUTH_CLIENT_ID=client_id OAUTH_CLIENT_SECRET=client_secret # Backend-API URL (IP-Adresse oder Hostname des Backend-Servers) NEXT_PUBLIC_API_URL=http://localhost:5000 EOL log "${GREEN}.env Datei erfolgreich erstellt${NC}" log "${YELLOW}HINWEIS: Bitte passen Sie die Backend-URL in der .env-Datei an, falls das Backend auf einem anderen Server läuft.${NC}" # Datenbank-Verzeichnis erstellen log "Erstelle Datenbankverzeichnis" mkdir -p db # Docker-Image bauen und starten log "${YELLOW}Baue und starte Frontend-Container...${NC}" docker compose up -d --build # Prüfe, ob der Container läuft sleep 5 if docker ps | grep -q "myp-frontend"; then log "${GREEN}Frontend erfolgreich installiert und gestartet unter http://localhost:3000${NC}" else log "${RED}Fehler beim Starten des Frontend-Containers. Bitte prüfen Sie die Docker-Logs mit 'docker logs myp-frontend'${NC}" exit 1 fi log "${GREEN}=== Installation abgeschlossen ===${NC}" log "Das Frontend ist unter http://localhost:3000 erreichbar" log "Anzeigen der Logs: docker logs -f myp-frontend" log "Frontend stoppen: docker compose -f $FRONTEND_DIR/docker-compose.yml down"