Projektarbeit-MYP/install-frontend.sh
Till Tomczak f1541478ad Bereinige und vereinfache Installations-Skripte
- Entferne alle überflüssigen Installations- und Konfigurationsskripte
- Erstelle zwei vereinfachte Docker-Installationsskripte:
  - install-frontend.sh für Frontend-Installation
  - install-backend.sh für Backend-Installation
- Verbessere Frontend Dockerfile mit besserer Unterstützung für native Dependencies
- Aktualisiere Backend Dockerfile für automatische DB-Initialisierung
- Korrigiere TypeScript-Fehler in personalized-cards.tsx
- Erstelle env.ts für Umgebungsvariablen-Verwaltung
- Füge ausführliche Installationsanleitung in INSTALL.md hinzu
- Konfiguriere Docker-Compose für Host-Netzwerkmodus
- Erweitere Dockerfiles mit Healthchecks für bessere Zuverlässigkeit

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-31 14:22:07 +02:00

78 lines
2.3 KiB
Bash
Executable File

#!/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"